Einzelnen Beitrag anzeigen
  #3 (permalink)  
Alt 21.03.18
deadlef deadlef ist offline
Neues Mitglied
 
Registriert seit: May 2015
Beiträge: 12
deadlef befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AVT Beitrag anzeigen
Wenn Du mit einbinden meinst, einfach nur in den EA reinkopieren: nein.
Du mußt die Funktionen schon immer dann benutzen/aufrufen, wenn sie benötigt werden, z.B. wenn eine Order aufgegeben werden soll, muß vor der Order erst mal überprüft werden, ob genug Geld da ist, ob die Angaben über die Lots erlaubt sind, ... halt der ganze Schwanz möglicher Quellen, die eine erfolgreiche Orderaufgabe verhindern würden.

PHP-Code:
description=StringFormat("der Volumen ist weniger den minimalen erlaubten SYMBOL_VOLUME_MIN=%.2f",min_volume);

description=StringFormat("der Volumen ist mehr den maximalen erlaubten SYMBOL_VOLUME_MAX=%.2f",max_volume);

description=StringFormat("Der Volumen ist divisibel der minimalen Gradation SYMBOL_VOLUME_STEP=%.2f, des nächsten korrekten Volumens %.2f",
                               
volume_step,ratio*volume_step); 
Aber tue den Benutzern den Gefallen und schreibe verständliche Meldungen. Der ganze mql5 online Teil ist eine Computerübersetzung mit all ihren Fehlern. Als Benutzer kann ich mit "Der Volumen ist divisibel der minimalen Gradation" NULL anfangen!

Ich hoffe, das beantwortet Deine Fragen. AVT
Meine Order wird mit folgendem code aufgerufen wo und wie implementiere ich denn den kram.

PHP-Code:
void OpenPosition(Signal &signal)
  {
   for(
int attempt=0attempt<TRADE_RETRY_COUNTattempt++)
     {
      
int    ticket     0;
      
int    lastError  0;
      
bool   modified   false;
      
int    command    OrderDirectionToCommand(signal.Direction);
      
double amount     Entry_Amount;
      
double stopLoss   signal.StopLossPips>GetStopLoss(commandsignal.StopLossPips) : 0;
      
double takeProfit signal.TakeProfitPips>GetTakeProfit(commandsignal.TakeProfitPips) : 0;
      
string comment    IntegerToString(signal.MagicNumber);
      
color  arrowColor command==OP_BUY clrGreen clrRed;
      
      if(
IsTradeContextFree())
        {
         
double price=MarketInfo(_Symbol,command==OP_BUY MODE_ASK MODE_BID);
         if(
setProtectionSeparately)
           {         
            
ticket=OrderSend(_Symbol,command,amount,price,10,0,0,comment,signal.MagicNumber,0,arrowColor);
            if(
ticket>&& (signal.StopLossPips>|| signal.TakeProfitPips>0))
               
modified=OrderModify(ticket,0,stopLoss,takeProfit,0,clrBlue);
           }
         else
           {
            
ticket=OrderSend(_Symbol,command,amount,price,10,stopLoss,takeProfit,comment,signal.MagicNumber,0,arrowColor);
            
lastError=GetLastError();      
            if(
ticket<=&& lastError==130)
              {
               
ticket=OrderSend(_Symbol,command,amount,price,10,0,0,comment,signal.MagicNumber,0,arrowColor);
               if(
ticket>&& (signal.StopLossPips>|| signal.TakeProfitPips>0))
                  
modified=OrderModify(ticket,0,stopLoss,takeProfit,0,clrBlue);
               if(
ticket>&& modified)
                 {
                  
setProtectionSeparately=true;
                  Print(
"Detected ECN type position protection.");
                 }
              }
           }
        }

      if(
ticket>0) break;

      
lastError=GetLastError();

      if(
lastError!=135 && lastError!=136 && lastError!=137 && lastError!=138) break;

      
Sleep(TRADE_RETRY_WAIT);
      Print(
"Open Position retry no: "+IntegerToString(attempt+2));
     }
  }