[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 298

 
Croaker:

Grüße an alle Kenner und einfach nur erfahrene Leser dieses Threads! Und einfach jeder, der mir helfen kann=)

Was ist der einfachste und "richtige" Weg, um Periodizität zu erreichen? Vereinfacht gesagt, möchte ich alle 15 Minuten automatisch eine Aktion durchführen.

In meinem Fall wird eine Datei mit einigen Statistiken auf der Festplatte gespeichert. Jetzt habe ich ein Skript, das genau das tut, was ich will, und es besteht buchstäblich aus 20 Zeilen Code. Wie bringe ich also diese 20 Zeilen dazu, sich in bestimmten Abständen zu wiederholen? So wie ich es verstanden habe, gibt es in MQL keine Timer... Muss ich einen EA verwenden, der bei jedem Tick irgendeine Art von Prüfung durchführt...?

Ich hoffe auf Ihre Hilfe und Tipps)

Prüfen Sie zum Beispiel, ob ein neuer Balken im 15-Minuten-Zeitrahmen vorliegt.

Oder merken Sie sich die Startzeit und prüfen Sie die aktuelle Zeit.

https://docs.mql4.com/ru/dateandtime/TimeCurrent

et=timecurrent();

if (et-bt>15*60) {bt=timecurrent(); Daten laden}

 
Croaker:

Ich möchte, dass eine bestimmte Aktion automatisch alle 15 Minuten ausgeführt wird.

datetime save_time;
int tf=15;

start()===============================================

if(save_time!=iTime(0,tf, iBarShift(0,tf,Time[0]))){
        save_time =iTime(0,tf, iBarShift(0,tf,Time[0]));
        Alert("Новая свеча ТФ=" tf);
     }
 
pvm117:

Können die geschätzten Gurus nicht helfen?

pvm117 20.10.2011 18:26

Guten Tag!

Als erste Erfahrung habe ich beschlossen, den folgenden Algorithmus zu implementieren: Ich kann eine starke Marktbewegung nach oben oder unten in einiger Zeit erwarten, nachdem die Bollinger-Linien in einem engen Korridor zusammenlaufen. In meinem Expert Advisor analysiere ich den Zustand der Bollinger-Linien, und wenn sie sich sehr stark annähern(Delta Pips), geben wir einen schwebenden Verkaufsauftrag in die untere Richtung (bei stepOpen Pips unterhalb der unteren Linie), in der Hoffnung, dass der Markt plötzlich in diese Richtung geht. Wenn sich der Markt in eine andere Richtung entwickelt, löschen wir diesen Auftrag einfach.

Der Algorithmus arbeitet instabil, öffnet manchmal zwei Aufträge in kurzen Abständen, gibt ständig die Fehler OrderSend Error 130 und OrderSend Error 138 aus, und das Entfernen von offenen Aufträgen, falls sich der Markt in eine andere Richtung bewegt, funktioniert überhaupt nicht.

Bitte, beraten Sie uns! Ich danke Ihnen!

Für einen Tester, der nicht auf den 130-Fehler achtet, ist es einfach nicht möglich, eine Stop-Order zu diesem Preis zu platzieren.

Als nächstes sind Sie an der Reihe.

Dateien:
temp_2.mq4  21 kb
 

Leute, ich bin neu in diesem Bereich, helft mir bitte einen Fehler zu finden.

Ich habe versucht, einen Indikator zu schreiben, der die Anzahl der steigenden und fallenden Kerzen für eine bestimmte Zeitspanne der Geschichte berechnet. Ich habe versucht, einen Indikator dafür zu schreiben, aber er wird nicht angezeigt, wenn ich ihn in das Indikatorfenster einfüge. Was ist los? Hier ist mein Code. Vielen Dank im Voraus.

#property indicator_separate_window
#Eigenschaft indicator_buffers 2
#property indicator_color1 Grün
#Eigenschaft indicator_color2 Rot

int Wh;
int Bl;
int a[];b[];
extern int Geschichte=500;
//+------------------------------------------------------------------+
int init(){
SetIndexPuffer(0,a);
SetIndexPuffer(1,b);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
return(0);}
//+------------------------------------------------------------------+
int deinit(){return(0);}
//+------------------------------------------------------------------+
int start()
{
int CountedBars=IndicatorCounted();
int i=Bars-CountedBars-1;
wenn (i>Geschichte-1) i=Geschichte-1;
while(i>=0)
{
wenn (Schließen[i]>Öffnen[i])Wh++;
if (Close[i]<Open[i])Bl++;
a[i]=Wh;
b[i]=Bl;
i--;
}
return(0);}

 
Ellie:

Leute, ich bin neu in diesem Bereich, helft mir bitte einen Fehler zu finden.

Ich habe versucht, einen Indikator zu schreiben, der die Anzahl der steigenden und fallenden Kerzen für eine bestimmte Zeitspanne der Geschichte berechnet. Ich habe versucht, einen Indikator dafür zu schreiben, aber er wird nicht angezeigt, wenn ich ihn in das Indikatorfenster einfüge. Was ist los? Hier ist mein Code. Vielen Dank im Voraus.



Ersetzen durch

int a[],b[];

Gehe zu

double a[],b[];
 
Ooh, danke, es funktioniert. Ich verstehe einfach nicht, warum das so sein muss? Die Anzahl der Kerzen ist eine ganze Zahl. Könnten Sie das bitte kurz und bündig erklären?
 
Ellie:
Ooh, danke, es funktioniert. Ich verstehe einfach nicht, warum das so sein muss? Die Anzahl der Kerzen ist eine ganze Zahl. Könnten Sie das bitte kurz und bündig erklären?


Achten Sie auf die Art der an die Funktion SetIndexBuffer() übergebenen Parameter.

 
Ich danke Ihnen vielmals. Ich meine, ich habe gestern achtmal über diese Funktion gelesen, aber sie ist mir nicht zu Ohren gekommen((((((((
 
Roll:
Korrigieren Sie es noch etwas:
wäre es besser...

Ja, danke, ich habe es schon bemerkt)))
 
Ellie:
Ja, danke, ich habe es schon bemerkt)))
Es gibt Frauen in russischen Dörfern. Und das ist eine gute Sache.
Grund der Beschwerde: