[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 774
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Anlamadım piyasa emrinin açılışında böyle bir satır var bende ertelemeye kopyalayıp değişken ekliyorum bişey olmuyor yine aynı hata 4107 loga yazıp duruyorsa emir veriyor çok zor değil bak ne kaçırmışım
Anlamadım piyasa emrinin açılışında böyle bir satır var bende ertelemeye kopyalayıp değişken ekliyorum bişey olmuyor yine aynı hata 4107 loga yazıp duruyorsa emir veriyor çok zor değil bak ne kaçırmışım
Okunamayan bir kod organizasyonunuz var. Evet ve değişken adlarının bu tür kısaltmaları vardır ve bu da okunabilirliği zorlaştırır.
Kod bloklar halinde düzenlenmelidir. Değişkenlere, bir bakışta neyin tehlikede olduğu netleşecek şekilde isimler atayın. Sabitlerin adları (kendin için al) büyük harflerle yaz. Değerlerle sabitlerin başlatılması, başlatma bloğuna yerleştirilmelidir. Örneğin, hattı tamamen haksız yere kullandınız.
stringsy = Sembol();
EA'nın başında. Söyleyin bana, işlem aracının adı tüm işlem boyunca değişmiyorsa neden her işarette Symbol() işlevini çağırmanız gerekiyor? Başlatma bloğunda sy değişkeninin değerini 1 kez başlatmak yeterlidir ve bu kadar. Sonraki, işte kod bloğu
Temelde doğru değil! Son emrin stoploss'u bulmak için, o (sipariş) önce OrderSelect() kullanılarak seçilmelidir - aşağıdaki emir sayacındaki bir örneğe bakın. Bu, son siparişlerin durdurma seviyelerine ihtiyacınız varsa, bunu bir döngü aracılığıyla yapmanız gerektiği anlamına gelir. Takip etmek. Tasarım
haklı değil. OrdersTotal () işlevi, terminalde halihazırda açılmış olan toplam sipariş sayısını döndürür. Bu numara ayrıca diğer alım satım araçları için açılan emirleri ve özellikle danışman tarafından değil, bizzat sizin tarafınızdan, danışmanın atıldığı aynı enstrüman için manuel olarak açılan emirleri de içerecektir.
Ellerinizle ticaret yapmayacaksanız ve aynı zamanda ticaret sadece danışmanın atıldığı ticaret enstrümanında yapılacaksa, bu yapı işe yarayacaktır. Ancak, danışmanın manuel alım satımlarınıza müdahale etmemesi için paralel ve aynı anda el ticareti yapmak istediğinizde veya alım satımların diğer alım satım enstrümanlarında aynı şekilde ilerlemesini istediğinizde, bu tasarım sizi hayal kırıklığına uğratacaktır. Bu nedenle, her ticaret emri türü için ayrı emir sayaçları yazmak daha iyidir. İşte böyle bir sayaç örneği.
Yukarıdaki önerileri dikkate alarak kodu yeniden yazın!!!
Üzgünüm, böyle satırları görmedim
alt programı çağırın.
Ama yine de farklı şekilde organize etmek daha iyidir.
>> double StopLossLastPos(string sy="", int op=-1, int mn=-1) {
Bir ticaret enstrümanının sembolik adını alt programa aktarmaya gerek yoktur. Alt yordamınız bağlantı kitaplığında değil, EA'dadır. sy değişkeni Expert Advisor'ın global seviyesinde bildirildiği için bu değişken bu tür alt programların kapsamındadır. Ardından, alt yordama ikinci bir parametre iletirsiniz, ancak alt yordamın kendisini çağırdığınızda, bu parametreyi bir değerle başlatırsınız ( int op=-1) - bunu yapmanıza gerek yoktur. Aynı şey bir sonraki parametre için de geçerlidir.
Astar
>> if (op<0 || OrderType()==op) {
yine okunamaz. Bakın benim tezgahımda nasıl düzenleniyor!
Ve işte başka bir şey. kod bloğu
her tikte çağrılırsınız. Ancak her kene buna ihtiyaç duymaz. Stop/kâr emirlerini sadece bazı durumlarda bilmeniz gerekir. Burada bu durumlarda ayrıca bir alt program çağrısını da dahil etmeniz gerekir.
Günün iyi zamanı, lütfen uyarıyı türkiye'ye sabitleyin (yukarıdan aşağıya yeşil çarpı kırmızı - sat, geri - satın al)
Yine, birileri forumda çalıntı kodlar yayınlıyor. :)))))))))
Herhangi birinin bu numaralandırılmış değişkenler karmaşasını ücretsiz olarak kazmak isteyeceğinden şüpheliyim :)
Günün iyi zamanı, lütfen uyarıyı türkiye'ye sabitleyin (yukarıdan aşağıya yeşil çarpı kırmızı - sat, geri - satın al)
Tekrarlandığında, banyo için dilekçe vermek zorunda kalacağım.
Geri derlenmiş göstergeler göndermek, forum kurallarının ihlalidir.
Üzgünüm, böyle satırları görmedim
alt programı çağırın.
Ama yine de farklı şekilde organize etmek daha iyidir.
>> double StopLossLastPos(string sy="", int op=-1, int mn=-1) {
Bir ticaret enstrümanının sembolik adını alt programa aktarmaya gerek yoktur. Alt yordamınız bağlantı kitaplığında değil, EA'dadır. sy değişkeni Expert Advisor'ın global seviyesinde bildirildiği için bu değişken bu tür alt programların kapsamındadır. Ardından, alt yordama ikinci bir parametre iletirsiniz, ancak alt yordamın kendisini çağırdığınızda, bu parametreyi bir değerle başlatırsınız ( int op=-1) - bunu yapmanıza gerek yoktur. Aynı şey bir sonraki parametre için de geçerlidir.
Astar
>> if (op<0 || OrderType()==op) {
yine okunamaz. Bakın benim tezgahımda nasıl düzenleniyor!
Tobish, anladığım kadarıyla fonksiyon çağrısı basitçe yazılabilir.
PrAskLim = StopLossLastPos(OP_SELL) ; ve fonksiyonun kendisinde
double StopLossLastPos(int op=-1,) böyle değil mi?
evet, işlevleri bu siteden aldığımı söyledim, robotları kontrol edildi, bu nedenle içlerindeki değişkenleri daha okunaklı olanlara değiştirmeye cesaret edemiyorum, çünkü belki de neyin mümkün olduğu ve neyin mümkün olduğu konusunda hala yeterli deneyim yok. değil, bu, çalışma işlevinde değiştiremeyeceğim gerçeğiyle dolu ve her şey yine bir kod yığınında bir iğne arıyor,
ama zaten kendim eklediğimi olabildiğince düzelttim,
ancak bu, her şeyin 4107'nin de yazıldığı günlükle ilgili sorunu çözmedi ve burada soru, fiyatı nasıl narmolize edebilirim ve durur, çünkü bekleyen emirleri ayarlama işlevinin kendisi çalışıyordu ve hiçbir şeyi büyük ölçüde değiştirmedim içinde.
ikinci soru ise bu fiyata spreadin nasıl ekleneceğidir PrAskLim = StopLossLastPos(OP_SELL) ; (Spread =MarketInfo(sy, MODE_SPREAD); )
Danışmanın düzeltilmiş bir versiyonunu gönderiyorum
kodu göndermem gerekiyor mu?
Çalıntı malları vermeyin.
Çalmak zorunda değilsin.
Ancak bu kaynağın kuralları yasak değil ...
https://www.mql5.com/en/code/8089
;)