"MQL5 Yemek Kitabı - Çok Para Birimli Expert Advisor ve MQL5'te Bekleyen Talimatlarla Çalışma" makalesi için tartışma - sayfa 3

 

Otto ...şimdi onu kullanabilirsin :-)

Benim için ticaret yapıyor.

 

Çok güzel bir cevap. Teşekkür ederim!

Ben sadece makalelerin yazarlarının bunlarla ilgilenmesi gerektiğini belirtmek istedim.

Tek yapmanız gereken

CheckTradingPermission()
ve tüm MQL5xxx saçmalıkları ve çalışacaktır;)
 
Otto Pauser:

Çok güzel bir cevap. Teşekkür ederim!

Ben sadece makalelerin yazarlarının bunlarla ilgilenmesi gerektiğini belirtmek istedim.

Mmmhhh ... evet, biliyoruz.

Ve ona biraz ifade verdim.

Böyle bir şey işe yarıyor, kimse bir şey söylemese bile başka yerlerde fark ediyorsunuz :-)

 
Christian:

Mmmhhh ... evet, biliyoruz.

Ve bunu biraz ifade ettim.

Böyle bir şey işe yarıyor, kimse bir şey söylemese bile başka yerlerde fark ediyorsunuz :-)

Amacım MarketOrders'ı PendigOrders olarak yeniden programlamaktı.

Kim kullanabilirse, işte nasıl çalıştığına dair kod.

Bu kullanışlı bir EA değil, sadece nasıl hesaplanacağına dair bir örnek. Umarım doğrudur, test cihazında çalışır.

Ayrıca benim gerçek programlama tarzım değil, ama çok basit tutuldu.

#include <Trade\Trade.mqh> CTrade Trade;

//+------------------------------------------------------------------+
input int    inp_Dist     =  120;   // Bekleyen emir mesafesi (puan)
input int    inp_Stop     =  125;   // SL (puan)
input int    inp_Take     =  150;   // TP (puan)
input double inp_Volume   = 0.01;   // Hacim

//+------------------------------------------------------------------+
double distPend = inp_Dist*_Point;
double distStop = inp_Stop*_Point;
double distTake = inp_Take*_Point;

//+------------------------------------------------------------------+
bool   done     = false;
double ask;
double bid;
double levelSell;
double levelBuy;
double stopSell;
double stopBuy;
double takeSell;
double takeBuy;

void OnTick()
{
   if(done)
      return;
   
   ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);

   levelBuy =NormalizeDouble(bid-distPend,_Digits);
   levelSell=NormalizeDouble(ask+distPend,_Digits);

   stopBuy  =NormalizeDouble(levelBuy -distStop,_Digits);
   stopSell =NormalizeDouble(levelSell+distStop,_Digits);

   takeBuy  =NormalizeDouble(levelBuy +distTake,_Digits);
   takeSell =NormalizeDouble(levelSell-distTake,_Digits);

   SellLimit();
   BuyLimit();

   done=true;
}

bool BuyLimit()
{
   //return(Trade.BuyLimit (inp_Volume,levelBuy ));
   return(Trade.BuyLimit (inp_Volume,levelBuy ,_Symbol,stopBuy,takeBuy ));
}

bool SellLimit()
{
   //return(Trade.SellLimit(inp_Volume,levelSell));
   return(Trade.SellLimit(inp_Volume,levelSell,_Symbol,stopSell,takeSell));
}