Fonctions utiles de KimIV - page 78

 
granit77 писал(а) >>

Autant de personnes qu'il y a d'opinions. Il est réconfortant de savoir que la mienne coïncide avec l'opinion de komposter sur le lien de Prival.

Une suggestion : dans votre cas, s'il y a deux magiks dans votre EA, vous pouvez utiliser le magik généré pour la paire et le TF et sa valeur négative.

Bonne idée.

   if( UpDn)
      Magic_№= GetMagic(StringConcatenate("Expert",Symbol()), TF);
   else
      Magic_№=- GetMagic(StringConcatenate("Expert",Symbol()), TF);
 
Avez-vous un script qui peut simuler l'ouverture des positions dans le testeur ? par exemple, le système de trading manuel, je mets les indicateurs requis sur le graphique et exécuter un Expert Advisor - pour faire fonctionner le testeur. un signal des indices formés et j'envoie le script sur le graphique, et il simule l'ouverture d'une transaction. et ainsi de suite pour chaque signal. et puis je regarde si la stratégie est rentable ou non.
 
berserker >> :
Savez-vous s'il existe un script qui peut simuler l'ouverture de positions dans le testeur. par exemple, le système de trading manuel, je mets sur le graphique les indicateurs nécessaires et exécuter n'importe quel Expert Advisor - pour faire fonctionner le testeur. un signal de indyuki formé et je lance le script sur le graphique, et il simule l'ouverture d'une transaction. et ainsi de suite pour chaque signal. et puis je regarde stratégie rentable ou non.

Voir Test de visualisation. Trading manuel. et test visuel de rentabilité des indicateurs et des signaux.

 
berserker >> :
Savez-vous s'il existe un script qui peut simuler l'ouverture de positions dans le testeur. par exemple, le système de trading manuel, je mets sur le graphique les indicateurs nécessaires et exécuter n'importe quel Expert Advisor - pour faire fonctionner le testeur. un signal de indyuki formé et je lance le script sur le graphique, et il simule l'ouverture d'une transaction. et ainsi de suite pour chaque signal. et puis je regarde stratégie rentable ou non.
https://forum.mql4.com/ru/20511
 
Je veux obtenir la valeur du prix haut du temps x(heures minutes) au temps y(heures minutes).au moment actuel je suis intéressé par la valeur de cette gamme, si elle est passée, et sinon, la précédente. Personne n'a de développements de ce type.
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);
  
}
J'ai essayé quelque chose, mais pour une raison quelconque, j'obtiens 0 dans la sortie. Et il cherche à la fois le haut et le bas.
 
zfs писал(а) >>
Je veux obtenir la valeur du prix élevé du temps x (heures minutes) au temps y (heures minutes). Personne n'a de développements de ce type. J'ai essayé quelque chose, mais pour une raison quelconque, j'obtiens 0 dans la sortie. Et il cherche à la fois le haut et le bas.

Avez-vous essayé les fonctions iHighest et iLowest ? Il suffit de traduire le temps requis en indices et vous obtiendrez le résultat escompté...

 
kharko >> :

Avez-vous essayé les fonctions iHighest et iLowest ? Il suffit de convertir le temps requis en indices et vous obtiendrez le résultat escompté...

Merci. Je vais l'essayer.

 
granit77 >> :

Autant de personnes qu'il y a d'opinions. C'est réconfortant que la mienne coïncide avec l'opinion de komposter sur le lien de Prival.

J'ai maintenant renoncé à utiliser la période graphique dans Mejic.

Parfois, je veux changer de TF pendant que l'Expert Advisor est en cours d'exécution, mais cette méthode de génération va immédiatement "lancer un autre EA".


Et au lieu de Period(), j'essaie d'utiliser extern TimeFrame, afin que l'EA fonctionne également sur n'importe quel graphique de période.

 

Encore une fois, un grand "Ahem...".

J'ai remarqué cette chose (pour moi) désagréable avec le temps le week-end dernier.

StrToTime("01:25")

En supposant que TOUTES les heures sont calculées par rapport à l'heure du serveur.

(ou sa dernière valeur connue) (sauf pour TimeLocal () bien sûr)

Cependant, ce n'est pas vrai et j'ai perdu beaucoup de temps à essayer de comprendre

les raisons d'un mauvais filtrage... :((( On vit et on apprend...


SZY : Une fonction intégrée qui calcule directement le prix à un moment donné aurait été utile.

J'y travaille actuellement de cette façon :

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

Donc vous n'avez pas à deviner. >> Vérifiez...

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