Errores, fallos, preguntas - página 1634

 
fxsaber:
LifeHack: obtener cualquier número de ventanas de visualización.
Hacer una depuración del historial desde el Metaeditor - CTRL+F5. No cierre la ventana de visualización que aparece, sino la ventana del terminal. Entonces se empieza desde el principio. Así, aparecerán nuevas ventanas de visualización, lo que es útil durante el análisis de los cambios de los resultados del EA en función de los cambios realizados en el código.

Podría ser más sencillo. Para iniciar la visualización con un avance.

La siguiente visualización se iniciará en la segunda, hacia adelante, visualización

 
fxsaber:
Me gustaría ver en Tester->Configuración la opción "Borrar registros anteriores tras el inicio". Es agotador hacer clic en "Eliminar registros" en Tester->Journal cada vez. Obviamente, los registros de backtests anteriores pueden ser útiles en casos excepcionales. La mayoría de las veces no son necesarias. Por lo tanto, la opción de borrar automáticamente los registros antiguos sería útil tanto por comodidad como para ahorrar espacio en el HDD/SDD.
Así es. "Puede ser útil en casos raros"
 
fxsaber:
¿Cómo puedo saber si el modo Hedge está activado/desactivado en la cuenta/prueba? No se menciona esto en la ayuda offline.

Pase el ratón por encima de la cuenta en el navegador. Puede verlo en la información sobre la cuenta.

Cuando te conectas a la cuenta el registro de la terminal dice netting o hedging

 

Anteriormente en la aplicación #1534780 sobre la llamada al constructor principal donde el resultado del código adjunto era

2016.08.10 16:39:26.982 Prueba (GBPUSD,M15) void A::~A():12855
2016.08.10 16:39:26.982 Prueba (GBPUSD,M15) OnDeinit:3
2016.08.10 16:39:26.975 Prueba (GBPUSD,M4) voidA::A():17233
2016.08.10 16:39:15.587 Prueba (GBPUSD,M15) void A::A():12855

la respuesta (*) fue la siguiente:

Equipo de apoyo 2016.08.11 13:35

No hay ninguna llamada principal, cuando se cambia de marco temporal se crea un nuevo indicador (clonado), luego se borra el anterior


Si es así, el siguiente ejemplo muestra una llamada al constructor con retraso

Secuencia de acciones:

  1. Abrir un nuevo gráfico de GBPUSD,M15
  2. Cambiar el marco temporal a H1
  3. Adjunte el indicador Test.ex5 al gráfico
  4. Cambiar el periodo del gráfico a M15

Resultado:

2016.08.11 15:51:51.188 Prueba (GBPUSD,M15) voidA::A():17936
2016.08.11 15:51:50.932 Prueba (GBPUSD,H1) void A::~A():12285
2016.08.08.11 15:51:50.931 Prueba (GBPUSD,H1) OnDeinit:3
2016.08.11 15:51:39.421 Prueba (GBPUSD,H1) void A::A():12285

debería ser (ver *) - la línea subrayada debería ser la segunda (en tiempo), no la última

//Test.mq5
class A { public:
        A() : a( MathRand()) { Print( __FUNCSIG__, ":", a ); }
        virtual ~A()         { Print( __FUNCSIG__, ":", a ); }
        int a;
};
static A a;
void OnInit() {}
void OnDeinit( const int reason ) { Print( __FUNCTION__, ":", reason ); }
int OnCalculate( const int rates_total, const int, const int, const double& [] ) { return rates_total; }
 

Elcálculo del indicador tiene lugar en un hilo de símbolos separado, el establecimiento del período del gráfico y la creación de un clon tienen lugar en un hilo de la interfaz gráfica de usuario

Por eso puede darse la situación de que se calcule un nuevo indicador antes de que se borre el anterior y viceversa.

Operación de flujo de caracteres (resumen)

  1. acción #1
  2. acción #2
  3. acción nº 3 - cálculo de indicadores
  4. acción #4
  5. acción #5 - comprobar y eliminar los indicadores no utilizados
  6. acción #6
  7. acción #N
  8. saltar al paso 1 si no se detiene el flujo

Dependiendo del punto en el que se encuentre el flujo de símbolos, la secuencia de inicialización de un nuevo indicador y el borrado del antiguo depende de ello.

 
Slawa:
Así es."puede ser útil en raras ocasiones".
Así que es lógico no escribir gigas cuando el usuario lo pide expresamente. De todos modos, hay que limpiarlos manualmente.
 
Slawa:

Pase el ratón por encima de la factura en el navegador. Verá la información sobre la cuenta.

Después de conectarse a la cuenta, el registro del terminal mostrará la compensación o la cobertura

¿Cómo?
 
fxsaber:
¡¿Por qué programáticamente?!
ENUM_ACCOUNT_MARGIN_MODE margin_mode=(ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE);
bool is_hedging=(margin_mode==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING);
 
fxsaber:
¿Cómo puedo saber si el modo Hedge está activado/desactivado en la cuenta/prueba? La ayuda offline no dice nada al respecto.

MQL5 Reference - Standard Constants, Enumerations and Structures - Environment State - Account Information - ENUM_ACCOUNT_MARGIN_MODE

Manual de referencia MQL5 - Información de la cuenta - AccountInfoInteger - ENUM_ACCOUNT_INFO_INTEGER - ENUM_ACCOUNT_MARGIN_MODE

MQL5\Include\Trade.mqh - CTrade::IsHedging

 
Slawa:

MQL5 Reference - Standard Constants, Enumerations and Structures - Environment State - Account Information - ENUM_ACCOUNT_MARGIN_MODE

Manual de referencia MQL5 - AccountInfoInteger - ENUM_ACCOUNT_INFO_INTEGER - ENUM_ACCOUNT_MARGIN_MODE

MQL5\Include\Trade.mqh - CTrade::IsHedging

Gracias. Lo siento, he buscado por la palabra Hedge.