Funciones útiles de KimIV - página 78

 
granit77 писал(а) >>

Tanta gente como opiniones hay. Es reconfortante saber que la mía coincidió con la opinión de komposter en el enlace de Prival.

Como sugerencia: en tu caso, si hay dos magiks en tu EA, puedes utilizar el magik generado para el par y el TF y su valor negativo.

Buena idea.

   if( UpDn)
      Magic_№= GetMagic(StringConcatenate("Expert",Symbol()), TF);
   else
      Magic_№=- GetMagic(StringConcatenate("Expert",Symbol()), TF);
 
¿Tiene algún script que pueda simular la apertura de posiciones en el probador? Por ejemplo, el sistema de trading manual, pongo los indicadores necesarios en el gráfico y ejecuto un Expert Advisor - para que el probador funcione. una señal de índices formados y envío el script en el gráfico, y simula la apertura de una posición. y así para cada señal. y luego miro si la estrategia es rentable o no.
 
berserker >> :
Sabe usted si hay alguna secuencia de comandos que puede simular la apertura de posiciones en el probador. Por ejemplo, el sistema de comercio manual, pongo en el gráfico de los indicadores necesarios y ejecutar cualquier Asesor Experto - para hacer que el probador de trabajo. una señal de indyuki formó y me tiro la secuencia de comandos en el gráfico, y se simula la apertura de un acuerdo. y así sucesivamente para cada señal. y luego me veo estrategia rentable o no.

Véase la prueba de visualización. Trading manual. y pruebas de rentabilidad visual de indicadores y señales.

 
berserker >> :
Sabe usted si hay alguna secuencia de comandos que puede simular la apertura de posiciones en el probador. Por ejemplo, el sistema de comercio manual, pongo en el gráfico de los indicadores necesarios y ejecutar cualquier Asesor Experto - para hacer que el probador de trabajo. una señal de indyuki formó y me tiro la secuencia de comandos en el gráfico, y se simula la apertura de un acuerdo. y así sucesivamente para cada señal. y luego me veo estrategia rentable o no.
https://forum.mql4.com/ru/20511
 
Quiero obtener el valor del precio alto desde el tiempo x(horas minutos) hasta el tiempo y(horas minutos).En el momento actual me interesa el valor de este rango, si ha pasado, y si no, el anterior. ¿No hay nadie que tenga alguna novedad de este tipo?
double HourlyHigh(string _smb,int StHour,int StMin,int EndHour,int EndMin)
{
 int _hour,_minute;
 double max;
 max=0;
 _hour=TimeHour(iTime(_smb,1,0)); 
 if (_hour>= EndHour+1)
  for (int i=2880; i>=0; i--)
   if (TimeHour(iTime(_smb,1, i))>= StHour&&TimeHour(iTime(_smb,1, i))<= EndHour&& max<iHigh(_smb,1, i)&&TimeDay(iTime(_smb,1, i))==TimeDay(iTime(_smb,1,0)))
       max=iHigh(_smb,1, i);//&&TimeMinute(iTime(_smb,1,i))>=StMin&&TimeMinute(iTime(_smb,1,i))<=EndMin
 else
    for ( i=2880; i>=0; i--)
   if (TimeHour(iTime(_smb,1, i))>= StHour&&TimeHour(iTime(_smb,1, i))<= EndHour&&TimeDay(iTime(_smb,1, i))==TimeDay(iTime(_smb,1, i-1440)))
       max=iHigh(_smb,1, i);
   return ( max);     
}
double HourlyLow(string _smb,int StHour,int StMin,int EndHour,int EndMin)
{
 int _hour,_minute;
 double min;
 min=9999.0;
 _hour=TimeHour(iTime(_smb,1,0)); 
 if (_hour>= EndHour+1)
  for (int i=2880; i>=0; i--)
   if (TimeHour(iTime(_smb,1, i))>= StHour&&TimeHour(iTime(_smb,1, i))<= EndHour&&TimeDay(iTime(_smb,1, i))==TimeDay(iTime(_smb,1,0)))
       min=iLow(_smb,1, i);
 else
    for ( i=2880; i>=0; i--)
   if (TimeHour(iTime(_smb,1, i))>= StHour&&TimeHour(iTime(_smb,1, i))<= EndHour&& min>iLow(_smb,1, i)&&TimeDay(iTime(_smb,1, i))==TimeDay(iTime(_smb,1, i-1440)))
       min=iLow(_smb,1, i);
  return ( min);
  
}
He intentado algo, pero por alguna razón obtengo 0 en la salida. Y busca tanto la alta como la baja.
 
zfs писал(а) >>
Quiero obtener el valor del precio alto desde el momento x(horas minutos) hasta el momento y(horas minutos). ¿No hay nadie que tenga alguna novedad de este tipo? He intentado algo, pero por alguna razón obtengo 0 en la salida. Y busca tanto la alta como la baja.

¿Has probado las funciones iHighest y iLowest? Todo lo que tienes que hacer es traducir el tiempo requerido en índices y obtendrás el resultado que buscas...

 
kharko >> :

¿Has probado las funciones iHighest y iLowest? Todo lo que tienes que hacer es convertir el tiempo requerido en índices y obtendrás el resultado que buscas...

Gracias. Lo probaré.

 
granit77 >> :

Tanta gente como opiniones hay. Es reconfortante que la mía haya coincidido con la opinión de komposter en el enlace de Prival.

Ahora he renunciado a utilizar el período de la carta en mejic.

A veces quiero cambiar el TF mientras se está ejecutando el Asesor Experto, pero este método de generación inmediatamente "iniciará otro EA".


Y en lugar de Period() trato de usar extern TimeFrame, para que el EA funcione igualmente en cualquier gráfico de periodo.

 

Una vez más, un gran "Ejem...".

Me di cuenta de esta (para mí) cosa desagradable con el tiempo en el fin de semana.

StrToTime("01:25")

Asumiendo que TODOS los tiempos se calculan en relación a la hora del servidor

(o su último valor conocido) (bueno, excepto TimeLocal () por supuesto )

Sin embargo, esto no es cierto y he perdido mucho tiempo tratando de averiguar

razones para un filtrado erróneo... :((( Se vive y se aprende...


SZY: Habría sido útil una función integrada que calculara directamente el precio en un momento dado.

Actualmente estoy trabajando en ello de esta manera:

double shvr=iLow(Symbol(),15,iBarShift(Symbol(),15,StrToTime("01:25")));
 
kombat писал(а) >>

Así que no tienes que adivinar. >> Comprueba...

Print(TimeToStr(StrToTime("01:25"), TIME_DATE| TIME_MINUTES));