no un asesor no funciona en Metatrader 5 cualquier par de divisas - página 7

 

Y aquí viene la causa:

10030

TRADE_RETCODE_INVALID_FILL

Tipo de ejecución de la orden de balance no soportado especificado

Ya se ha mencionado:

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias de comercio

ni un solo asesor funciona en metatrader 5 cualquier par de divisas

sandex, 2015.04.29 12:56

cambiado a dólares, el EA de la casa no funciona, el mío sí

el tipo de ejecución de la orden debe ser ORDER_FILLING_RETURN


 
Karputov Vladimir:

Y aquí viene la causa:

10030

TRADE_RETCODE_INVALID_FILL

Tipo de ejecución de la orden de balance especificado no soportado

que ya se ha mencionado:


¿cómo hacer que el tipo de ejecución sea?ORDER_FILLING_RETURN
 
Así que correctoORDER_FILLING_ allí tal vez FOG a RETURN... Lo he probado con MT5 también - la más mínima interferencia en el código durante el comercio y perdí $ 100 en él, los nuevos códigos también no funcionó en la demo hasta que añadí algunas de mis características - tal vez fue diseñado de esa manera ... No sé para qué... Hace tiempo que abandoné MT5, aunque empecé con ella, me parecía más segura y sencilla...
 
chipo:
Así que correctoORDER_FILLING_ allí tal vez FOG a RETURN... Lo he probado con MT5 también - la más mínima interferencia en el código durante el comercio y perdí $ 100 en él, los nuevos códigos también no funcionó en la demo hasta que añadí algunas de mis características - tal vez fue diseñado de esa manera ... No sé para qué... Abandoné MT5 hace mucho tiempo, aunque había empezado con él - parecía más fiable y fácil de usar...
No hay líneasORDER_FILLING-ORDER_FOK- FOK en 1 Expert Advisor estándar.
 
todos los EAs estándar están construidos sobre una biblioteca estándar, es necesario editar la biblioteca
 
Alexander Bereznyak:
todos los EA estándar están construidos sobre la biblioteca estándar, la biblioteca debe ser corregida

No hay necesidad de editar la biblioteca estándar - este es el enfoque equivocado. Sólo debes guardar el EA con un nuevo nombre y cambiar un poco el código. Por ejemplo, guarde Moving Averages.mq5 con un nuevo nombre Moving Averages1.mq5.

En la cabecera añada una descripción de que este EA utiliza la política de ejecución ORDER_FILLING_RETURN:

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

y añadir una línea de código en las funciones de cierre y apertura de posiciones:

//+------------------------------------------------------------------+
//| 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:

No hay necesidad de editar la biblioteca estándar - este es el enfoque equivocado. Sólo debes guardar el EA con un nuevo nombre y cambiar un poco el código. Por ejemplo, guarde Moving Averages.mq5 con un nuevo nombre Moving Averages1.mq5.

En la cabecera añada una descripción de que este EA utiliza la política de ejecución ORDER_FILLING_RETURN:

y añadir una línea de código para cerrar y abrir posiciones:

¡Genial! Todo funciona. Gracias por su trabajo y sus explicaciones.
 
¿Se va a borrar el tema? Puede que lo necesite en el futuro :)