Nützliche Funktionen von KimIV - Seite 78

 
granit77 писал(а) >>

So viele Menschen, wie es Meinungen gibt. Es ist beruhigend zu wissen, dass sich meine Meinung mit der von Komposter auf Prival's Link deckt.

Ein Vorschlag: Wenn es in Ihrem Fall zwei Magics in Ihrem EA gibt, können Sie den für das Paar und den TF generierten Magic und seinen negativen Wert verwenden.

Eine gute Idee.

   if( UpDn)
      Magic_№= GetMagic(StringConcatenate("Expert",Symbol()), TF);
   else
      Magic_№=- GetMagic(StringConcatenate("Expert",Symbol()), TF);
 
Haben Sie ein Skript, das die Eröffnung von Positionen in der Tester simulieren kann? Zum Beispiel das System der manuellen Handel, habe ich die erforderlichen Indikatoren auf dem Chart und führen Sie einen Expert Advisor - um den Tester zu arbeiten. ein Signal von Indizes gebildet und ich sende das Skript auf dem Chart, und es simuliert die Eröffnung eines Geschäfts. und so weiter für jedes Signal. und dann sehe ich, ob die Strategie profitabel ist oder nicht.
 
berserker >> :
Wissen Sie, ob es ein Skript, das die Eröffnung von Positionen in der Tester simulieren kann. Zum Beispiel das System der manuellen Handel, habe ich auf dem Chart die notwendigen Indikatoren und laufen alle Expert Advisor - um den Tester zu arbeiten. ein Signal von indyuki gebildet und ich werfe das Skript auf dem Chart, und es simuliert die Eröffnung eines Geschäfts. und so weiter für jedes Signal. und dann sehe ich profitable Strategie oder nicht.

Siehe Visualisierungstests. Manueller Handel und visuelle Rentabilitätsprüfung von Indikatoren und Signalen.

 
berserker >> :
Wissen Sie, ob es ein Skript, das die Eröffnung von Positionen in der Tester simulieren kann. Zum Beispiel das System der manuellen Handel, habe ich auf dem Diagramm die notwendigen Indikatoren und laufen alle Berater - so dass der Tester gearbeitet. so gebildet Signal von indyuki und ich werfe das Skript auf dem Diagramm, und es simuliert die Eröffnung eines Deals. und so weiter für jedes Signal. und dann sehe ich profitable Strategie oder nicht.
https://forum.mql4.com/ru/20511
 
Ich möchte den Wert des Höchstkurses vom Zeitpunkt x (Stunden-Minuten) bis zum Zeitpunkt y (Stunden-Minuten) abfragen, wobei mich zum aktuellen Zeitpunkt der Wert dieses Bereichs interessiert, wenn er überschritten wurde, und wenn nicht, der vorherige. Gibt es denn keine Entwicklungen dieser Art?
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);
  
}
Ich habe etwas ausprobiert, aber aus irgendeinem Grund erhalte ich 0 in der Ausgabe. Und es sucht sowohl nach dem Hoch als auch nach dem Tief.
 
zfs писал(а) >>
Ich möchte den Wert des Höchstpreises vom Zeitpunkt x (Stunden Minute) bis zum Zeitpunkt y (Stunden Minute) ermitteln. Gibt es denn keine Entwicklungen dieser Art? Ich habe etwas ausprobiert, aber aus irgendeinem Grund erhalte ich 0 in der Ausgabe. Und es sucht sowohl nach dem Hoch als auch nach dem Tief.

Haben Sie die Funktionen iHighest und iLowest ausprobiert? Sie müssen nur die benötigte Zeit in Indizes umrechnen und Sie erhalten das gewünschte Ergebnis...

 
kharko >> :

Haben Sie die Funktionen iHighest und iLowest ausprobiert? Alles, was Sie tun müssen, ist, die benötigte Zeit in Indizes umzuwandeln, und Sie werden das gewünschte Ergebnis erhalten...

Ich danke Ihnen. Ich werde es versuchen.

 
granit77 >> :

So viele Menschen, wie es Meinungen gibt. Es ist herzerwärmend, dass meine Meinung mit der von Komposter über den Link von Prival übereinstimmt.

Ich habe es jetzt aufgegeben, die Periode in mejic zu verwenden.

Manchmal möchte ich die TF wechseln, während der Expert Advisor läuft, aber diese Methode der Generierung wird sofort "einen anderen EA starten".


Und anstelle von Period() versuche ich, extern TimeFrame zu verwenden, so dass der EA auf jedem Periodendiagramm gleichermaßen funktioniert.

 

Noch einmal ein großes "Ähem...".

Diese (für mich) unangenehme Sache mit der Uhrzeit ist mir am Wochenende aufgefallen.

StrToTime("01:25")

Unter der Annahme, dass ALLE Zeiten relativ zur Serverzeit berechnet werden

(oder den letzten bekannten Wert) (außer TimeLocal () natürlich)

Das ist jedoch nicht wahr, und ich habe viel Zeit damit verschwendet, herauszufinden, wie man

Gründe für falsche Filterung... :((( Man lebt und lernt...


SZY: Eine eingebaute Funktion, die direkt den Preis zu einem bestimmten Zeitpunkt berechnet, wäre nützlich gewesen.

Ich arbeite derzeit auf diese Weise daran:

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

Sie brauchen also nicht zu raten. >> Prüfen...

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