BTC USD 81,060.0 Gold USD 4,378.12
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.
 

Live Forex Chart

Currency
Rates
EUR / USD
1.14790
USD / JPY
156.877
GBP / USD
1.33950
USD / CHF
0.82250
USD / CAD
1.39985
EUR / JPY
180.080
AUD / USD
0.71320
Back
Top
Log in Register