[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 1095
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
No escribí de inmediato un EA sin indicadores, no hay indicadores, sólo órdenes de compra y venta y así sucesivamente - y luego los períodos que han cambiado en el probador y el resultado final sigue siendo nada no entiendo
No se puede decir nada sin el propio Asesor Experto. Sólo estoy adivinando.
¿Qué debo hacer con Ilan6 para que empiece a comerciar? ¿Cuánto dinero empieza a funcionar y si funciona con un céntimo?
No escribí de inmediato un EA sin indicadores, no hay indicadores, sólo órdenes de compra y venta y así sucesivamente - y luego los períodos que han cambiado en el probador y el resultado final sigue siendo nada no entiendo
Sí, deberíamos mirar el propio código. ¿No tiene algún tipo de estrategia, en base a cuyos cálculos abre y cierra órdenes?
¿Puede decirme dónde está el error? Si hay una orden de mercado para vender nuestro instrumento financiero, entonces la cerramos y si no hay una orden de compra, entonces abrimos una orden de compra. Aquí todo es normal con el cierre, pero no los abre una vez, sino con cada tic.
//--------------------------------------------------------------------------------------------
extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
int sells=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
sells++;
}
}
if (sells==0)
{
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
//--------------------------------------------------------------------------------------------
¿Puede decirme dónde está el error? Si hay una orden de mercado para vender nuestro instrumento financiero, entonces la cerramos y si no hay una orden de compra, entonces abrimos una orden de compra. Aquí todo es normal con el cierre, pero no los abre una vez sino con cada tic.
//--------------------------------------------------------------------------------------------
extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
int sells=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
sells++;
}
}
if (sells==0)
{
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
//--------------------------------------------------------------------------------------------
¿O es mejor hacerlo? Si no hay órdenes de venta, no abriremos una orden de compra.
extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------
Regla para la ejecución de la sentencia for
Dígame: ha llegado un tick, la condición del operador for es verdadera, el control se pasa más allá - todo esto sucederá durante un tick, es decir, todos estos operadores se ejecutarán durante 1 tick o no.
extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------
¿O exactamente qué operadores se ejecutarán durante este tic? ¿Todas las anteriores o cuáles se ejecutarán en el siguiente tick? Explica...
Regla de ejecución de la sentencia for
Dígame: ha llegado un tick, la condición del operador for es verdadera, el control se pasa más allá - todo esto sucederá durante un tick, es decir, todos estos operadores se ejecutarán durante 1 tick o no.
¿O exactamente qué operadores se ejecutarán durante este tic? ¿Todas las anteriores o cuáles se ejecutarán en el siguiente tick? Explica...
La función start() se ejecuta cuando llega el primer tick. Si llegan otros ticks mientras se ejecuta la función, se saltarán.
La función de inicio se ejecutará completamente según su lógica
Regla de ejecución de la sentencia for
Dígame: ha llegado un tick, la condición del operador for es verdadera, el control se pasa más allá - todo esto sucederá durante un tick, es decir, todos estos operadores se ejecutarán durante 1 tick o no.
extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------
¿O exactamente qué operadores se ejecutarán durante este tic? ¿Todas las anteriores o cuáles se ejecutarán en el siguiente tick? Explica...
Lo tengo resuelto. Todos los operadores se ejecutarán si la condición se agota.