Kapatılan siparişler için kar hesaplaması "YARDIM" - sayfa 9

 
Natashe4ka :

Ayrıca her şey yolundaymış gibi hissettim.
Bu bilgiyi koda koymak zorunda değildim ve yaşaması daha kolay olurdu))

Ve şimdi dinlenmiyor, bunca zaman fonksiyon nasıl düzgün çalışmadı !!

Kar = pozitif çeki kaldırmam gerektiğini anladım, bu nedenle hesap daha sonra duruyor, sadece hesabımdaki önceki zararı hesaba katmak zorunda kaldım.

double lastloss()
{
double lastlos= 0.0 ,lastlot= 0.0 ,op= 0.0 ;
int cnt= 0 ;
datetime time= 0 ;
for ( int i= OrdersHistoryTotal ()- 1 ; i>= 0 ; i--)
{
       if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY ))
      {
         if ( OrderSymbol ()== _Symbol && OrderMagicNumber ()==Magic && OrderType ()< 2 )
         {
             if (cnt== 0 && OrderCloseTime ()!= 0 ) time= OrderCloseTime ();
             if ( OrderCloseTime ()+ PeriodSeconds ()<time /* && op>0.0*/ ) break ;
            op= OrderProfit ()+ OrderSwap ()+ OrderCommission ();
            lastlos+=op;
            cnt++;
         }
      }
}
return (lastlos);
}
 
Natashe4ka :

Ayrıca her şey yolundaymış gibi hissettim.
Bu bilgiyi koda koymak zorunda değildim ve yaşaması daha kolay olurdu))

Ve şimdi dinlenmiyor, bunca zaman fonksiyon nasıl düzgün çalışmadı !!

Astarın ilk sayfalarından itibaren bir kapatma fonksiyonunuz var. Test cihazında, neredeyse normal olarak kapanacaktır, ancak gerçek ticarette, böyle bir kapanmaya sahip bir bot, özellikle küçük bir kâr alırsa, genellikle kırmızıda kapanır.

Hiç en az bir kez gerçek piyasada işlem yapmayı denediniz mi, yoksa sadece test cihazında mı deniyorsunuz?

Hiç böyle bir şey gördünüz mü, nasıl bir dizi pozisyon kapanıyor? Sinyalin alınmasından kapanışa ve son pozisyonun kapanmasına kadar olan noktalardaki farka dikkat edin.

İstenmeyen posta göndermemek için, gerçekte stokta yüzden fazla olmasına rağmen, yalnızca 3 ekran görüntüsü ekleyeceğim:


Tüm işlevler herkes için doğru çalışır, ancak yalnızca sizin için doğru çalışmaz. Nedenini merak etmedin mi?

Ve son olarak, kendinize sorduğunuz soru, bir cevaba ihtiyacımız yok: terminali hiç yeniden başlatacak mısınız yoksa hafta sonu için kapatacak mısınız, ...? Evet ise, herhangi bir yere kaydetmek istemiyorsanız, serinin son kapanışında olan Expert Advisor'ın çalışmasına devam etmek için terminalin bir sonraki açılışında nasıl kar elde edeceksiniz.

 

Üstelik:

Kapanış pozisyonları arasında emir silmek ne işe yarar diye neden sordum ama cevap alamadım.


Ve şimdi durum: danışman, kâra ulaşıldığında pozisyonları kapatmaya başlar, o zaman neden kendisine hiçbir fayda sağlamayan, yani ne kâr ne de zarar olan bir emrin neden kendisine kaydırıldığı açık değildir. emir silinirken emir silme işlemini gerçekleştirir, fiyat ayrılır ve danışman daha fazla kapanmaya devam eder. Sonuç şu: Kârı kapatmaya başladılar ama her şey yanlış kapatıldığı için sonuç olarak seriyi zararla kapattılar. Bu iyi? Sadece tester için kod yazmayın, en azından demo hesapta çalışmak için kod yazın.

 
Vitalie Postolache :

