Expert Advisors: Cidomo - Seite 2

 

Als nächstes folgt der Code:

//--- Einfrier- und Anhaltepegel prüfen
/*
 Auftragsart/Position | Aktivierungspreis | Prüfung
 ------------------------|--------------------|--------------------------------------------
 Kauf Limitauftrag| Ask| Ask-OpenPrice >= SYMBOL_TRADE_FREEZE_LEVEL
 Buy Stop-Order| Ask| OpenPrice-Ask >= SYMBOL_TRADE_FREEZE_LEVEL
 Verkaufen Limit-Order | Bid| OpenPrice-Bid >= SYMBOL_TRADE_FREEZE_LEVEL
 Verkaufen Stop-Order| Bid |Bid-OpenPrice >= SYMBOL_TRADE_FREEZE_LEVEL
 Position kaufen| Bid| TakeProfit-Bid >= SYMBOL_TRADE_FREEZE_LEVEL 
 || Bid-StopLoss >= SYMBOL_TRADE_FREEZE_LEVEL
 Position verkaufen| Ask| Ask-TakeProfit >= SYMBOL_TRADE_FREEZE_LEVEL
 | |StopLoss-Ask >= SYMBOL_TRADE_FREEZE_LEVEL
 
 Gekauft wird zum Ask-Kurs| Verkaufen erfolgt zum Geldkurs
 ------------------------------------------------|----------------------------------
 TakeProfit >= Bid| TakeProfit<= Ask
 StopLoss<= Bid| StopLoss>= Ask
 TakeProfit - Bid >= SYMBOL_TRADE_STOPS_LEVEL |Ask - TakeProfit >= SYMBOL_TRADE_STOPS_LEVEL
 Bid - StopLoss >= SYMBOL_TRADE_STOPS_LEVEL | StopLoss - Ask >= SYMBOL_TRADE_STOPS_LEVEL
*/
   if(!RefreshRates() || !m_symbol.Refresh())
     {
      PrevBars=0;
      return;
     }
//--- FreezeLevel -> für anhängige Aufträge und Änderungen
   double freeze_level=m_symbol.FreezeLevel()*m_symbol.Point();
   if(freeze_level==0.0)
      freeze_level=(m_symbol.Ask()-m_symbol.Bid())*3.0;
   freeze_level*=1.1;

Die Berechnungen sind hier nicht klar:

freeze_level=(m_symbol.Ask()-m_symbol.Bid())*3.0;

freeze_level*=1.1;

Zu welchem Zweck? Und warum multiplizieren Sie *3.0 und *=1.1.

 
Sysmart:

Der Code lautet wie folgt:

Die Berechnungen sind hier nicht klar:

freeze_level=(m_symbol.Ask()-m_symbol.Bid())*3.0;

freeze_level*=1.1;

Für welchen Zweck. Und warum multiplizieren Sie *3.0 und *=1.1.

Die Hauptaufgabe besteht darin, Scalper und Pipsetter auszuschalten.

 

Die Funktion OnTradeTransaction ist mir sehr rätselhaft. Wenn möglich, erklären Sie bitte so detailliert wie möglich, was hier vor sich geht:

void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
  {
//--- Transaktionsart als Aufzählungswert erhalten 
   ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- wenn die Transaktion das Ergebnis der Addition der Transaktion in der Historie ist
   if(type==TRADE_TRANSACTION_DEAL_ADD)
     {
      long     deal_ticket       =0;
      long     deal_order        =0;
      long     deal_time         =0;
      long     deal_time_msc     =0;
      long     deal_type         =-1;
      long     deal_entry        =-1;
      long     deal_magic        =0;
      long     deal_reason       =-1;
      long     deal_position_id  =0;
      double   deal_volume       =0.0;
      double   deal_price        =0.0;
      double   deal_commission   =0.0;
      double   deal_swap         =0.0;
      double   deal_profit       =0.0;
      string   deal_symbol       ="";
      string   deal_comment      ="";
      string   deal_external_id  ="";
      if(HistoryDealSelect(trans.deal))
        {
         deal_ticket       =HistoryDealGetInteger(trans.deal,DEAL_TICKET);
         deal_order        =HistoryDealGetInteger(trans.deal,DEAL_ORDER);
         deal_time         =HistoryDealGetInteger(trans.deal,DEAL_TIME);
         deal_time_msc     =HistoryDealGetInteger(trans.deal,DEAL_TIME_MSC);
         deal_type         =HistoryDealGetInteger(trans.deal,DEAL_TYPE);
         deal_entry        =HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
         deal_magic        =HistoryDealGetInteger(trans.deal,DEAL_MAGIC);
         deal_reason       =HistoryDealGetInteger(trans.deal,DEAL_REASON);
         deal_position_id  =HistoryDealGetInteger(trans.deal,DEAL_POSITION_ID);

         deal_volume       =HistoryDealGetDouble(trans.deal,DEAL_VOLUME);
         deal_price        =HistoryDealGetDouble(trans.deal,DEAL_PRICE);
         deal_commission   =HistoryDealGetDouble(trans.deal,DEAL_COMMISSION);
         deal_swap         =HistoryDealGetDouble(trans.deal,DEAL_SWAP);
         deal_profit       =HistoryDealGetDouble(trans.deal,DEAL_PROFIT);

         deal_symbol       =HistoryDealGetString(trans.deal,DEAL_SYMBOL);
         deal_comment      =HistoryDealGetString(trans.deal,DEAL_COMMENT);
         deal_external_id  =HistoryDealGetString(trans.deal,DEAL_EXTERNAL_ID);
        }
      else
         return;
      if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)
         if(deal_entry==DEAL_ENTRY_IN)
            if(deal_type==DEAL_TYPE_BUY || deal_type==DEAL_TYPE_SELL)
              {
               m_need_delete_buy_stop  = true;
               m_need_delete_sell_stop = true;
              }
     }
  }
 

