Sadece Karlı İşlemleri Kapatın, Kar Hedefinde - sayfa 4

 
af1 :

Tamam Raptor, bu döngüyü yapmaya çalışacağım, ama bunu yapmadan önce, ya değiştirirsem

Bundan:
Buna:


Bu işi yapabilir mi?

Hayır, Siparişleri kapatırken/silerken geri saymanız ZORUNLUDUR.
 
RaptorUK :
Hayır, Siparişleri kapatırken/silerken geri saymanız ZORUNLUDUR.


Merhaba Raptor!

Kodu kontrol ediyorum ve dürüst olmak gerekirse, gönderinizde önerilen kod satırı arasında pek bir fark görmüyorum:

 for (PositionIndex = TotalNumberOfOrders - 1 ; PositionIndex >= 0 ; PositionIndex --)

ve test ettiğim ea'nın kod kod satırı:

 for (i= OrdersTotal ()- 1 ;i>= 0 ;i--)

Gördüğüm tek fark, MODE_TRADES eklemeniz ve uyku eklememiş olmanız. Bu alakalı mı?

Kodda neyi değiştirmem gerektiğine dair bir rehber verebilir misiniz?

 
af1 :


Merhaba Raptor!

Kodu kontrol ediyorum ve dürüst olmak gerekirse, gönderinizde önerilen kod satırı arasında pek bir fark görmüyorum:

ve test ettiğim ea'nın kod kod satırı:

Gördüğüm tek fark, MODE_TRADES eklemiş olmanız ve uyku eklememiş olmanız. Bu alakalı mı?

Kodda neyi değiştirmem gerektiğine dair bir rehber verebilir misiniz?

Üzgünüm, bunu gördüm. . .

 for ( int i= 0 ;i< OrdersTotal ();i++)
      {
         if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false ) continue ;
         if (OrderType()==OP_SELL)  
         {
            OrdersSELL++;
            SellLots += OrderLots();
             double ThisTradeProfit=OrderProfit() + OrderCommission() + OrderSwap();
             if (ThisTradeProfit> 0 )
            BuyProfit += ThisTradeProfit;
         }

. . . ve bunu gönderip OrderClose() kodunuz olduğunu varsaydınız. . .

 
af1 :


2 extern bool'u eklemedim, bunu "yalnızca satın alma siparişlerini" kapatmak için değiştirdim

ve bunu "yalnızca satış siparişlerini" kapatmak için değiştirin

Yani şimdi iki EA'm var. Biri yakın alımlar için, diğeri yakın satışlar için. Benim için tamam.


Her iki hesapta da test ettim, demo ve gerçek. Demoda iyi çalışıyor, ancak gerçek hesapta, kar hedefine ulaşıldığında, pozisyonları kapatmaya başlayacak, ancak kalan emirler kar hedefinin altına düştüğünde pozisyonları kapatmayı durduracak. Bu, kapanış anında fiyat değişiyorsa gerçekleşir. Bu nedenle, hepsini kapatmak (karlı siparişler) yerine açık karlı siparişler bırakma eğilimindedir.

Bu gönderiyi RaptorUK https://www.mql5.com/en/forum/139654 adresinden okudum. Bunun gibi bir şey, ama bu sorun için en iyi çözümün ne olabileceğini gerçekten bilmiyorum.



Bunu daha yeni fark ettim - çok fark yaratıp yaratmayacağını bilmiyorum, ama doğru değil

for ( int i= 0 ;i< Sipariş Toplamı ();i++)

      {
         if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false ) continue ;
         if (OrderType()== OP_SELL )  
         {
            OrdersSELL++;
            SellLots += OrderLots();
             double ThisTradeProfit=OrderProfit() + OrderCommission() + OrderSwap();
             if (ThisTradeProfit> 0 )
             BuyProfit += ThisTradeProfit;
         }
 
af1 :


2 extern bool'u eklemedim, bunu "yalnızca satın alma siparişlerini" kapatmak için değiştirdim

ve bunu "yalnızca satış siparişlerini" kapatmak için değiştirin

Yani şimdi iki EA'm var. Biri yakın alımlar için, diğeri yakın satışlar için. Benim için tamam.


Her iki hesapta da test ettim, demo ve gerçek. Demoda iyi çalışıyor, ancak gerçek hesapta, kar hedefine ulaşıldığında, pozisyonları kapatmaya başlayacak, ancak kalan siparişler kar hedefinin altına düştüğünde pozisyonları kapatmayı durduracak. Bu, kapanış anında fiyat değişiyorsa gerçekleşir. Bu nedenle, hepsini kapatmak (karlı siparişler) yerine açık karlı siparişler bırakma eğilimindedir.

Bu yazıyı RaptorUK https://www.mql5.com/en/forum/139654 adresinden okudum. Bunun gibi bir şey, ama bu sorun için en iyi çözümün ne olabileceğini gerçekten bilmiyorum.



Bu, işlemleri kapatırken hatalar olduğunu gösteriyor, günlükte ne yazıyor?

Belki de sadece 5 noktadaki kaymanız çok küçük?

 
RaptorUK :

Üzgünüm, bunu gördüm. . .

. . . ve bunu gönderip OrderClose() kodunuz olduğunu varsaydınız. . .

Sorun yok.

GumRai :


Bunu daha yeni fark ettim - çok fark yaratıp yaratmayacağını bilmiyorum, ama doğru değil

for ( int i= 0 ;i< Sipariş Toplamı ();i++)

Demoda herhangi bir fark görmedim, ancak gerçek hesapta sorun, satış siparişlerini "merak bir şekilde" kapatırken ortaya çıkıyor, bu yüzden belki bu sorunu çözebilir ..

Bu değişiklikle tekrar test edeyim ve sonuçları size bildireceğim.

GumRai :


Bu, işlemleri kapatırken hatalar olduğunu gösteriyor, günlükte ne yazıyor?

Belki de sadece 5 noktadaki kaymanız çok küçük?

Günlükte hata yok.

Belki daha büyük kayma yardımcı olabilir. test edeceğim.

 

Merhaba arkadaşlar

Herhangi bir yerde MT5'in ulaşılan tüm işlemleri kapatmak için bir EA'sı var mı?

 
BobyGill :

Merhaba arkadaşlar

Herhangi bir yerde MT5'in ulaşılan tüm işlemleri kapatmak için bir EA'sı var mı?

MT5'i sormak için neden MT4 bölümünde 6 yıllık bir konuyu gündeme getirdiniz ???

 
Çocuklar..
sadece merak ediyorum..
Aynı mantığı kullanmak mümkün mü ama onu farklı kılan sadece toplam işlem vurulduğunda diyelim ki 200 işlem o zaman kapanış karını tetikleyecektir.