Herhangi bir emir kapandığında diğer tüm bekleyen emirleri kapatan bir kod yazdım ama sorun şu ki 4 emir 2, 3, 4, 5 sırayla yazdım yani bir sonraki emirler 6, 7, 8, vb. Açılacak. sonra kapanmazlar. Kırmızı renkte vurgulanan sipariş sayıları, bekleyen tüm siparişlerin kapatılacağı siparişlerle değiştirilmelidir.
Herhangi bir emir kapandığında diğer tüm bekleyen emirleri kapatan bir kod yazdım ama sorun şu ki 4 emir 2, 3, 4, 5 sırayla yazdım yani bir sonraki emirler 6, 7, 8, vb. Açılacak. sonra kapanmazlar. Kırmızı renkte vurgulanan sipariş sayıları, bekleyen tüm siparişlerin kapatılacağı siparişlerle değiştirilmelidir.
Buradaki soru, artan lotla açılan siparişlerde, bazı nedenlerden dolayı TP ve SL'nin değişmesiyle, kar al ve zararı durdur ile ilgili bir sorun var. Ve lotları arttırır ve TP ile kapatmak, kayıp miktarını iade etmenize izin vermez. Bu neden oluyor, yanlış olan ne?
Merhaba, fonksiyonu yazmadım. Robot, ArraySort işlevi için bir hata yanlış başlangıç konumu 0 yazıyor. Düzeltmeme ve işlevi açıklamama yardım ederseniz minnettar olurum.
Bu koşul, satın alma 0 ise ve satın alma 0 ise, sıfır sipariş olduğunda bir koşula ihtiyacım var, sonra başka bir işlev başlatılır ve satın alma sıfır ise, satın alma olduğunda işlev başlatılır.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Herhangi bir emir kapandığında diğer tüm bekleyen emirleri kapatan bir kod yazdım ama sorun şu ki 4 emir 2, 3, 4, 5 sırayla yazdım yani bir sonraki emirler 6, 7, 8, vb. Açılacak. sonra kapanmazlar. Kırmızı renkte vurgulanan sipariş sayıları, bekleyen tüm siparişlerin kapatılacağı siparişlerle değiştirilmelidir.
geçersiz başlangıç(){
//----
double Take1 = Sor+20 *Puan;
double Take2 = Sor+0 *Puan;
double Take3 = Sor-20 *Puan;
double Take4 = Sor-40 *Puan;
çift Al5 = 60 sor *Puan;
double Stop = Bid-StopLoss*Point;
if(OrdersTotal()==0){
OrderSend(Symbol(),0,0.01,Sor,30,Dur,Al1,"",0,0,CLR_NONE);
OrderSend(Symbol(),2,0.02,Sor-20*Puan,30,Dur,Al2,"",0,0,CLR_NONE);
OrderSend(Symbol(),2,0.04,Sor-40*Puan,30,Dur,Al3,"",0,0,CLR_NONE);
OrderSend(Symbol(),2,0.08,Ask-60*Puan,30,Dur,Al4,"",0,0,CLR_NONE);
OrderSend(Symbol(),2,0.16,Ask-80*Puan,30,Dur,Al5,"",0,0,CLR_NONE);
}
if(SiparişToplam()==4)
{
SiparişSil( 2 );
}
if(SiparişToplam()==3)
{
SiparişSil( 3 );
}
if(SiparişToplam()==2)
{
SiparişSil( 4 );
}
if(SiparişToplam()==1)
{
SiparişSil( 5 );
dönüş(0);
}
Herhangi bir emir kapandığında diğer tüm bekleyen emirleri kapatan bir kod yazdım ama sorun şu ki 4 emir 2, 3, 4, 5 sırayla yazdım yani bir sonraki emirler 6, 7, 8, vb. Açılacak. sonra kapanmazlar. Kırmızı renkte vurgulanan sipariş sayıları, bekleyen tüm siparişlerin kapatılacağı siparişlerle değiştirilmelidir.
İlk olarak, OrdersHistoryTotal'a ihtiyacımız olan pozisyonun yakın zamanda kapatılıp kapatılmadığını döngüde kontrol ediyoruz. Pozisyon kapatma zamanını kontrol ettiğimiz yerde OrderCloseTime , değişkendeki sondan büyükse, tüm açık OrdersTotal arasında döngü yapın. Ve onları kapatıyoruz.
PS Kodu Alt + S veya simge aracılığıyla girin

örneğin bu
void MaxMinProfit() { int i, N, MaxTic, MinTic; double MinProf= 0 , MaxProf= 0 , OP, g, a[][ 2 ]; string MinSym, MaxSym; ArrayResize (a, 0 ); for (i= OrdersTotal ()- 1 ; i>= 0 ; i--) { if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) { if ( OrderType ()== OP_SELL || OrderType ()== OP_BUY ) { OP = NormalizeDouble ( OrderProfit ()+ OrderSwap ()+ OrderCommission (), 2 ); if (MinProf>OP) { MinProf=OP; MinTic= OrderTicket (); MinSym= OrderSymbol (); } if (OP> 0 ) { N++; ArrayResize (a, N); a[N- 1 ][ 0 ]=OP; a[N- 1 ][ 1 ]= OrderTicket (); } } } } ArraySort (a, WHOLE_ARRAY , 0 , MODE_DESCEND ); //MODE_ASCEND); for (i= 0 ; i<Level; i++) { g+=a[i][ 0 ]; //int ti=a[i-2][1]; } if (MinProf < 0 && (g+MinProf)>=ProcMax) { for (i= 0 ; i<Level; i++) { if ( OrderSelect (a[i][ 1 ], SELECT_BY_TICKET , MODE_TRADES )) { //Alert(a[i][1]); if ( OrderType ()== OP_BUY ) { OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_BID ), Slip, CLR_NONE); } if ( OrderType ()== OP_SELL ) { OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_ASK ), Slip, CLR_NONE); } } } if ( OrderSelect (MinTic, SELECT_BY_TICKET , MODE_TRADES )) { if ( OrderType ()== OP_BUY ) { OrderClose (MinTic, OrderLots (), MarketInfo ( OrderSymbol (), MODE_BID ), Slip, CLR_NONE); } if ( OrderType ()== OP_SELL ) { OrderClose (MinTic, OrderLots (), MarketInfo ( OrderSymbol (), MODE_ASK ), Slip, CLR_NONE); } }} return ; }tüm siparişlerin sıfır olması durumunda koşul şudur: if(OrdersTotal()==0) . ve sıfır adlı bais ise koşul ne yazılır?
(OP_BUY==0) ise
(OP_BUY==0) ise