MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 612
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
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