[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 1070

 
dzhini :
Ama çalışmıyor :(
Yani başka bir yerde çalışmıyor veya bir şeyi kaçırdım
 
Reshetov :
Yani başka bir yerde çalışmıyor veya bir şeyi kaçırdım
Kapınızı çalabilir miyim?
 
dzhini :
Kapınızı çalabilir miyim?
Nizya. PM sadece kişisel iletişim içindir. Ve koddaki hataların herkese açık olarak tartışılması gerekir, böylece başkaları aynı komisyona girmez veya birileri daha sonra hazır bir çözüm için bir bağlantı paylaşabilir.
 

Merhaba. İşte başarısız olan basit bir kod. Nedenini kendim çözemiyorum.

İlk sipariş açılır, değişir. ikincisi açılır ve... değişmez. Boşalıncaya kadar tutar.

Günlüklerde şöyle:

"01:23:22 MarkTrade test için başladı

01:23:22 2010.01.29 00:00 MarkTrade EURUSD,H1: açık #1 1.3965'te 1.00 EURUSD satın al tamam

01:23:22 2010.01.29 00:00 MarkTrade EURUSD,H1: 1'i değiştir 1.3965 sl'de 1.00 EURUSD satın al: 1.3935 tp: 0.0000 tamam

01:23:22 2010.01.29 00:28 Test kullanıcısı: 1.3935'te (1.3935 / 1.3937) kaybı durdurma #1

01:23:22 2010.02.01 00:00 MarkTrade EURUSD,H1: açık #2 1.3877'den 1.00 EURUSD satın al tamam

01:23:22 2010.05.05 13:17 MarkTrade: Stop Out nedeniyle durduruldu

01:23:22 2010.05.05 13:17 Test eden: 2. sipariş kapalı

eklendi Hatamı anladım! OrderSend, boole olmayan bir değer döndürür!

 int start()
  {
   int total=OrdersTotal();
   if (total== 0 )
   {
       if (TimeHour(TimeCurrent())== 00 &&TimeMinute(TimeCurrent())== 00 )
      {
      Buy();
      }
   }
return ( 0 );
  }
/// /// /// /// /// /// /// /// //
void Buy()
 {
 RefreshRates();
 if (OrderSend(Symbol(), OP_BUY, 1 , NormalizeDouble(Ask,Digits), 0 , 0 , 0 , "" , 123321 , 0 ,Blue)== true )
         {
           Modify();
         }
 }
/// /// /// /// /// /// /// /// /// //
void Modify()
 {
     int total = OrdersTotal();
       for ( int i=total- 1 ;i>= 0 ;i--)
       {
       OrderSelect(i, SELECT_BY_POS,MODE_TRADES);
       if (OrderModify (OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-NormalizeDouble( 30 *Point,Digits),OrderTakeProfit(), 0 ,CLR_NONE)== false ) Modify();
       }
 }
 

günün iyi zamanı

farklı yeniden çerçeveler üzerinde çalışan bir test cihazı nasıl oluşturulur.

ve tarihin içinden geç.

 

Günaydın !

Lütfen açıkla. Expert Advisor'ı optimize ederken, genetik algoritma açıkken farklı bir TP ayarlandığında, örneğin TP=400 olarak ayarlarsam, 1'den 400'e kadar olan adımlarda optimizasyon yaptığım anlamında farklı sonuçlar üretildiği ortaya çıktı. sonra 350'yi ayarladım - 1'den 350'ye kadar olan adımlarla optimize ediyorum ve TP=50'ye kadar bu böyle devam ediyor. Böylece, sadece TP=400'de çalıştırırsanız, daha düşük TP'de ve daha iyi olan sonuçların "kaçırıldığı" ortaya çıkıyor ! Genetikten dolayı mı? ( https://www.mql5.com/en/articles/1347 (Oluşturma: 12/25/2009 Yazar: Rider) makalesinde: " ... Genetik, elbette yararlı bir şeydir, ancak makul sınırlar içinde Mesele şu ki, algoritması acımasız bir şaka oynayabilir - onun bakış açısına göre bazı kazananlar, bir dizi parametre belirlenecek ve tüm diğer optimizasyonlar sonuna kadar “etrafında” gerçekleşecek. , bu işe yarayacak. optimizasyon alanının dışında, "denizde" kalacak ve "Optimizasyon sonuçları" tablosuna dahil edilmeyecektir.

Burada birkaç çıkış var. Bir kardinal, optimizasyonda genetik algoritma kullanımını terk etmektir. Ancak bu her zaman, bir nedenden dolayı uygun değildir. Sonraki ikisi yarım ölçü, ama en azından bir şey:

- bir kez değil, iki veya daha fazla optimize etmek için. İlk seferde, diyelim ki, "Denge", bir sonraki "Maksimal Düşüş" veya başka bir şey... "). parametreler" ve + daha fazlası, örneğin, her güvenilirlik testi için 9 optimizasyon ile tekrar 9 ileri test ?

 
eddy :

Döngü neden kopmuyor?

Durumunuzdaki mola, yalnızca koşul karşılandığında döngüyü işler ve kesintiye uğratır. Koşul sağlanmazsa döngü sonsuz hale gelir. Böyle deneyin.

 int sec=Seconds();
       while (true) 
        { if (sec!=Seconds())          // new sec
          { int ms= GetTickCount (); }
       break ;
        }
 
volshebnik :

davanızdaki mola yalnızca koşul karşılandığında çalışır

gerekli olan budur, bunun için if ()
 
Merhaba! Terminaldeki sembolün özellikleri nasıl değiştirilir? Minimum durma seviyesinin 300 olduğunu yazıyor. Danışmanı test edemiyorum.
 
profesyonel

Yayılımı değiştirmek için örneğin TakeMySpread programı var ve danışmanı farklı koşullarda test etmek için "Durma Seviyesini" nasıl veya ne ile değiştirebilirsiniz. Yardım!