Voll funktionsfähiger Roboter für MT5 - Seite 5

 

Guten Morgen!

Der Prüfer will keine Position öffnen, er erzeugt einen Fehler

ERR_TRADE_SEND_FAILED

4756

Handelsanfrage konnte nicht gesendet werden

Rbtg_NYCInclude-Tester

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Ich denke, hier sollte etwas korrigiert werden

Rbtg_NYCInclude kod

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Ich werde nun versuchen, diese Funktion durch die folgende zu ersetzen

//+------------------------------------------------------------------+
//| Check for long position opening                                  |
//+------------------------------------------------------------------+
bool CSampleExpert::LongOpened(void)
  {
   bool res=false;
//--- check for long position (BUY) possibility

           {
            double price=m_symbol.Ask();
            double tp   =m_symbol.Bid()+m_take_profit;
            //--- check for free money
            if(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_BUY,InpLots,price)<0.0)
               printf("We have no money. Free Margin = %f",m_account.FreeMargin());
            else
              {
               //--- open position
               if(m_trade.PositionOpen(Symbol(),ORDER_TYPE_BUY,InpLots,price,0.0,tp))
                  printf("Position by %s to be opened",Symbol());
               else
                 {
                  printf("Error opening BUY position by %s : '%s'",Symbol(),m_trade.ResultComment());
                  printf("Open parameters : price=%f,TP=%f",price,tp);
                 }
              }
            //--- in any case we must exit from expert
            res=true;
           }
//--- result
   return(res);
  }
//+------------------------------------------------------------------+
//| Check for short position opening                                 |
//+------------------------------------------------------------------+
bool CSampleExpert::ShortOpened(void)
  {
   bool res=false;
//--- check for short position (SELL) possibility

           {
            double price=m_symbol.Bid();
            double tp   =m_symbol.Ask()-m_take_profit;
            //--- check for free money
            if(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_SELL,InpLots,price)<0.0)
               printf("We have no money. Free Margin = %f",m_account.FreeMargin());
            else
              {
               //--- open position
               if(m_trade.PositionOpen(Symbol(),ORDER_TYPE_SELL,InpLots,price,0.0,tp))
                  printf("Position by %s to be opened",Symbol());
               else
                 {
                  printf("Error opening SELL position by %s : '%s'",Symbol(),m_trade.ResultComment());
                  printf("Open parameters : price=%f,TP=%f",price,tp);
                 }
              }
            //--- in any case we must exit from expert
            res=true;
           }
//--- result
   return(res);
  }
//+------------------------------------------------------------------+
 
SanAlex:

Guten Morgen!

Der Prüfer will keine Position öffnen und gibt eine Fehlermeldung aus

ERR_TRADE_SEND_FAILED

4756

Handelsanfrage konnte nicht gesendet werden

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Ich denke, hier muss etwas korrigiert werden.


Ja, es ist Ihr Händler-Forexclub, für den die Auftragsart FilingFock lautet. Ich gehe mit dem Hund spazieren und repariere es. Hätte nicht gedacht, dass es noch jemanden im Forexclub gibt...

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Свойства ордеров - Торговые константы - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
ElenaFxPro4:

Ja. Es ist Ihr Händler-Forexclub, der eine FilingFoc-Auftragsart hat. Ich gehe mit dem Hund spazieren und repariere es. Hätte nicht gedacht, dass es noch jemanden im Forexclub gibt...

Der Füllungsmodus sollte durch die Regeln festgelegt werden, nicht durch den Namen des Devisenhändlers.


Hinzugefügt.

Ein Beispiel finden Sie in der Handelsklasse CTrade

SetMarginMode

Legt den Modus der Margenberechnung entsprechend den aktuellen Kontoeinstellungen fest

SetTypeFillingBySymbol

Legt die Auftragsart entsprechend den Einstellungen des angegebenen Symbols fest

Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / SetMarginMode
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / SetMarginMode
  • www.mql5.com
SetMarginMode - CTrade - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
ElenaFxPro4:

Ja. Es ist Ihr Händler-Forexclub, der eine FilingFoc-Auftragsart hat. Ich gehe mit dem Hund spazieren und repariere es. Ich dachte nicht, dass es noch jemanden im Forexclub gibt...

Ich habe es nicht bemerkt - Sie haben doch sicher noch einen Broker hier

Rbtg_NYCInclude kod 01

 

Es klappt.

Rbtg_NYCTestgerät 01 einbeziehen

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

         ENUM_ORDER_TYPE_FILLING TypeFilling = ORDER_FILLING_FOK;
         if (AccountInfoString(ACCOUNT_COMPANY)=="Alpari") TypeFilling = ORDER_FILLING_IOC;

ausgetauscht -----------

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Bisher scheint es gut zu funktionieren.

Bild 345

 
SanAlex:

Es klappt.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

ausgetauscht -----------

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Bisher scheint es gut zu funktionieren.


Ich frage mich, ob das Ergebnis der Vorprüfung durch den Algorithmus dasselbe ist?
 
Renat Akhtyamov:
da es mit dem Algorithmus vorgetestet wurde, frage ich mich, ob das Ergebnis dasselbe ist?

Ich teste immer noch auf eine Minute - mein Computer ist schwach, deshalb geht das Testen langsam.

Auf den ersten Blick sieht es gut aus - mal sehen, wie das Endergebnis aussieht.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

keine Fehler in Expert's tester

 
SanAlex:

Guten Morgen!

Der Prüfer will keine Position öffnen und gibt eine Fehlermeldung aus

ERR_TRADE_SEND_FAILED

4756

Handelsanfrage konnte nicht gesendet werden

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Ich denke, hier sollte etwas korrigiert werden

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Ich werde versuchen, diese Funktion durch diese zu ersetzen.

Das müssen Sie nicht.

Die 119. Zeile sollte sein if (AccountInfoString(ACCOUNT_COMPANY)=="Alpari" || AccountInfoString(ACCOUNT_COMPANY)=="Forex Club International Limited") TypeFilling = ORDER_FILLING_FOK;

und dasselbe für AUTOOrderSELL. DAS WAR'S. :)


 
ElenaFxPro4:

Das ist nicht nötig.

Die 119. Zeile sollte sein if (AccountInfoString(ACCOUNT_COMPANY)=="Alpari" || AccountInfoString(ACCOUNT_COMPANY)=="Forex Club International Limited") TypeFilling = ORDER_FILLING_FOK;

und dasselbe für AUTOOrderSELL. DAS WAR'S. :)


Ich belasse es vorerst dabei - ich werde es nach dem Test korrigieren.

- den Prüfer nicht aufhalten wollen

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Das einzig Schlimme ist, dass der Test jetzt läuft - und ich scheine es hier zu übertreiben

Bild 3456

 
Vladimir Karputov:

Der Ausfüllmodus sollte durch die Regeln festgelegt werden, nicht durch den Namen des Devisenhändlers.


Hinzugefügt.

Ein Beispiel finden Sie in der Handelsklasse CTrade

SetMarginMode

Legt den Modus der Margenberechnung entsprechend den aktuellen Kontoeinstellungen fest

SetTypeFillingBySymbol

Legt die Auftragsart entsprechend den Einstellungen des angegebenen Symbols fest

Ich danke Ihnen vielmals. Ich sollte den automatischen Modus verwenden, aber ich konnte ihn nicht finden. Deshalb habe ich diesen Patch als einfache Anleitung für den Makler vorbereitet, welchen Modus ich verwenden muss :) Sie sind erst 2. Neuauflage. Ich danke Ihnen.