[¡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 312
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¿Puede alguien explicar cómo abrir una orden en cualquier momento de una barra y abrir la siguiente orden sólo en la siguiente barra?
Deberíamos recorrer la lista de pedidos. Si la hora de apertura de la siguiente orden es mayor o igual a la hora de apertura de la barra actual (Time[0]), debemos poner la bandera que prohíbe la apertura de órdenes en el par de divisas actual. En la siguiente vela, el bucle detectará que no existe tal orden y no colocará una prohibición, es decir, borrará la bandera que prohíbe la apertura de órdenes.
Hacemos un bucle con la lista de pedidos. Si la hora de apertura de la siguiente orden es mayor o igual que la hora de apertura de la barra actual (Time[0]), entonces se establece la bandera que prohíbe la apertura de órdenes en este par de divisas.
Muchas gracias.
Si el código sólo funciona en un par de divisas, entonces ponga una línea para cortar las órdenes de otros pares
Si el código sólo funciona con un par de divisas, establezca una línea para descartar las órdenes de otros pares
Puedes hacerlo.
Puedes hacerlo.
bool Times=true;
if (OrdersTotal()>0){
for(int g=OrdersTotal()-1; g>=0; g--){
datetime t;
OrderSelect(g,SELECT_BY_POS);
if (OrderMagicNumber()!=MagicNumber){continue;}
si (t<OrderOpenTime() || g==OrdersTotal()-1) t=OrderOpenTime();
if (t>=Time[0]) Times=false;}}
¿es esto correcto?
bool Times=true;
if (OrdersTotal()>0){
for(int g=Total de Pedidos()-1; g>=0; g--){
datetime t;
OrderSelect(g,SELECT_BY_POS);
if (OrderMagicNumber()!=MagicNumber){continuar;}
if (t<OrderOpenTime() || g==OrdersTotal()-1) t=OrderOpenTime();
if (t>=Time[0]) Times=false;}}
¿es esto correcto?
No es necesario declarar una variable dentro del bucle en cada iteración del mismo.
bool Times=true;
if (OrdersTotal()>0){
for(int g=OrdersTotal()-1; g>=0; g--){
datetime t;
OrderSelect(g,SELECT_BY_POS);
if (OrderMagicNumber()!=MagicNumber){continue;}
si (t<OrderOpenTime() || g==OrdersTotal()-1) t=OrderOpenTime();
if (t>=Time[0]) Times=false;}}
¿es esto correcto?
bool Times=true;
datetime t=Time[1];
if (OrdersTotal()>0){
for(int g=OrdersTotal()-1; g>=0; g--){
OrderSelect(g,SELECT_BY_POS);
if (OrderMagicNumber()!=MagicNumber){continue;}
if (t<OrderOpenTime()) t=OrderOpenTime();
if (t>=Time[0]) Times=false;}}
¿es esto correcto?
No es necesario declarar una variable dentro del bucle en cada iteración.