Radu.hu 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

filewalker
Tag
Bejegyzések száma: 19

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.