Diskussion zum Artikel "Das MQL5-Kochbuch – Mehrwährungsfähiger Expert Advisor und die Arbeit mit Pending Orders in MQL5" - Seite 2

 

Otto ...nun kannst du es nutzen :-)

Bei mir macht er Trades.

 

Ist ja ein heftiger response. Danke!

Ich wollte ja blos drauf hinweisen, daß sich die Autoren der Artikel etwas um diese kümmern sollten.

Man braucht ja nur

CheckTradingPermission()
rausschmeissen und allen MQL5xxx-Müll und schon funktionierts ;)
 
Otto Pauser:

Ist ja ein heftiger Response. Danke!

Ich wollte ja bloß darauf hinweisen, das sich die Autoren der Artikel etwas um diese kümmern sollten.

Mmmhhh ..ja wissen wir.

Und ich hab dem etwas an Ausdruck verliehen.

Sowas wirkt, das merkt man an anderen Stellen, auch wenn niemand was dazu sagt :-)

 
Christian:

Mmmhhh ..ja wissen wir.

Und ich hab dem etwas an Ausdruck verliehen.

Sowas wirkt, das merkt man an anderen Stellen, auch wenn niemand was dazu sagt :-)

Es ging mir darum die MarketOrders in PendigOrders umzuprogrammieren.

Wer immer es brauchen kann, hier ist der Code wie es funktioniert.

Das ist kein sinnvoller EA sondern nur ein Beispiel wie man das rechnet. Ich hoffe es ist auch richtig, im Tester funktioniert es.

Ist auch nicht mein wirklicher Programmierstil, sondern sehr einfach gehalten.

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

//+------------------------------------------------------------------+
input int    inp_Dist     =  120;   // Distance pending order (points)
input int    inp_Stop     =  125;   // SL (points)
input int    inp_Take     =  150;   // TP (points)
input double inp_Volume   = 0.01;   // Volume

//+------------------------------------------------------------------+
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));
}

Grund der Beschwerde: