Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1559

 
Tsaryoff5614:

¡¡¡Buenas tardes señores programadores!!!

Por favor, ayude a un novato con una función.

La función cuenta el beneficio total por historia.

El problema es que funciona para un corredor y no quiere funcionar para otro.

Funciona en Hercic pero no en RoboForex. Tengo una cuenta ECN en RoboForex.

No sé cuál es el problema. Aquí está el código:

double lastloss()

{

int typ = -1,cnt = 0;

double lastloss = 0;

for(int i = OrdersHistoryTotal()-1; i>=0; i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))

{

if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)

{

if(cnt == 0) typ = OrderType();

if(cnt > 0 && OrderType()!= typ) break;

lastlos += OrderProfit() + + OrderSwap() + OrderCommission();

cnt++;

}

}

}

return(lastlos);

}

Me pregunto si el compilador no maldice esta línea.

lastlos += OrderProfit() + + OrderSwap() + OrderCommission();

¿Quizás haya que quitar un + para que funcione correctamente?

¿Y por qué se añaden los intercambios y las comisiones a los beneficios? Aunque
OrderProfit()

También podría ser negativo...

¿Y de qué tipo de beneficio total estamos hablando si sólo se tramitan 1 o pocos pedidos coincidentes pero no todos?

Siguiente:

 if(cnt > 0 && OrderType()!= typ) break;

parada del ciclo.

 
MakarFX:

1)A alta velocidad o si no está en ticks en el probador se cerrará al primer precio disponible.

2)Tienes un aumento de lote en marcha y con un lote grande 1 punto puede ser más que el nivel permitido.

3)No entiendo lo que quieres, ¿qué necesitas para hacer un seguimiento si la puesta a cero después de cada comercio?

3)No entiendo qué es lo que quieres rastrear si la puesta a cero después de cada comercio?

Me refiero a seguir el beneficio/pérdida "dentro" de cada operación, es decir, mientras el precio está "rondando" entre el stop y la toma, la cantidad de beneficio y pérdida de la operación actual también cambia. A menudo ocurre que el precio llega a la zona de beneficios pero no alcanza el punto de toma, se da la vuelta y la operación se cierra en el stop. Necesito un seguimiento de las pérdidas y ganancias (en dinero) para poder fijarlo a tiempo sin desplazar un stop y un take, es decir, sin romper los parámetros establecidos de take y stop. Esto es relevante para lotes grandes con un Martin habilitado.

Cuando se cierra una operación, el seguimiento se detiene y vuelve a empezar para una nueva operación.

 
законопослушный гражданин:

3)No entiendo qué es lo que quieres rastrear si la puesta a cero después de cada comercio?

Me refiero al seguimiento de los beneficios/pérdidas "dentro" de cada operación, es decir, mientras el precio "vacila" entre el stop y la toma, la cantidad de beneficios y pérdidas de la operación actual cambia. A menudo ocurre que el precio llega a la zona de beneficios pero no alcanza el punto de toma, se da la vuelta y la operación se cierra en el stop. Necesito un seguimiento de las pérdidas y ganancias (en dinero) para poder fijarlo a tiempo sin desplazar un stop y un take, es decir, sin romper los parámetros establecidos de take y stop. Esto es relevante para lotes grandes con un Martin habilitado.

Cuando se cierra una operación, el seguimiento se detiene y comienza de nuevo para una nueva operación.

Sólo es necesario especificar los parámetros de ganancias y pérdidas menos el stoploss y el takeprofit, es decir.

si el TakeProfit es de 200 pips 0.1 lote, entonces la ganancia es de $20, establezca el nivel de ganancia de $15 y la operación se cerrará antes

 
Mihail Matkovskij:

¿Y por qué añade el canje con comisión a los beneficios? Con
OrderProfit()

también puede ser negativo...

Gracias por eso, yo también he estado haciendo esta estupidez

 
MakarFX:

Todo lo que tiene que hacer es especificar los parámetros de pérdidas y ganancias menos el stoploss y el takeprofit, es decir

Si el TakeProfit es de 200 pips 0.1 lote, entonces la ganancia es de $20, establezca el nivel de ganancia en $15 y la operación se cerrará antes


Ok, gracias, lo pensaré y lo ejecutaré en el probador.

 
¿Tiene un enlace a una función que calcule los beneficios basándose en el historial de pedidos?
 

Pido ayuda a la comunidad...
¿Cómo declarar y crear objetos globales MQL5 correctamente?

Si lo hago así:

int OnInit()
{
   CIsNewBar* NB_M1=new CIsNewBar(_Symbol,PERIOD_M1);  // Эта строка потом будет в цикле для разных символов
}

void OnTick()
{
    if (NB_M1.IsNewBar())  // (1) Если появился новый бар M1
        {....}
    ......
}

El compilador se queja de la línea en OnTick(): 'NB_M1' - identificador no declarado, lo cual es lógico, porque se crea una variable local en OnInit().

Si insertas la declaración global antes de OnInit():

CIsNewBar* NB_M1;

compila sin errores y funciona de forma experta. Parece que el objeto se crea dos veces - durante la declaración global y en OnInit().
Pero elcompilador tiene estaadvertencia

la declaración de 'NB_M1' oculta la variable global -> por línea en OnInit()

ver declaración anterior de 'NB_M1'

¿Significa que se crea una variable local (dentro de una función) en OnInit() que oculta una variable global con el mismo nombre?
Y si es así, ¿cómo puede esta variable local ser "vista" por otra función, OnTick() ?


 
MakarFX:

Gracias por eso, yo también hice esa estupidez.

Makar, antes hacías lo correcto y ahora quieres hacer lo estúpido...

Piensa en las matemáticas de 5º curso, más o menos. ¿Cuánto es (-3)-(-7) y cuánto es (-3)+(-7)?

Es difícil de comprobar en una calculadora, Excell para ayudarle.


 
Mihail Matkovskij:
Hola. ¿Conoces alguna biblioteca disponible en MQL para escribir estructuras de datos en un archivo y cargarlas después? Idealmente una biblioteca que trabaje con el formato json, parserjson, etc.

No sé cómo decirte que leas la documentación. Si lo has leído y la función estándar no es adecuada por alguna razón, deberías haberlo dicho...

 
Alexey Viktorov:

Makar, antes hacías lo correcto y ahora quieres hacer lo estúpido...

Piensa en las matemáticas de 5º curso, más o menos. ¿Cuánto es (-3)-(-7) y cuánto es (-3)+(-7)?

Es difícil de comprobar en una calculadora, Excell para ayudarle.


Sí, gracias. He sacado conclusiones precipitadas. Lo tengo bien)

Razón de la queja: