Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 940

 
Artyom Trishkin:

Hier wird es nicht funktionieren - er benutzt keine Smartphones und andere neue Geräte - es gibt ein Telefon von Smolny...

Hier gibt es mindestens eine gleichgesinnte Person. Auch ich ignoriere all diese Gadgets und sozialen Medien. Nur gibt es kein Telefon aus dem Kreml...

 

Ich habe genug von den Requotes.

//+------------------------------------------------------------------+
void OpenSell()
  {

   m_symbol.Name("EURUSD");
   RefreshRates();
   if(m_trade.Sell(InpLots,"EURUSD",m_symbol.Bid(),0.0,0.0))
     {
      if(m_trade.ResultDeal()==0)
        {
         Print("#1 Sell -> false. Result Retcode: ",m_trade.ResultRetcode(),
               ", description of result: ",m_trade.ResultRetcodeDescription());
         PrintResultTrade(m_trade,m_symbol);
        }
      else
        {
         Print("#2 Sell -> true. Result Retcode: ",m_trade.ResultRetcode(),
               ", description of result: ",m_trade.ResultRetcodeDescription());
         PrintResultTrade(m_trade,m_symbol);
        }

     }

//---
  }
//+------------------------------------------------------------------+

Was ist an diesem Code falsch? Ich erhalte nicht einmal das Ergebnis einer Prüfung der Auftragsausführung.

Ich erhalte nur eine Tabelle mit einer Rückfrage, das ist alles.


 
ilvic:

Ich habe genug von den Requotes.

Was ist an diesem Code falsch? Ich erhalte nicht einmal das Ergebnis einer Prüfung der Auftragsausführung.

Ich erhalte nur eine Tabelle mit einer Rückfrage und das ist alles.


Sie sollten das Ergebnis vonPrintResultTrade als Code einfügen.Nicht in Form eines Bildes, sondern in Form eines Codes.

 

Dies ist das Schreiben der Experten. Bitte beachten Sie, dass er das Ergebnis des Tests nicht aufschreibt.

2018.11.02 15:20:36.769 Above (EURUSD,M1)       CTrade::OrderSend: instant sell 1.00 EURUSD at 1.14299 [requote (1.14307/1.14317)]

Und das steht im Protokoll.

2018.11.02 11:18:49.826 Network '13107230': scanning network for access points
2018.11.02 11:19:17.821 Network '13107230': scanning network finished
2018.11.02 15:20:35.846 Trades  '13107230': instant sell 1.00 EURUSD at 1.14299 (deviation: 100)
2018.11.02 15:20:36.769 Trades  '13107230': requote 1.14307 / 1.14317 (instant sell 1.00 EURUSD at 1.14299 (deviation: 100))

Server methaquotes demo

 
ilvic:

Dies ist das Schreiben der Experten. Bitte beachten Sie, dass er das Ergebnis des Tests nicht aufschreibt.

Und das steht im Protokoll.

Server methaqvotes demo

Fügen Sie das Ergebnis vonPrintResultTrade als Codeein. Nicht als Bild, sondern als Code.


Oder Siekommen gar nicht zuPrintResultTrade und werden zuerst rausgeschmissen?

 

Ist es das? Wenn nicht, sagen Sie mir, was Sie meinen.

//+------------------------------------------------------------------+
//| Print CTrade result                                              |
//+------------------------------------------------------------------+
void PrintResultTrade(CTrade &trade,CSymbolInfo &symbol)
  {
   Print("File: ",__FILE__,", symbol: ",m_symbol.Name());
   Print("Code of request result: "+IntegerToString(trade.ResultRetcode()));
   Print("code of request result as a string: "+trade.ResultRetcodeDescription());
   Print("Deal ticket: "+IntegerToString(trade.ResultDeal()));
   Print("Order ticket: "+IntegerToString(trade.ResultOrder()));
   Print("Volume of deal or order: "+DoubleToString(trade.ResultVolume(),2));
   Print("Price, confirmed by broker: "+DoubleToString(trade.ResultPrice(),symbol.Digits()));
   Print("Current bid price: "+DoubleToString(symbol.Bid(),symbol.Digits())+" (the requote): "+DoubleToString(trade.ResultBid(),symbol.Digits()));
   Print("Current ask price: "+DoubleToString(symbol.Ask(),symbol.Digits())+" (the requote): "+DoubleToString(trade.ResultAsk(),symbol.Digits()));
   Print("Broker comment: "+trade.ResultComment());
  }
//+------------------------------------------------------------------+
 
ilvic:

Dies ist das Schreiben der Experten. Bitte beachten Sie, dass er das Ergebnis des Tests nicht aufschreibt.

Und das steht im Protokoll.

Server methaquotes demo.

Warum mussten Sie den Code kürzen? Beispiel für die Öffnungsfunktion imParabolic SAR EA-Code

//+------------------------------------------------------------------+
//| Open Sell position                                               |
//+------------------------------------------------------------------+
void OpenSell(double sl,double tp)
  {
   sl=m_symbol.NormalizePrice(sl);
   tp=m_symbol.NormalizePrice(tp);

   double short_lot=InpLots;
//--- check volume before OrderSend to avoid "not enough money" error (CTrade)
   double free_margin_check= m_account.FreeMarginCheck(m_symbol.Name(),ORDER_TYPE_SELL,short_lot,m_symbol.Bid());
   double margin_check     = m_account.MarginCheck(m_symbol.Name(),ORDER_TYPE_SELL,short_lot,m_symbol.Bid());
   if(free_margin_check>margin_check)
     {
      if(m_trade.Sell(short_lot,m_symbol.Name(),m_symbol.Bid(),sl,tp))
        {
         if(m_trade.ResultDeal()==0)
           {
            Print("#1 Sell -> false. Result Retcode: ",m_trade.ResultRetcode(),
                  ", description of result: ",m_trade.ResultRetcodeDescription());
            PrintResultTrade(m_trade,m_symbol);
           }
         else
           {
            Print("#2 Sell -> true. Result Retcode: ",m_trade.ResultRetcode(),
                  ", description of result: ",m_trade.ResultRetcodeDescription());
            PrintResultTrade(m_trade,m_symbol);
           }
        }
      else
        {
         Print("#3 Sell -> false. Result Retcode: ",m_trade.ResultRetcode(),
               ", description of result: ",m_trade.ResultRetcodeDescription());
         PrintResultTrade(m_trade,m_symbol);
        }
     }
   else
     {
      Print(__FUNCTION__,", ERROR: method CAccountInfo::FreeMarginCheck returned the value ",DoubleToString(free_margin_check,2));
      return;
     }
//---
  }
 
ilvic:

Ist es das? Wenn nicht, sagen Sie mir, was Sie meinen.

Sie haben den Prüfschritt Nr. 3 aus dem Code herausgenommen.

 
Vladimir Karputov:

Fügen Sie das Ergebnis vonPrintResultTrade als Codeein.Nicht als Bild, sondern als Code.


Oder Siekommen nicht zuPrintResultTrade und werden früher rausgeschmissen?

Genau, wenn der Auftrag ausgeführt wird, sieht Ihr Ausdruck wie folgt aus

2018.11.02 10:09:12.648 Above (EURUSD,M1)       #2  Buy -> true. Result Retcode: 10009, description of result: done at 1.14387

Erfolgt eine Rückfrage, bleibt der Expert Advisor stumm.

Und ich bleibe mit einer nicht ausgeführten Bestellung zurück

 
ilvic:

Genau, wenn der Auftrag ausgeführt wird, sieht der Ausdruck wie folgt aus

Wenn ein Requote, wird der Expert Advisor still wie ein Fisch sein.

Und ich bleibe mit einer nicht erfüllten Bestellung zurück.

In meinem Beitrag habe ich ein Beispiel für eine Funktion gegeben. Ich habe es nicht geschnitten. Es gibt ein Beispiel inParabolic SAR EA