In dem Ausdruck:

      double tp=(InpTakeProfit==0)?0.0:price+ExtTakeProfit;
      if(tp!=0.0 && ExtTakeProfit<level) // Preis prüfen
         tp=price+ExtTakeProfit;

Ich glaube, da ist ein Fehler, es sollte heißen: tp=Preis+Stufe;

 

Hallo mein Freund, ich danke Ihnen für die ea, ich versuche es in der Demo und seine Arbeit gut, öffnen und machen pinding Aufträge.


Aber wenn ich versuche, in live-Konto zu verwenden. seine bekommen abgelehnt, das zu tun. jede Idee zu helfen, bitte mit, dass ich es in realen Konto versuchen wollen.


Mit meinem Dank

 
Mazyad AlAdwani :

Hallo mein Freund, ich danke Ihnen für die ea, ich versuche es in der Demo und seine Arbeit gut, öffnen und machen pinding Aufträge.


Aber wenn ich versuche, in live-Konto zu verwenden. seine bekommen abgelehnt, das zu tun. jede Idee zu helfen, bitte mit, dass ich es in realen Konto versuchen wollen.


Mit meinem Dank

Leider kann ich keine Gedanken aus der Ferne lesen. Außerdem ist ein Vollzeit-Telepath im Urlaub. Daher: stellen Sie solche Daten zur Verfügung (und es ist gute Praxis, technische Daten über eine technische Ressource zur Verfügung zu stellen)

  • Währung und Saldo des Handelskontos
  • Advisor-Einstellungen
  • Protokolldatei (auf der Registerkarte Experten und der Registerkarte Journal)
 
Vladimir Karputov:

Leider kann ich aus der Ferne keine Gedanken lesen. Außerdem ist ein Vollzeit-Telepath im Urlaub. Daher: stellen Sie solche Daten zur Verfügung (und es ist gute Praxis, technische Daten über eine technische Ressource bereitzustellen)

  • Währung und Saldo des Handelskontos
  • Advisor-Einstellungen
  • Protokolldatei (auf der Registerkarte Experten und der Registerkarte Journal)
  • Währung und Saldo des Handelskontos
  • GPBUSD - 80 $


  • Einstellungen des Beraters


  • Log-Datei (von der Registerkarte "Experten" und der Registerkarte "Journal")

Ich danke Ihnen im Voraus, und sorry, nicht alle, die von der ersten ich bin neu, dass alle, aber lernen,.



 

Hallo wieder, ich wartete auf Sie, um mein Problem mit dem EA zu beheben. Ich möchte es in Live-Konto zu verwenden, irgendwelche neuen Nachrichten?

 
Mazyad AlAdwani :

Hallo wieder, ich wartete auf Sie, um mein Problem mit dem EA zu beheben. Ich möchte es in Live-Konto zu verwenden, irgendwelche neuen Nachrichten?

Lernen Sie zuerst zu lesen. Dies ist ein technisches Forum und wenn Sie aufgefordert werden, bestimmte Aktionen durchzuführen, müssen Sie diese Aktionen durchführen.


Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Experten: Cidomo

Vladimir Karputov, 2020.06.03 05:08

Leider kann ich keine Gedanken aus der Ferne lesen. Außerdem ist ein Vollzeit-Telepath im Urlaub. Deshalb: stellen Sie solche Daten zur Verfügung (und es ist gute Praxis, technische Daten über eine technische Ressource zur Verfügung zu stellen)

  • Währung und Saldo des Handelskontos
  • Advisor-Einstellungen
  • Protokolldatei (auf der Registerkarte Experten und der Registerkarte Journal)

 
Vladimir Karputov:

Lernen Sie zuerst zu lesen. Dies ist ein technisches Forum, und wenn Sie aufgefordert werden, bestimmte Aktionen durchzuführen, müssen Sie diese Aktionen durchführen.



Entschuldigung. Ich habe das Bild in der ersten Antwort geschickt, aber ich habe nicht bemerkt, dass es gelöscht wurde!


Wie auch immer, ich habe ein Video gemacht, damit Sie es sehen können