BTC USD 77,443.9 Gold USD 4,359.31
Time now: Jun 1, 12:00 AM

Belajar Coding EA (mql) asas

saya akan buat loop di dalam loop. (for dalam for)

Code:
string pair1 = "GBPUSD";
string pair2 = "EURUSD";
     
void ClearOrphanPair ()
{   
   for (int i=0; i<OrdersTotal(); i++)
   {
      OrderSelect(i, SELECT_BY_POS);
      if (OrderMagicNumber()!=magic) continue;
      if (OrderSymbol()==pair1 || OrderSymbol()==pair2)
      {
         int orderTicket = OrderTicket();
         string orderSymbol = OrderSymbol();
         int orderType = OrderType();
         string orderComment = OrderComment();
         double orderLots = OrderLots();
         
         [COLOR="DimGray"]// sekali lagi loop untuk check pasangan pair lagi satu[/COLOR]
         bool pairOK = false;
         for (int j=0; j<OrdersTotal(); j++)
         {
            OrderSelect(j, SELECT_BY_POS);
            if (OrderMagicNumber()!=magic) continue;
            if (OrderComment()==orderComment && OrderType()!=orderType && OrderSymbol()!=orderSymbol) 
            {
               pairOK = true;
               break;
            }
         }
         
         if (pairOK==false) 
         {
            if (orderType==OP_BUY) OrderClose(orderTicket,orderLots,MarketInfo(orderSymbol,MODE_BID),3,Red);
            if (orderType==OP_SELL) OrderClose(orderTicket,orderLots,MarketInfo(orderSymbol,MODE_ASK),3,Red);
            i--;
         }
      }
   }
}

Code atas ni saya langsung tak test, bro test la sendiri
 
lama tul tak singgah sini....

Nubi tumpang belajar....
 
saya akan buat loop di dalam loop. (for dalam for)


Code atas ni saya langsung tak test, bro test la sendiri

tq bro...sye dh try memang menjadi..

tapi adakah berkesan jika satu pasangan ada lebih dari dua pair..?
 
tq bro...sye dh try memang menjadi..

tapi adakah berkesan jika satu pasangan ada lebih dari dua pair..?

Code saya kasi tu kalau ada sepasang atau lebih, dia tak close.

Bro kena ubah code tu, ataupun bro ejas code masa open post untuk pastikan tak lebih drp sepasang masa entry
 
Code saya kasi tu kalau ada sepasang atau lebih, dia tak close.

Bro kena ubah code tu, ataupun bro ejas code masa open post untuk pastikan tak lebih drp sepasang masa entry

knape sye ubah cam ni tk leh jalan gk...pelik...
Code:
int kira = 0;
         
         for (int j=0; j<OrdersTotal(); j++)
         {
            OrderSelect(j, SELECT_BY_POS);
            if (OrderMagicNumber()!=MagicNo) continue;
            
            if (OrderComment()==orderComment && OrderType()!=orderType && OrderSymbol()!=orderSymbol)
            
            kira++;
            
           if (kira == 2)
            
            {
      
               pairOK = true;
               break;
            }
         }
 
knape sye ubah cam ni tk leh jalan gk...pelik...

Cuba code bawah ni
Code:
string pair1 = "GBPUSD";
string pair2 = "EURUSD";
     
void ClearOrphanPair ()
{   
   for (int i=0; i<OrdersTotal(); i++)
   {
      OrderSelect(i, SELECT_BY_POS);
      if (OrderMagicNumber()!=magic) continue;
      if (OrderSymbol()==pair1 || OrderSymbol()==pair2)
      {
         int orderTicket = OrderTicket();
         string orderSymbol = OrderSymbol();
         int orderType = OrderType();
         string orderComment = OrderComment();
         double orderLots = OrderLots();
         
         // sekali lagi loop untuk check pasangan pair lagi satu
         bool pairOK = false;
         for (int j=0; j<OrdersTotal(); j++)
         {
            OrderSelect(j, SELECT_BY_POS);
            if (OrderMagicNumber()!=magic) continue;
            if (OrderComment()==orderComment && OrderType()!=orderType && OrderSymbol()!=orderSymbol) 
            {
               [COLOR="Red"]if (pairOK==false) pairOK = true;
               else
               {
                  if (OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3,Red);
                  if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3,Red);
               }[/COLOR]
               [STRIKE]break;[/STRIKE] <-- buang ini
            }
         }
         
         if (pairOK==false) 
         {
            if (orderType==OP_BUY) OrderClose(orderTicket,orderLots,MarketInfo(orderSymbol,MODE_BID),3,Red);
            if (orderType==OP_SELL) OrderClose(orderTicket,orderLots,MarketInfo(orderSymbol,MODE_ASK),3,Red);
            i--;
         }
      }
   }
}
 
Ada tak sape2 tau mana nak dapat EA utk alert bunyi bila ada 2 EMA bertemu (membentuk garisan "X" / crossing)

Nak pasang sound system di setiap sudut rumah utk alert bila2 ada crossing. Tak perlu mengadap selalu. Heheh

Nak coding tak pandai. Kalau sesiapa ada harap sudi share dengan saya. Thank you.
 

Latest Posts

Live Forex Chart

Currency
Rates
EUR / USD
1.14887
USD / JPY
157.137
GBP / USD
1.33691
USD / CHF
0.82348
USD / CAD
1.39828
EUR / JPY
180.437
AUD / USD
0.71288
Back
Top
Log in Register