Kar = pozitif çeki kaldırmam gerektiğini anladım, bu nedenle hesap daha sonra duruyor, sadece hesabımdaki önceki zararı hesaba katmak zorunda kaldım.

double lastloss()
{
double lastlos= 0.0 ,lastlot= 0.0 ,op= 0.0 ;
int cnt= 0 ;
datetime time= 0 ;
for ( int i= OrdersHistoryTotal ()- 1 ; i>= 0 ; i--)
{
       if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY ))
      {
         if ( OrderSymbol ()== _Symbol && OrderMagicNumber ()==Magic && OrderType ()< 2 )
         {
             if (cnt== 0 && OrderCloseTime ()!= 0 ) time= OrderCloseTime ();
             if ( OrderCloseTime ()+ PeriodSeconds ()<time /* && op>0.0*/ ) break ;
            op= OrderProfit ()+ OrderSwap ()+ OrderCommission ();
            lastlos+=op;
            cnt++;
         }
      }
}
return (lastlos);
}

Çalışıyor, olması gerektiği gibi, ustaca, şık!!!
Teşekkürler teşekkürler teşekkürler !!!!!!!!!!!!)))))))))))))

iyi yapmışsın))

 
Vitaly Muzichenko :

Üstelik:

Kapanış pozisyonları arasında emir silmek ne işe yarar diye neden sordum ama cevap alamadım.


Ve şimdi durum: danışman, kâra ulaşıldığında pozisyonları kapatmaya başlar, o zaman neden kendisine hiçbir fayda sağlamayan, yani ne kâr ne de zarar olan bir emrin neden kendisine kaydırıldığı açık değildir. emir silinirken emir silme işlemini gerçekleştirir, fiyat ayrılır ve danışman daha fazla kapanmaya devam eder. Sonuç şu: Kârı kapatmaya başladılar ama her şey yanlış kapatıldığı için sonuç olarak seriyi zararla kapattılar. Bu iyi? Sadece tester için kod yazmayın, en azından demo hesapta çalışmak için kod yazın.

Evet, orada hiç bozuk durumdalar, bu, kapanış döngüsü sıfırdan başlarsa olur.
 
Vitalie Postolache :
Evet, orada hiç bozuk durumdalar, bu, kapanış döngüsü sıfırdan başlarsa olur.

Hangi sıfırdan?

Peki, neden, şebekeyi kapattığınız anda, siparişi silmek için zaman harcıyorsunuz. Bir siparişi silmenin zaman aldığını, neden boşa harcadığını ve DC hızlı değilse, her şeyin bir karmaşa olduğunu kendiniz biliyorsunuz. Bir keresinde 15 pozisyonun 1 dakika 34 saniyede kapatıldığı bir ekran yayınlamıştım ve bu süre zarfında fiyatın bir düzineden fazla noktadan geçebileceğini ve o zaman bizim yönümüze giderse şanslı olacağını anlamalısınız, ve bize karşı değil.

 
Vitaly Muzichenko :

Hangi sıfırdan?

Peki, neden, şebekeyi kapattığınız anda, siparişi silmek için zaman harcıyorsunuz. Bir siparişi silmenin zaman aldığını, neden boşa harcadığını ve DC hızlı değilse, her şeyin bir karmaşa olduğunu kendiniz biliyorsunuz. Bir keresinde 15 pozisyonun 1 dakika 34 saniyede kapatıldığı bir ekran yayınlamıştım ve bu süre zarfında fiyatın bir düzineden fazla noktadan geçebileceğini ve o zaman bizim yönümüze giderse şanslı olacağını anlamalısınız, ve bize karşı değil.

Bu sıfırdan for(int i=0;i<OrdersHistoryTotal();i++) - bu nedenle, seçim seri numarasına göre ise en iyi ihtimalle birden sonraki siparişler kapatılacaktır.

Evet, bekleyen bir siparişi silmenin , bir seriyi kapatma sürecinin ortasında düzenlenmesi gerekmediğini biliyorum ve bunları sırayla kapatmak daha iyidir, bu deneyimle gelir.

Neden: