AlGuru: Por favor, avisa. ¿Cómo especificar en el Asesor Experto que se cierre en la siguiente vela?
datetime Hora[] - Matriz Horaque contiene lahora de apertura de cada barra del gráfico actual.Hora[0] - La hora de apertura de la última barra. Si el OrderOpenTime() es menor queTime[0] - esto significa que la orden fue abierta en la última barra, y de acuerdo con su estrategia, es el momento de cerrar esta orden.
STARIJ: datetime Time[] - Matriz de tiempoque contiene la hora de apertura de cada barra del gráfico actual.Hora[0] - La hora de apertura de la última barra. Si el OrderOpenTime () está abiertoenmenos queTime[0]- esto significa que la orden fue abierta en la última barra, y de acuerdo con su estrategia, es el momento de cerrar esta orden.
O bien, se ha olvidado y se abrió hace un año, por ejemplo ;)
STARIJ: datetime Time[] - Serie de tiempo, que contiene lahora de apertura de cada barra del gráfico actual.Hora[0] - hora de la última barra abierta. Si el OrderOpenTime() es menor queTime[0] - esto significa que la orden fue abierta en la última barra, y de acuerdo con su estrategia, es el momento de cerrar esta orden.
Gracias. Acabo de resolver el problema con la función iTime. Todavía no soy bueno con las matrices )).
STARIJ: datetime Time[] - Matriz de tiempo, que contiene lahora de apertura de cada barra del gráfico actual.Hora[0] - La hora de apertura de la última barra. Si el OrderOpenTime () esmenor queTime[0]- significa que la orden se abre en la última barra, y de acuerdo con su estrategia, es el momento de cerrar esta orden.
O bien se ha olvidado y se descubrió hace un año, por ejemplo ;)
¿Y si la hora de apertura del pedido fue hace una semana? Entonces definitivamente no está en la última vela (si el gráfico no es semanal). ¿Debemos cerrarlo también?
Por supuesto, todo depende de los requisitos de tu ST, pero yo iría por el otro lado...
¿Y si la hora de apertura del pedido fue hace una semana? Entonces definitivamente no está en la última vela (si el gráfico no es semanal). ¿Debemos cerrarlo también?
Por supuesto, todo depende de los requisitos de tu ST, pero yo iría por el otro lado...
Esta es una condición adicional. Una posición debe cerrarse cuando el precio alcanza la línea MA. A veces el precio se abre justo en la línea y abre y cierra posiciones en cada tick. He resuelto este problema cerrando una posición no antes de la siguiente vela.
2.Siesta orden se cierra en SL, entonces. para compensar la pérdida, inmediatamente al precio de cierre en SL de una orden N X, abra la orden N - X1 (volumen = 0,3)
TENEMOS QUE HACER.
3 Si la orden (volumen = 0,3) se cierra en SL, sólo se recordará el valor de la hora de apertura de la orden N - X para compensar las pérdidas con las que se abrió.
Sé cómo abrir ambas órdenes, pero no encuentro el camino hasta el final, cómo memorizar el valor de la hora para una orden con un volumen de 0,1 lotes que se cerró en el SL.
NOTA: Esto está relacionado con los cierres de órdenes en el mismo tick.
A veces se cierra más de una orden con el volumen de 0,1 y 0,3 en un solo tick.
Si 3 órdenes de 0,1, por ejemplo, se cierran en un solo tick en un SL, en lugar de abrir 3 órdenes de 0,3. - sólo se abre un pedido de 0,3 lotes
En este caso si cierro sólo 1 orden de 0,3 lotes en el SL, no obtendré valores de la hora cuando se abran dos órdenes de 0,1 lotes que compensen sus pérdidas.
Es decir, necesito que se abran 3 órdenes de 0,3 lotes en este caso, no una.
A veces, 3 órdenes de 0,3 lotes serán cerradas por un SL en un solo tick, a pesar de que sus correspondientes órdenes de 0,1 lotes fueron abiertas en diferentes ticks (pero a un solo precio).
En este caso, el programa guarda el valor correcto sólo para una última orden de 0,1 lotes.
Necesito que el programa guarde el valor de la hora de cada orden (0,1 lote) cerrada por SSL.
Aquí está mi código, que tenemos que modificar.
Gracias por su ayuda.
int A2;
int A1;
int A;
int start()
{
int ot = OrdersTotal();
int Ht = OrdersHistoryTotal();
if(Bid == iOpen(NULL,PERIOD_H1,0))
if ( A!= Hour() )
{
OrderSend(Symbol(),OP_SELL,0.1,Bid ,3,Ask+400*Point,Ask-200*Point,"jfh",123 );
A = Hour();
}
//**************************************************************************************int Счет=0, Номер=OrdersHistoryTotal()-1;
//int A1=0;for( ; Номер>=0; Номер--)
{
if(!OrderSelect(Номер, SELECT_BY_POS, MODE_HISTORY)) continue;
A1=OrderOpenTime();
if(OrderProfit()>=0) break;
Счет++;
if(Счет ==1&&A2!=OrderOpenTime())
{
A2=OrderOpenTime();
OrderSend(Symbol(),OP_SELL,0.3,Bid ,3,Ask+400*Point,Ask-200*Point,"jfh",123 );
}
}
//************************************************************************************** return;
}
Este es un ejemplo de una situación en la que se cierran varias órdenes en un solo tick
08:51:38.9062017.03.2713:09:44 Tester: stop loss #200 at 1.08858 (1.08856 / 1.08858)
208:51:38.9062017.03.2713:09:441 = 1 = 1 = 1 EURUSD,M1: open #214 sell 0.30 EURUSD at 1.08856 sl: 1.09258 tp: 1.08658 ok
008:51:38.9062017.03.2713:10:28 Tester: stop loss #192 at 1.08879 (1.08877 / 1.08879)
008:51:38.9062017.03.2713:10:28 Tester: stop loss #193 at 1.08879 (1.08877 / 1.08879)
208:51:38.9062017.03.2713:10:281 = 1 = 1 = 1 EURUSD,M1: open #215 sell 0.30 EURUSD at 1.08877 sl: 1.09279 tp: 1.08679 ok
008:51:38.9062017.03.2713:10:29 Tester: stop loss #194 at 1.08880 (1.08878 / 1.08880)
Esta es una condición adicional. Una posición se cierra cuando el precio cruza la línea МА. A veces el precio se abre justo en la línea y abre y cierra una posición en cada tick. He solucionado el problema cerrando la posición antes de la siguiente vela.
Este problema debería resolverse comprobando si hay, o ha habido, una posición abierta y cerrada en esta misma barra.
De lo contrario, lo amontonarás todo. La función de señal debe enviar señales, mientras que la función de negociación debe comprobar ya la validez de la señal.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
datetime Time[] - Matriz de tiempoque contiene la hora de apertura de cada barra del gráfico actual.Hora[0] - La hora de apertura de la última barra. Si el OrderOpenTime () está abierto en menos que Time[0]- esto significa que la orden fue abierta en la última barra, y de acuerdo con su estrategia, es el momento de cerrar esta orden.
datetime Time[] - Serie de tiempo, que contiene la hora de apertura de cada barra del gráfico actual.Hora[0] - hora de la última barra abierta . Si el OrderOpenTime() es menor queTime[0] - esto significa que la orden fue abierta en la última barra, y de acuerdo con su estrategia, es el momento de cerrar esta orden.
Gracias. Acabo de resolver el problema con la función iTime. Todavía no soy bueno con las matrices )).
Gracias. Acabo de resolver el problema utilizando la función iTime. Todavía no soy bueno con las matrices )).
Muéstrame cómo lo has resuelto.
Hay algo que quizá no hayas tenido en cuenta:
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Cualquier pregunta de los novatos en MQL4, ayuda y discusión sobre algoritmos y códigos
Artyom Trishkin, 2017.05.25 19:43
STARIJ:
datetime Time[] - Matriz de tiempo, que contiene la hora de apertura de cada barra del gráfico actual.Hora[0] - La hora de apertura de la última barra. Si el OrderOpenTime () esmenor que Time[0]- significa que la orden se abre en la última barra, y de acuerdo con su estrategia, es el momento de cerrar esta orden.
Muéstrame cómo lo has resuelto.
Hay algunas cosas que quizá no hayas tenido en cuenta:
OrderOpenTime() < iTime(Symbol(), 0, 0)
OrderOpenTime() < iTime(Symbol(), 0, 0)
¿Y si la hora de apertura del pedido fue hace una semana? Entonces definitivamente no está en la última vela (si el gráfico no es semanal). ¿Debemos cerrarlo también?
Por supuesto, todo depende de los requisitos de tu ST, pero yo iría por el otro lado...
¿Y si la hora de apertura del pedido fue hace una semana? Entonces definitivamente no está en la última vela (si el gráfico no es semanal). ¿Debemos cerrarlo también?
Por supuesto, todo depende de los requisitos de tu ST, pero yo iría por el otro lado...
Esta es una condición adicional. Una posición debe cerrarse cuando el precio alcanza la línea MA. A veces el precio se abre justo en la línea y abre y cierra posiciones en cada tick. He resuelto este problema cerrando una posición no antes de la siguiente vela.
¡Buenos días a todos!
Por favor, aconséjeme cómo codificar la siguiente acción en el probador de estrategias
Idea general
1. orden abierta N -X (volumen = 0,1)
2.Si esta orden se cierra en SL, entonces. para compensar la pérdida, inmediatamente al precio de cierre en SL de una orden N X, abra la orden N - X1 (volumen = 0,3)
TENEMOS QUE HACER.
3 Si la orden (volumen = 0,3) se cierra en SL, sólo se recordará el valor de la hora de apertura de la orden N - X para compensar las pérdidas con las que se abrió.
Sé cómo abrir ambas órdenes, pero no encuentro el camino hasta el final, cómo memorizar el valor de la hora para una orden con un volumen de 0,1 lotes que se cerró en el SL.
NOTA: Esto está relacionado con los cierres de órdenes en el mismo tick.
A veces se cierra más de una orden con el volumen de 0,1 y 0,3 en un solo tick.
Si 3 órdenes de 0,1, por ejemplo, se cierran en un solo tick en un SL, en lugar de abrir 3 órdenes de 0,3. - sólo se abre un pedido de 0,3 lotes
En este caso si cierro sólo 1 orden de 0,3 lotes en el SL, no obtendré valores de la hora cuando se abran dos órdenes de 0,1 lotes que compensen sus pérdidas.
Es decir, necesito que se abran 3 órdenes de 0,3 lotes en este caso, no una.
A veces, 3 órdenes de 0,3 lotes serán cerradas por un SL en un solo tick, a pesar de que sus correspondientes órdenes de 0,1 lotes fueron abiertas en diferentes ticks (pero a un solo precio).
En este caso, el programa guarda el valor correcto sólo para una última orden de 0,1 lotes.
Necesito que el programa guarde el valor de la hora de cada orden (0,1 lote) cerrada por SSL.
Aquí está mi código, que tenemos que modificar.
Gracias por su ayuda.
Este es un ejemplo de una situación en la que se cierran varias órdenes en un solo tick
Esta es una condición adicional. Una posición se cierra cuando el precio cruza la línea МА. A veces el precio se abre justo en la línea y abre y cierra una posición en cada tick. He solucionado el problema cerrando la posición antes de la siguiente vela.
Este problema debería resolverse comprobando si hay, o ha habido, una posición abierta y cerrada en esta misma barra.
De lo contrario, lo amontonarás todo. La función de señal debe enviar señales, mientras que la función de negociación debe comprobar ya la validez de la señal.
Hola. ¿Por qué los pares de divisas euro vs usdmuestran 149,16325 en lugar de 1,0616?