Forex programozás › Fórum › Kérdések az MQL4 programozási nyelvvel kapcsolatban › Pozíciók darabszámának szabályozása › Válasz erre: Pozíciók darabszámának szabályozása
Szerintem próbálj meg valami hasonlót:
if(CountTradesByMagic(MasterMagicNumber)>0){
if(OrderType()==OP_BUY)LongAllowed=false;
if(OrderType()==OP_SELL)ShortAllowed=false;
}
if((EMA0>SMA0 && EMA1<=SMA1) || (EMA0<SMA0 && EMA1>=SMA1)) enddirection=true;
if((CountTradesByMagic(MasterMagicNumber)==0
|| (CountTradesByMagic(MasterMagicNumber)>0 && OrderType()!=OP_BUY))
&& (signal==0 || signal==2))LongAllowed=true;
if((CountTradesByMagic(MasterMagicNumber)==0
|| (CountTradesByMagic(MasterMagicNumber)>0 && OrderType()!=OP_SELL))
&& (signal==0 || signal==1))ShortAllowed=true;
A signal =
** if(A_M5_Close-Támasz_MN1<=0.0005 && Vétel_M15==True && Eladás_M30==False && Eladás_H1==False && Vétel_H4==True && Vétel_D1==True){
Az enddirection-hoz bármilyen feltételt beállíthatsz a mozgó átlagok helyett.
Tulajdonképpen ez akadályozza meg a visszanyitást.
if(!Ticket_EURUSD_Buy_a_MN1 && enddirection && LongAllowed){
** if(A_M5_Close-Támasz_MN1<=0.0005 && Vétel_M15==True && Eladás_M30==False && Eladás_H1==False && Vétel_H4==True && Vétel_D1==True){
A magicnumber számláló elég egyszerü:
int CountTradesByMagic(int magic) {
int count = 0;
for (int trade = OrdersTotal() - 1; trade >= 0; trade--) {
OrderSelect(trade, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber()!=magic) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber()==magic)
if (OrderType() == OP_SELL || OrderType() == OP_BUY) count++;
}
return (count);
}
Remélem tudsz kezdeni vele valamit.