Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 348

 
Link_x:
Creo que la falta de comprensión de las funciones que se encuentran en los indicadores técnicos. Si no lo entiendo, entonces debería entenderlo, a través del uso de la información que se encuentra "al otro lado" de los enlaces que me pasan de ti, escribiendo y enviando a través de la red de Internet.
"¡Aprende, aprende y vuelve a aprender!" - Me encanta esa frase. )))

Abre el CCI en el MetaEditor, por ejemplo, y pon todo lo que no entiendas en el libro de referencias (haz clic en una función o expresión poco clara y pulsa F1). De este modo, el aprendizaje será mucho más divertido.
 

extern int MartinStep = 2;
extern double LOT = 0.01;


double GetLot(){

int time = 0;double profit = 0; double lots = 0; double Lot = 0;
for(int i = OrdersHistoryTotal()-1;i>=0;i--){
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){
if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic){
if(time<OrderCloseTime()){
time=OrderCloseTime();
profit=OrderProfit();
lots = OrderLots();
}
}
}
}


if(profit == 0 &&time == 0)
{
Lot = LOT;
}
if(profit >= 0)
{
Lot = LOT;
}
if(profit < 0 )
{
Lot = NormalizeDouble (lots*MartinStep,2);
}

return(Lot);
}
Por favor, ayude a corregir los errores de funcionamiento. El EA abre varias órdenes correctamente, y luego el registro muestra un error "cantidad de lotes no válida". No puedo entender lo que está mal.
 
Trader7777:


lots = OrderLots();

Lot = NormalizeDouble (lots*MartinStep,2);

Por favor, ayude a corregir los errores de funcionamiento. El EA abre varias órdenes correctamente, y luego el registro muestra un error "cantidad de lotes no válida". No puedo entender lo que está mal.

O bien nunca he llegado al operador lotes = OrderLots(); y los lotes siguen siendo =0. O los lotes*MartinStep excedieron el tamaño máximo de lote permitido.
 

Lo he resuelto, el error está aquí

if(profit >= 0)


Debería haber puesto un signo de igualdad, porque después de una orden que cerraba a 0, el EA no sabía qué hacer)
 

Hola a todos. ¿Pueden decirme cómo implementar la reinicialización de EA al final del día? Pues bien, en init() hay algunas acciones que deben repetirse en un momento determinado. No quiero reescribirlos en start(). Me interesa más la posibilidad teórica de reiniciar el EA. Gracias de antemano.

 
Pyro:

Hola a todos. ¿Pueden decirme cómo implementar la reinicialización de EA al final del día? Pues bien, en init() hay algunas acciones que deben repetirse en un momento determinado. No quiero reescribirlos en start(). Me interesa más la posibilidad teórica de reiniciar el EA. Gracias de antemano.

¿Has probado a llamar a init() en un momento determinado?
 
Sí, no se me había ocurrido:( ¡¡¡Gracias!!!
 
¿Podrías decirme si las banderas y las variables estáticas se resetean o permanecen en la memoria del EA al reiniciarlo (quitarlo del gráfico y volverlo a poner)?
 
Forexman77:
¿Podrías decirme si las banderas y las variables estáticas se resetean o permanecen en la memoria del EA al reiniciarlo (quitarlo del gráfico y volverlo a poner)?

Durante la inicialización todo se restablece, excepto las variables globales
 
Pyro:

Todo se restablece durante la inicialización, excepto las variables globales
Y aquí hay que aclarar que GV son variables terminales, no variables EA.