Expert Advisors: cheduecoglioni

 

cheduecoglioni:

Wir warten, wann TP oder SL ausgelöst werden, und danach öffnen wir die Position in der entgegengesetzten Richtung. Die Überprüfung, ob Mittel ausreichend sind, bevor eine Handelsoperation durchgeführt wird. OnTradeTransaction.

Autor: Vladimir Karputov

 

Hallo mein Freund, Vladimir.

Die Bedingung war sehr interessant für mich:

            if( m_trade.ResultDeal()==0 )
              {
               Print("Buy -> false. Result Retcode: ",m_trade.ResultRetcode(),
                     ", description of result: ",m_trade.ResultRetcodeDescription());
              }

Folgende Bedingungen sind richtig für OrderSendAsync() Funktion oder Pending Order ?

            if( m_trade.ResultDeal()==0  ||  m_trade.ResultOrder()==0 )
              {
               Print("Buy -> false. Result Retcode: ",m_trade.ResultRetcode(),
                     ", description of result: ",m_trade.ResultRetcodeDescription());
              }
 
Automated-Trading:

cheduecoglioni:

Autor: Vladimir Karputov

Sehr gut, wie kann ich diese E A? Ich liebte Ihre Argumentation, ich wollte schon immer einen Roboter in diesem Parameter beschrieben

 
sztusz1 :
Sehr gut, wie verwende ich diese E A? Ich liebe Ihre Argumentation, ich wollte schon immer einen Roboter in diesem beschriebenen Parameter

Befestigen Sie den Indikator an der Symbolgrafik. Das ist alles.

 
Die Siege sind in Ordnung, und es wäre besser, wenn wir Martin hinzufügen könnten!
 
Was ist die Bedingung, um die erste Position zu öffnen? Oder müssen Sie sie manuell öffnen?
 
284954 #:
Was ist die Bedingung, um die erste Position zu öffnen? Oder müssen Sie sie manuell öffnen?

Der EA wartet, bis ein TP oder SL ausgelöst wird, und eröffnet dann eine Position in der entgegengesetzten Richtung. Er prüft, ob genug Geld vorhanden ist, bevor er eine Handelsanforderung sendet. OnTradeTransaction.

Wir haben zum Beispiel eine offene Buy-Position. Sobald TP oder SL ausgelöst wird, wird eine neue Verkaufsposition eröffnet. Dann, nach dem Auslösen von TP oder SL, wird eine neue Buy-Position eröffnet.

Ein Geschäftsabschluss wird in"OnTradeTransaction" überwacht:

//+------------------------------------------------------------------+
//| TradeTransaction-Funktion|
//+------------------------------------------------------------------+
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 Hinzufügung der Transaktion in der Geschichte ist
   if(type==TRADE_TRANSACTION_DEAL_ADD)
     {
      long     deal_entry        =0;
      long     deal_type         =0;
      string   deal_symbol       ="";
      long     deal_magic        =0;
      long     deal_time         =0;
      if(HistoryDealSelect(trans.deal))
        {
         deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
         deal_type=HistoryDealGetInteger(trans.deal,DEAL_TYPE);
         deal_symbol=HistoryDealGetString(trans.deal,DEAL_SYMBOL);
         deal_magic=HistoryDealGetInteger(trans.deal,DEAL_MAGIC);
         deal_time=HistoryDealGetInteger(trans.deal,DEAL_TIME);
        }
      else
         return;
      if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)
        {
         if(deal_entry==DEAL_ENTRY_OUT)
           {
            if(deal_type==DEAL_TYPE_BUY || deal_type==DEAL_TYPE_SELL)
              {
               if(deal_type==DEAL_TYPE_BUY)
                  m_close_pos_type=POSITION_TYPE_SELL;
               else if(deal_type==DEAL_TYPE_SELL)
                  m_close_pos_type=POSITION_TYPE_BUY;
               else
                  return;
               m_is_trade=true;
              }
           }
         else if(deal_entry==DEAL_ENTRY_IN)
           {
            m_is_trade=false;
           }
        }
     }
  }