[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 610

 
Dimka-novitsek:

¡Buenas tardes! Por favor, ayúdenme con la modificación de la orden, es decir, el ciclo de selección de la orden para su condición. Primero encuentro una orden activada en TakeProfit, es una orden específica con el ticket tacket. Así, el bucle falla aproximadamente una de cada diez veces, lo que se indica por la diferencia de líneas verdes y azules en el probador. Y la visualización - el stop loss a veces no se mueve.

En general, ¡ayuda, por favor!

Condición

if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
1 .Выполняется, если в истории термина нет ордеров, и продолжать цикл в таком случае не имеет смысла.
2. Чтобы найти ордер, сработавший именно по тейкпрофиту надо сравнить значение ТП со значением цены закрытия ордера
3.  Если вам нужен не любой ордер,закрытый по ТП, надо найти последний.
4. Еси в if(nahodka){if (OrderSelect(tucket,SELECT_BY_TICKET)) используется значение tucket, Выбранное в предыдущем цикле, ордер нельзя модифицировать, потому, что он уже закрыт. 
 

1.Se ejecuta si no hay órdenes en el historial del terminal y no tiene sentido continuar el ciclo en ese caso.

¡¡¡Gracias!!! Ahí es donde va a caer todo. ¡¡¡Ese es el problema!!! ¿Cómo se modificaba a sí mismo de vez en cuando?

2. Para encontrar una orden activada exactamente en el Take Profit, debemos comparar el valor del TP con el precio de cierre de la orden

Primero selecciono un determinado orden en el bucle del historial y luego parece que lo comparo así.

 
Para traducir la acción en un comentario, en lugar de seguir pegando el código, es necesario al final de la línea ;?
 

¡if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) continue; En mi bucle, es así - si no hay órdenes en el historial de la terminal, y no tiene sentido continuar el bucle en ese caso, entonces ¡continúa!

Así que es así, ¿no?

Vaya, ¡¡¡un acertijo!!!

 
Al final de la cadena //comentario-cualquier cosa más allá de las dos barras inclinadas o lo que sea que el compilador no lea.
 
Dimka-novitsek:

1.Se ejecuta si no hay órdenes en el historial del terminal y no tiene sentido continuar el ciclo en ese caso.

¡¡¡Gracias!!! Ahí es donde va a caer todo. ¡¡¡Ese es el problema!!! ¿Cómo se modificaba a sí mismo de vez en cuando?

2. Para encontrar una orden activada exactamente en el Take Profit, debemos comparar el valor del TP con el precio de cierre de la orden

Primero selecciono un determinado orden en el bucle del historial y luego parece que lo comparo así.


Si se trata de un pedido específico, es decir, si se conoce el número de billete, no es necesario un ciclo, basta con seleccionarOrderSelect(ticket,SELECT_BY_TICKET, MODE_HISTORY)
 
¡¡¡Gracias!!! Lo intentaré.
 
Dimka-novitsek:

¡if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue; En mi bucle es así - si no hay órdenes en el historial de términos, y no tiene sentido continuar el bucle en ese caso, ¡entonces continue!

Así que es así, ¿no?

¡¡¡Wow, acertijo!!!


Entonces,break oreturn.continue; -- el operador de continuación del ciclo.
 
ilunga:

Entonces, ¿por qué comparas lo mismo un montón de veces seguidas?

¿Cómo crees que se debe comparar?
 
Dimka-novitsek:

if(Stoch_1>Stoch_2) { flag1=1 ; Print (flag1,flag2,flag3,flag4); }


if(Stoch_1<Stoch_2 && flag1==1) flag2=1 ; Print (flag1,flag2,flag3,flag4); }

if ((Stoch_1>Stoch_2) && flag1==1 && flag2==1) {flag3=1; Print (flag1,flag2,flag3,flag4);PlaySound("alert.wav");}


if(Stoch_1<Stoch_2 && flag1==1 && flag2==1 && flag3==1) flag4=1;
{Imprimir (flag1,flag2,flag3,flag4);}
if(Stoch_1>Stoch_2 && flag1==1 && flag2==1 && flag3==1 && flag4==1)
{OrderSend (Symbol( ), OP_SELL, 0.01 ,Bid, 0, 0, 0, NULL, 450, 0, CLR_NONE);
Print ("OUT");}



flag1=0;
flag2=0;
flag3=0;
flag4=0;

Entendiendo que vas a aprender y por aprender escribes algo... Por lo menos, he dispuesto sus paréntesis de tal manera que juegan un papel, en mi opinión.


y a pesar de que su código dio 24 errores en el compilador!!! todavía gracias incluso por la ayuda descuidada.... por la idea... (ahora funciona - aunque en principio intenté hacerlo así, pero la puntuación era un problema)
Razón de la queja: