Errores, fallos, preguntas - página 456

 
_____Life_Line:

Esto puede implementarse de diferentes maneras, dependiendo de su tarea.

Eche un vistazo a las secciones de ayuda de MQL5 "Períodos del gráfico", "Información del instrumento" y preste atención a la función ChartSetSymbolPeriod().

Para su aplicación, lo más probable es que tenga que prescribir una lista de TFs y Símbolos u obtenerlos del entorno del mercado.

 
Urain:

Esto puede implementarse de diferentes maneras, dependiendo de su tarea.

Eche un vistazo a las secciones de ayuda de MQL5 "Períodos del gráfico", "Información del instrumento" y preste atención a la función ChartSetSymbolPeriod().

Para su aplicación, lo más probable es que tenga que prescribir una lista de TFs y Símbolos u obtenerlos del entorno del mercado.

Gracias, lo tengo. Funcionó. Puse todas las enumeraciones necesarias en el interruptor. El error estaba en elegir un tipo de cadena correcto para el par y ENUM_TIMEFRAMES para el punto.
 

Hola a todos, hay un matiz muy desagradable a la hora de cerrar posiciones abiertas,

Beneficio obtener por ejemplo +150$ y cerrar todo: PERO en el gráfico vio tal imagen:

decidió hacer una pequeña adición antes de cerrar todas las posiciones en los diferentes símbolos en el código es así:

    double bal = AccountInfoDouble(ACCOUNT_BALANCE);
    double eqv = AccountInfoDouble(ACCOUNT_EQUITY);
    if (bal < eqv && (tral == false && GetProfit()>= PP))
     {

es decir, cuando el beneficio de todos los pares es superior al especificado en los parámetros, y el patrimonio es superior al equilibrio, entonces cerramos

Pero después de estos cambios la situación no ha cambiado, ahora tenemos los mismos matices sólo que en un lugar diferente.


Tengo la única explicación para esto: hemos calculado un beneficio de texto que es mayor que el que fijamos en +.

y cuando empezamos a cerrar los precios ya han cambiado, es decirUn par de tildes en

de ticks en el probador pasó y ya estábamos en rojo mientras todo se cerraba (2 pares de instrumentos

EURUSD .. GBPUSD)

¿Entonces?

 
Im_hungry:

Hola a todos, hay un matiz muy desagradable a la hora de cerrar posiciones abiertas,

.............

Así que...

¿Hay paradas?
 
MetaDriver:
¿Tienes pies?
"Pues de dónde sacan los pies en Italia, he visto su Italia en un mapa, bota sobre bota"(s)casi blindado) :o)
 
MetaDriver:
¿Hay paradas?

No sólo arrastre (lo que está abajo en cada garrapata), ahora trató el siguiente código:

    double bal = AccountInfoDouble(ACCOUNT_BALANCE);
    double eqv = AccountInfoDouble(ACCOUNT_EQUITY);
    if (bal < eqv && (tral == false && AccountInfoDouble(ACCOUNT_PROFIT)>= PP))

PP - beneficio en los parámetros, y siguen los mismos fallos, un par de ticks y estamos todos en pérdidas o...?

Se abre por arbitraje en 2 pares (EURUSD ... GBPUSD) y cuando alcanzamos el beneficio deseado

Cerramos.

 

Me he asegurado de que las líneas adicionales no interfieran con el cierre rápido de las poses,

Hay menos saltos, pero cada vez me inclino más a pensar que se debe a la lentitud del ordenador,

¿Tengo suficiente RAM, pero tengo la CPU llena?

 

Por favor, aconséjeme cómo interpretar el estado de SYMBOL_TRADE_MODE.

¿Puedo enviar órdenes para cambiar los niveles de stop en el modo SYMBOL_TRADE_MODE_CLOSEONLY?

 
Im_hungry:

No sólo arrastre (lo que está abajo en cada garrapata), ahora trató el siguiente código:

PP - beneficio en los parámetros, y siguen los mismos fallos, un par de ticks y estamos todos en pérdidas o...?

Abrimos el arbitraje en 2 pares (EURUSD ... GBPUSD) y después de conseguir el beneficio total requerido

Cerramos.

El código proporcionado no es suficiente. Hay un error fuera de él.
 
MetaDriver:
El código proporcionado no es suficiente. El error está fuera de él.

después de eso (

bal < eqv && (tral == false && AccountInfoDouble(ACCOUNT_PROFIT)>= PP && sum>=PP)

) las posturas se cierran inmediatamente con este código tomado de este sitio

   MqlTradeRequest mrequest;                           
   MqlTradeResult mresult;                             
   if(PositionSelect(Symbol_1)==true)
     {
       mrequest.action = TRADE_ACTION_DEAL;              
       if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) mrequest.price = SymbolInfoDouble(Symbol_1,SYMBOL_BID);    
       if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) mrequest.price = SymbolInfoDouble(Symbol_1,SYMBOL_ASK);
       mrequest.symbol = Symbol_1;                         
       mrequest.volume = PositionGetDouble(POSITION_VOLUME);                          
       mrequest.magic = PositionGetInteger(POSITION_MAGIC); ;                           
       if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) mrequest.type= ORDER_TYPE_SELL;                    
       if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) mrequest.type= ORDER_TYPE_BUY;
       mrequest.type_filling = ORDER_FILLING_AON;         
       mrequest.deviation=Prosk;                          
       OrderSend(mrequest,mresult);

No tengo ningún error en 2 pares de divisas. Intentaré analizar qué es lo que falla pero lo cierto es que obtuve diferentes resultados en diferentes ordenadores con diferentes interfaces y casi sin saltos al cerrar