non un consigliere non funziona in Metatrader 5 qualsiasi coppia di valute - pagina 7

 

Ed ecco che arriva la causa:

10030

TRADE_RETCODE_INVALID_FILL

Tipo di esecuzione dell'ordine di bilanciamento specificato non supportato

È già stato menzionato:

Forum sul trading, sistemi di trading automatico e test di strategie di trading

non un singolo consulente funziona in metatrader 5 qualsiasi coppia di valute

sandex, 2015.04.29 12:56

commutato in dollari, in-house EA non funziona, il mio sì

il tipo di esecuzione dell'ordine dovrebbe essere ORDER_FILLING_RETURN


 
Karputov Vladimir:

Ed ecco che arriva la causa:

10030

TRADE_RETCODE_INVALID_FILL

Tipo di esecuzione dell'ordine di bilanciamento specificato non supportato

che è già stato menzionato:


come fare in modo che il tipo di esecuzione siaORDER_FILLING_RETURN
 
Così correttoORDER_FILLING_ ci forse FOG a RETURN... Ho provato anche con MT5 - la minima interferenza nel codice durante il trading e ho perso 100 dollari su di esso, i nuovi codici non hanno anche funzionato sulla demo fino a quando ho aggiunto alcune delle mie caratteristiche - forse è stato progettato così ... Non so per cosa... Ho abbandonato MT5 molto tempo fa, anche se ho iniziato con esso - sembrava più sicuro e più semplice...
 
chipo:
Così correttoORDER_FILLING_ ci forse FOG a RETURN... Ho provato anche con MT5 - la minima interferenza nel codice durante il trading e ho perso 100 dollari su di esso, i nuovi codici non hanno anche funzionato sulla demo fino a quando ho aggiunto alcune delle mie caratteristiche - forse è stato progettato così ... Non so per cosa... Ho abbandonato MT5 molto tempo fa, anche se avevo iniziato con esso - sembrava più affidabile e facile da usare...
Non ci sono lineeORDER_FILLING-ORDER_FOK- FOK in 1 Expert Advisor standard.
 
tutti gli EA standard sono costruiti su una libreria standard, è necessario modificare la libreria
 
Alexander Bereznyak:
tutti gli EA standard sono costruiti sulla libreria standard, la libreria dovrebbe essere corretta

Non c'è bisogno di modificare la libreria standard - questo è l'approccio sbagliato. Dovresti semplicemente salvare l'EA con un nuovo nome e cambiare un po' il codice. Per esempio, salva Moving Averages.mq5 con un nuovo nome Moving Averages1.mq5.

Nell'intestazione aggiungi una descrizione che questo EA usa la politica di esecuzione ORDER_FILLING_RETURN:

#property version   "1.00"
#property description "Политика исполнения: ORDER_FILLING_RETURN"
#include <Trade\Trade.mqh>

e aggiungere una linea di codice nelle funzioni di chiusura e apertura della posizione:

//+------------------------------------------------------------------+
//| Check for open position conditions                               |
//+------------------------------------------------------------------+
void CheckForOpen(void)
  {
   .
   .
   .
//--- additional checking
   if(signal!=WRONG_VALUE)
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
         if(Bars(_Symbol,_Period)>100)
           {
            CTrade trade;
            trade.SetTypeFilling(ORDER_FILLING_RETURN);
            trade.PositionOpen(_Symbol,signal,TradeSizeOptimized(),
                               SymbolInfoDouble(_Symbol,signal==ORDER_TYPE_SELL ? SYMBOL_BID:SYMBOL_ASK),
                               0,0);
           }
//---
  }
//+------------------------------------------------------------------+
//| Check for close position conditions                              |
//+------------------------------------------------------------------+
void CheckForClose(void)
  {
   .
   .
   .
//--- additional checking
   if(signal)
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
         if(Bars(_Symbol,_Period)>100)
           {
            CTrade trade;
            trade.SetTypeFilling(ORDER_FILLING_RETURN);
            trade.PositionClose(_Symbol,3);
           }
//---
  }
 
Karputov Vladimir:

Non c'è bisogno di modificare la libreria standard - questo è l'approccio sbagliato. Dovresti semplicemente salvare l'EA con un nuovo nome e cambiare un po' il codice. Per esempio, salva Moving Averages.mq5 con un nuovo nome Moving Averages1.mq5.

Nell'intestazione aggiungi una descrizione che questo EA usa la politica di esecuzione ORDER_FILLING_RETURN:

e aggiungere una linea di codice per chiudere e aprire le posizioni:

Grande! Tutto funziona. Grazie per il vostro duro lavoro e le vostre spiegazioni!
 
L'argomento non sarà cancellato? Potrei averne bisogno in futuro :)
Motivazione: