Aquí está mi función de modificar la orden pendiente. Al modificar, establezco un nuevo precio y un nuevo stoploss. La función funciona parcialmente, pero por alguna razón el probador está recibiendo errores 1.
¿Está bien escrita mi función?
void MovingPendingOrders(/*int ticket, double newPrice*/)
{
double priceS = NormalizeDouble((Low[1] - i_thresholdFromInput*pt),Digits); // Новая цена открытия для OP_SELLSTOPdouble priceB = NormalizeDouble((High[1] + i_thresholdFromBasedSL*pt),Digits); // Новая цена открытия для OP_BUYSTOPbool b_mod, s_mod;
int total = OrdersTotal() - 1;
int s_ticket, b_ticket;
for(int i=total; i>=0; i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if(OrderMagicNumber() != i_myMagic) continue;
{
if(OrderType() == OP_BUYSTOP)
{
b_ticket = OrderTicket();
b_mod = true;
}
if(OrderType() == OP_SELLSTOP)
{
s_ticket = OrderTicket();
s_mod = true;
}
}
}
if(IsTradeAllowed())
{
if((b_mod) && (priceB > Ask)) OrderModify(b_ticket,priceB,priceS,0,0,Brown);
if((s_mod) && (priceS < Bid)) OrderModify(s_ticket,priceS,priceB,0,0,Brown);
}
Print("MovingPendingOrders переоткрыл ордер по новой цене");
}
Aquí está mi función de modificar la orden pendiente. Al modificar, establezco un nuevo precio y un nuevo stoploss. La función funciona parcialmente, pero por alguna razón el probador está recibiendo errores 1.
silatyt: ...y en cada tic se modifica una y otra vez. ¡?!
No sabía dónde ponerlo, desordené la lógica del Asesor Experto por inexperiencia. Para comprobar el funcionamiento, lo puse en el inicio... Sí, fue en cada tic, por eso el error. Luego, tras la función que define una nueva barra, la puse y corregí el código como me dijoTheXpert y todo salió como debía.
Buenas tardes. ¿Podría decirme cómo debería ser un trozo de código de EA, que es responsable de lo siguiente?
1. Recorre los parámetros uno a uno (en un rango determinado, por ejemplo de 10 a 20) del indicador, en el que se basa el EA, hasta que no se cumpla la condición de abrir la operación.
2. Si la condición después de la búsqueda no se cumple - esperar 5 minutos.
Buenas tardes. ¿Sabes si es posible enviar la ejecución del código de la línea 35 a la línea 18 (líneas por ejemplo) con las herramientas estándar de mql4. Una especie de salto en el código.
tpg_k156: Buenas tardes. ¿Sabes si es posible enviar la ejecución del código de la línea 35 a la línea 18 con las herramientas estándar de mql4 (líneas por ejemplo). Una especie de salto en el código.
Aquí está mi función de modificar la orden pendiente. Al modificar, establezco un nuevo precio y un nuevo stoploss. La función funciona parcialmente, pero por alguna razón el probador está recibiendo errores 1.
¿Está bien escrita mi función?
¿Está bien escrita mi función?
Aquí está mi función de modificar la orden pendiente. Al modificar, establezco un nuevo precio y un nuevo stoploss. La función funciona parcialmente, pero por alguna razón el probador está recibiendo errores 1.
¿Está mi función escrita correctamente?
Por favor, aconseje cómo hacer que un EA emita un comentario en la parte superior de un marco que cubre el gráfico para que sea más fácil de leer.
No sé cómo hacerlo ahora:
Debería ser así:
...y en cada tic se modifica una y otra vez. ¡?!
No sabía dónde ponerlo, desordené la lógica del Asesor Experto por inexperiencia. Para comprobar el funcionamiento, lo puse en el inicio... Sí, fue en cada tic, por eso el error. Luego, tras la función que define una nueva barra, la puse y corregí el código como me dijoTheXpert y todo salió como debía.
Buenas tardes. ¿Podría decirme cómo debería ser un trozo de código de EA, que es responsable de lo siguiente?
1. Recorre los parámetros uno a uno (en un rango determinado, por ejemplo de 10 a 20) del indicador, en el que se basa el EA, hasta que no se cumpla la condición de abrir la operación.
2. Si la condición después de la búsqueda no se cumple - esperar 5 minutos.
Buenas tardes. ¿Sabes si es posible enviar la ejecución del código de la línea 35 a la línea 18 con las herramientas estándar de mql4 (líneas por ejemplo). Una especie de salto en el código.
Operadores switch / if - else
y funciones
operadores switch / if - else
y funciones
¿es posible forzar que el mismo cuerpo de la función se ejecute de nuevo? como
¿es posible forzar que el mismo cuerpo de la función se ejecute de nuevo? como
Sí. Se llama recursión.