Hatalar, hatalar, sorular - sayfa 896

 

Selamlar!

MT5 optimizer - CustomMax'i doğru hesaplıyor mu?

Optimize ediciyi burada (genetik optimizasyon) MT5 5.00 build 722'de çalıştırıyorum ve yanlışlıkla optimizasyon sonuçlarının bir şekilde beklenmedik bir şekilde hesaplandığını fark ettim.

Expert Advisor'da OnTester() şunu döndürür:

Profit * Trades * (1/(MaxEquityDDPercent+1)) * RecoveryFactor

nerede:

   double Profit = TesterStatistics(STAT_PROFIT);

   double Trades = TesterStatistics(STAT_TRADES);

   double MaxEquityDDPercent = TesterStatistics(STAT_EQUITY_DDREL_PERCENT);

   double RecoveryFactor = MathAbs(TesterStatistics(STAT_RECOVERY_FACTOR));

Daha küçük bir kâr ve bir kurtarma faktörü ile sonucun daha az olması bekleniyordu, ancak bu öyle değil - ekran görüntüsüne bakın.


Bir şeyi yanlış mı anlıyorum?

Dosyalar:
 
MetaDriver :

Pekala, devam edelim:

Ama korkarım beğenmeyeceksin. Örneğin, bundan hoşlanmıyorum - grafik seğiriyor ve iki katına çıkıyor . Ve en iyisini istedim - sorunsuzca doğru yere taşınmak ..

// İlginç bir şekilde, ChartRedraw() ile, olmadan iki kat daha hızlı çalışır. Daha çok titriyor.

ChartNavigate () işleviyle ilgili hala bir sorun var. Bu bir gün düzelecek mi? Yoksa bug olarak kabul edilmiyor mu?

Hizmet Masasında bu konuyla ilgili zaten mesajlar var mı? Veya daha fazlasını ekleyin? ))

 

Çalışma Zamanı Hatası: Yığın taşması

 class A {
         static    bool OrderSend ( const MqlTradeRequest & request, MqlTradeResult & result, bool async_mode = false )
	void function();
};
void A::function()
{...
	OrderSend(...) // ошибка выполнения возникает здесь
	A::OrderSend(...) // не помогает
...}

OrderSend'i başka bir adla değiştirirseniz - her şey yolunda

statik varlığı hatayı etkilemez

call A:: OrderSend() - hatayı etkilemez

 
A100 :

Yığın taşması çalışma zamanı hatası

OrderSend'i başka bir adla değiştirirseniz - her şey yolunda


çünkü bağlamı çözmeniz gerekiyor

:: SiparişGönder

 

Sanırım :: OrderSend'i değil A:: OrderSend() 'i aramıyorum

çalışmalı

 
A100 :

Sanırım :: OrderSend'i değil A:: OrderSend() 'i aramıyorum

hangi çizgiyi düşünüyorsun

sadece sahip olduğun şey

void A::function()
{...
	OrderSend(...) // ошибка выполнения возникает здесь
вызывается именно ваша A::OrderSend
Terminali aramak istiyorsanız, Ordersend'den önce :: yapın.
 
Teşekkürler, nedenini buldum - soruyu kaldırdım - kendim döngüye aldım
 
A100 :
Teşekkürler, nedenini buldum - soruyu kaldırdım - kendim döngüye aldım

Anladığım kadarıyla Ordersend'inizde kendinizi aramadan ::

Print and Comment sınıfında yeniden tanımladığımda buna hemen yakalandığımı hatırlıyorum. Artık sürekli yemek yiyorum :)

 
sergeev :

Anladığım kadarıyla Ordersend'inizde kendinizi aramadan ::

Evet, A::OrderSend'in 3 (üç) parametresi olmasına rağmen, ancak sonuncusu varsayılan olarak ve derleyici parametre sayısına göre ::OrderSend'den ayırt edemedi (ve yapmamalı)
 
Lütfen bana forumda nasıl anket oluşturulacağını söyler misiniz?