Der EA, den ich vor drei Monaten geschrieben habe, kann den Strategietest jetzt nicht bestehen, aber er hat vor zwei oder drei Monaten gut funktioniert!!! - Seite 2

 
angevoyageur:
Zeigen Sie Ihren Code, damit wir Ihnen sagen können, wo Sie diese Zeile hinzufügen müssen.

Bonsoir Angevoyageur,

Hier ist mein Code. Die beiden Teile sind in der onTick-Sektion getrennt.

Dankeschön

Vivaldie


      MqlTick latest_price;      // To be used for getting recent/latest price quotes
      MqlTradeRequest mrequest;  // To be used for sending our trade requests
      MqlTradeResult mresult;    // To be used to get our trade results
      MqlRates mrate[];          // To be used to store the prices, volumes and spread of each bar
      ZeroMemory(mrequest);      // Initialization of mrequest structure
   if(ConditionDICrossMain = -1)
     {
      if(Buy_opened)
        {
         return;    // Don't open a new Buy Position
        }
      mrequest.action = TRADE_ACTION_DEAL;                                  // immediate order execution
      mrequest.price = NormalizeDouble(latest_price.ask,_Digits);           // latest ask price
      mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // Stop Loss
      mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit
      mrequest.symbol = _Symbol;                                            // currency pair
      mrequest.volume = Lot;                                                 // number of lots to trade
      mrequest.magic = EA_Magic;                                             // Order Magic Number
      mrequest.type = ORDER_TYPE_BUY;                                        // Buy Order
      mrequest.type_filling = ORDER_FILLING_FOK;                             // Order execution type
      mrequest.deviation=100;                                                // Deviation from current price
      //--- send order
        
      OrderSend(mrequest,mresult);
      // get the result code
      if(mresult.retcode==10009 || mresult.retcode==10008) //Request is completed or order placed
        {
         Alert("A Buy order has been successfully placed with Ticket#:",mresult.order,"!!");
        }
      else
        {
         Alert("The Buy order request could not be COMPLETE -error:",GetLastError());
         ResetLastError();           
         return;
        }
     }
 
Auf dieser Seite kann ich sehen, der Fehler ist in der ACCOUNT Abschnitt. Ich habe versuchen, mit einem anderen MT5 und anderes Konto, aber ich habe die gleiche Meldung.
 
Vivaldi:

Bonsoir Angevoyageur,

Hier ist mein Code. Die beiden Teile sind in der onTick-Sektion getrennt.

Dankeschön

Vivaldie


  • Was ist der Wert von mresult.retcode, wenn Sie einen Fehler haben?
  • Was sind die Werte von STP, TKP?
  • OrderSend gibt ein bool zurück, Sie müssen auch den zurückgegebenen Wert überprüfen.
  • Da ich nicht weiß, was Sie zwischen den beiden Teilen haben, ist es besser, ZeroMemory(mrequest) direkt vor "mrequest.action=TRADE_ACTION_DEAL" zu setzen.
 

Ich habe keine Meldungen im Log gesehen und es sagt, dass das Problem vom Stop Loss kommt.

Mit dem Wert von 0 funktioniert es großartig : )

 
Vivaldi:

Ich habe keine Meldungen im Log gesehen und es sagt, dass das Problem vom Stop Loss kommt.

Mit dem Wert von 0 funktioniert es großartig : )

Für Ihre Stoplevels (SL und TP) müssen Sie den STOP_LEVELS-Wert für das Symbol, das Sie handeln, berücksichtigen. Siehe dieses Thema.
 
angevoyageur:
  • Was ist der Wert von mresult.retcode, wenn Sie einen Fehler haben?
  • Was sind die Werte von STP, TKP?
  • OrderSend gibt ein bool zurück, Sie müssen auch den zurückgegebenen Wert überprüfen.
  • Da ich nicht weiß, was Sie zwischen den beiden Teilen haben, ist es besser, ZeroMemory(mrequest) direkt vor "mrequest.action=TRADE_ACTION_DEAL" zu setzen.


Ange Ich bekomme es jetzt arbeiten :) Problem kam von der STP-Variable.

Sie müssen die Deklaration mit dem Typ double (statt int) ändern, um Mr. NormalizeDouble zu gefallen.

Vielen Dank

double STP, TKP;
 

Ich habe mich geirrt und die Änderung der Variablendeklaration hat die Fehlermeldung nicht gelöst. Das Problem kommt von den Variablen STP und TKP, die 0 sind und sl = tp ergeben.

 

Ist die Notwendigkeit, die

ZeroMemory(request);

ein Fehler in Build 975 (x86)?

Ich bin vor kurzem während eines Strategietests auf den Fehler 4756 gestoßen, und das Hinzufügen der obigen Zeile hat ihn behoben.

 
k.doras:

Ist die Notwendigkeit, die

ein Fehler in Build 975 (x86)?

Ich bin vor kurzem während eines Strategietests auf den Fehler 4756 gestoßen, und das Hinzufügen der obigen Zeile hat ihn behoben.

Diese Zeile ist obligatorisch (oder eine entsprechende Initialisierung der Anforderungsstruktur).
 

Hallo

send order work in demo account but in real account don't work(2014.11.30 18:21:00.062 55 (اخابر,D1) BuyA: error 4756, retcode = 10006)

{
//--- prepare the request
   MqlTradeRequest request;
   MqlTradeResult  result;
   MqlTradeCheckResult check;
   ZeroMemory(request);
   ZeroMemory(result);
   ZeroMemory(check);
   request.action=5;
   request.symbol=_Symbol;
   request.volume=1000.00;
   request.price=2652.000;
   request.stoplimit=2652.000;
   request.sl=0;
   request.tp=0;
   request.type=6;
   request.type_filling=2;
   request.type_time=0;
   request.expiration=0;
   request.magic=0;
   request.comment="";

   if(!OrderSend(request,result))
     {
      Print(__FUNCTION__,": error ",GetLastError(),", retcode = ",result.retcode);
     }
//---


Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Structure of Request Check Results
Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Structure of Request Check Results
  • www.mql5.com
Standard Constants, Enumerations and Structures / Data Structures / Structure of Request Check Results - Reference on algorithmic/automated trading language for MetaTrader 5
Grund der Beschwerde: