Preguntas de un "tonto" - página 147

 
alph:

Si el precio cierra por debajo de la media móvil y el Momentum está por debajo de la media, abra una operación de venta. En una operación de compra, es al revés.

Resulta que si la condición no se cumple, no es necesario actuar. Si es así, entonces en la última línea de la función escriba return(false) y vea si satisface su táctica paso a paso.
 
Yedelkin:
Entonces, si no se cumple la condición, ¿no hay que hacer nada? Si es así, entonces en la última línea de la función escribe return(false) y comprueba si satisface tu táctica paso a paso.
¿Es en el void OnTick() ?
 
alph:
¿Es en el void OnTick() ?

Ya era hora de que el comercio se hiciera realidad.

Pero personalmente me confunde el resultado no retornable, que puede convertirse en la forma deseada antes o después.

Lo que me confunde es esto

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timeOntrade;
 
alph:
¿Esto es en void OnTick() ?

Aquí mismo:

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer(timeOntrade);
   if(timeOntrade.hour!=TradeHour) return(false);
   timeOntrade.hour= 0;
   timeOntrade.min = 0;
   timeOntrade.sec = 1;
   if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16) return(true);
   return(false);
   }

Pruebe a poner falso en la última línea y vea si este enfoque es coherente con la táctica que ha elegido. Es decir, "desplazar" el trabajo del Asesor Experto teniendo en cuenta este cambio.

 
Interesting:
Me refería a timeOntrade aparentemente.
En timontrade sólo falso al final no dará el resultado deseado, pero en mi variante que realmente se abre ofertas por el reloj, probado. Mi versión del código con el reloj de esta forma la conseguí en algún lugar de este foro, funciona después de atornillarlo. Sólo los minutos que logré atornillar a través de timontrade dos. Estoy seguro de que el código completo debería ser un tercio más corto al menos.
 
alph:
En timeOntrade sólo falso al final no dará el resultado deseado, pero en mi variante abre operaciones por la hora es real, probado.
¿Qué ocurre si timeOntrade.hour = 5?
 
Interesting:
¿Qué ocurre si timeOntrade.hour = 5?

El acuerdo ciertamente no se hará, porque en...

//Base para el cambio a Open

MqlRates rt[1];
if(CopyRates(Symbol(),MyTframe,0,1,rt)<0) return;
if(rt[0].tick_volumen>1) return;

if(!PositionSelect(_Symbol)&& (timeOntrade(4) || ((timeOntrade(15) || timeOntrade(16))&& timeOntrade2(0)))) Open();//

...enviar para abrir sólo a la hora especificada

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура исторических данных
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура исторических данных
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура исторических данных - Документация по MQL5
 
alph:
En timontrade, es exactamente falso al final que no producirá el resultado deseado...
Pues mira tú mismo tu código. La condición if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16) es inútil en su forma actual. Porque no importa el resultado que produzca, su función bool timeOntrade() siempre devolverá true.
 

alph, a esto se refiere Yedelkin.

Estas variantes de la función son idénticas en nuestra mente

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer(timeOntrade);
   if(timeOntrade.hour!=TradeHour) return(false);
   timeOntrade.hour= 0;
   timeOntrade.min = 0;
   timeOntrade.sec = 1;
   if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16) return(true);
   return(true);
   }

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer(timeOntrade);
   if(timeOntrade.hour!=TradeHour) return(false);
   timeOntrade.hour= 0;
   timeOntrade.min = 0;
   timeOntrade.sec = 1;
   return(true);
   }
 
Interesting:

Por cierto, en esta variante el resultado del probador por ganancia es pequeño, pero el ratio me parece bueno.

Ahora estoy probando en marcos temporales más grandes sin referencia temporal, tal vez el resultado sea mejor.

Razón de la queja: