[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 359

 
sergeev:
alle
Ich meine die normalen.
 
drm1:
Ich meine normal

Was ist normal?
 
Zhunko:
Du drückst es auf eine komische Art und Weise aus... Zeigen Sie mir den Code, der mit Ticks, offenen/geschlossenen Positionen ohne Startfunktion funktioniert. Der Code eines vollwertigen EAs ohne die Strat-Funktion?

Nach Ihrem Portfolio zu urteilen, ist es nicht meine Aufgabe, Ihnen etwas zu erklären). Lassen Sie mich zunächst erklären, was ich unter der Funktion start() verstehe und warum mir die Idee, einen Zyklus darin zu organisieren, nicht gefällt. Ich glaube, dass die start()-Funktion eine Prozedur ist, die dem Benutzer (oder vielmehr seinem Programm - Expert) vom internen Interrupt-System des Terminalprogramms zugewiesen wird. Und innerhalb dieses Interrupts zu schleifen oder ein eigenes Interrupt-System zu organisieren - nun, das kann ich wahrscheinlich nicht. Obwohl, MQ-Spezialisten schreiben in der Dokumentation, bitte - while () Schleife in den Händen, Schleife wie Sie wollen in start(). Und wer hindert uns daran, in init(), durch die gleiche Vaille-Schleife, und niemand wird uns von außen zucken! Alle Variablen und Konstanten sind zugänglich, alle Funktionen funktionieren auf die gleiche Weise. Möchten Sie einen Kostenvoranschlag einholen, und in welchen Abständen? Nun, hier ist ein Beispielcode, mit einer Periodizität von 5 Sekunden erhalten Sie einen frischen Kurs, der vom letzten Tick stammt und im Array Close [0] gespeichert wird:

//-------------------------------------------
int init()
{
bool end;
while(!end)
{
Sleep (5000);
Print ("Quote = ", Close[0]);
}
return(0);
}
//--------------------------------------------
int start() {return(0);}
//--------------------------------------------
int deinit() {return(0);}
//--------------------------------------------

Im MT5 haben die Entwickler übrigens schon einige Unterbrechungen eingebaut, wofür ich ihnen menschlich danke! Ich kann es mir nicht verkneifen, zu zitieren:

In MQL5 können verschiedene Arten von Ereignissen vordefinierte Handlerfunktionen enthalten

OnTick - Empfang eines neuen Ticks;

OnTimer - Timer-Ereignis;

Die OnTrade ist eine Fachveranstaltung;

OnChartEvent - Ereignisse der Tastatur- und Mauseingabe, Ereignisse der Bewegung des grafischen Objekts, Ereignis des Abschlusses der Textbearbeitung im Eingabefeld des Objekts LabelEdit;

OnBookEvent - Ereignis der Statusänderung der Markttiefe.


 
Vinin:

Was ist normal?
zu funktionieren, funktioniert der Standardkonverter in keiner Weise
 
drm1:
zu funktionieren, funktioniert der Standardkonverter in keiner Weise

Es funktioniert für alle.
 
sergeev:

jeder arbeitet.
Es ist gut, dass alle arbeiten und ich langsam bin.
 
Grein:

Nach Ihrem Portfolio zu urteilen, ist es nicht meine Aufgabe, Ihnen etwas zu erklären). Lassen Sie mich zunächst erklären, was ich unter der Funktion start() verstehe und warum mir die Idee, einen Zyklus darin zu organisieren, nicht gefällt. Ich glaube, dass die start()-Funktion eine Prozedur ist, die dem Benutzer (oder vielmehr seinem Programm - Expert) vom internen Interrupt-System des Terminalprogramms zugewiesen wird. Und innerhalb dieses Interrupts zu schleifen oder ein eigenes Interrupt-System zu organisieren - nun, das kann ich wahrscheinlich nicht. Obwohl, MQ-Spezialisten schreiben in der Dokumentation, bitte - while () Schleife in den Händen, Schleife wie Sie wollen in start(). Und wer hindert uns daran, in init(), durch die gleiche Vaille-Schleife, und niemand wird uns von außen zucken! Alle Variablen und Konstanten sind zugänglich, alle Funktionen funktionieren auf die gleiche Weise. Möchten Sie einen Kostenvoranschlag einholen, und in welchen Abständen? Nun, hier ist ein Beispielcode, mit einer Periodizität von 5 Sekunden erhalten Sie einen frischen Kurs, der vom letzten Tick stammt und im Array Close [0] gespeichert wird:

//-------------------------------------------
int init()
{
bool end;
while(!end)
{
Sleep (5000);
Print ("Котировка = ", Close[0]);
}
return(0);
}
//--------------------------------------------
int start() {return(0);}
//--------------------------------------------
int deinit() {return(0);}
//--------------------------------------------

Lesen Sie schließlich hier darüber. Nur Funktionen mit Wartezeit funktionieren in Expert Advisor und Skriptstart. An allen anderen Orten ist sie streng verboten.

Ihr Code entspricht nicht den Standards von MQL4. Außerdem wurde irgendwo geschrieben, dass die Wartezeit in den Funktionen ininit und deinit während eines Systemaufrufs auf 2,5 Sekunden begrenzt ist. Dann wird die Funktion zwangsweise beendet.

 

Experten, ein Ratschlag! Wie kann man das im Leben umsetzen? Ich arbeite mit dem Indikator "Bollinger Bands", ich muss die Schwelle nach Überschreiten der Linie in der Mitte aktivieren.

1. Ganz nach der Norm, wenn der Preis < der unteren Linie ist, dann Bay

2. Wenn > die obere Linie, dann Verkaufen

Wenn der Kurs die Linie in der Mitte durchbrechen würde, würde der TrailingStop aktiviert werden.

Achtung Frage! Wie verbinde ich den Schwellenwert für den Trailing-Stop mit der Linie in der Mitte?

 
Top2n:

Experten, ein Ratschlag! Wie kann man das im Leben umsetzen? Ich arbeite mit dem "Bollinger Bands"-Indikator und muss die Auslöseschwelle nach Überschreiten der Linie in der Mitte aktivieren.

1. Ganz nach der Norm, wenn der Preis < der unteren Linie ist, dann Bay

2. Wenn > die obere Linie, dann Verkaufen

Wenn der Kurs die Linie in der Mitte durchbrechen würde, würde der TrailingStop aktiviert werden.

Achtung Frage! Wie verbinde ich den Schwellenwert für den Trailing-Stop mit der Linie in der Mitte?


Das erste, was mir in den Sinn kam:
Wenn die untere Linie bei 20 und die obere Linie bei 40 liegt, auf welchem Niveau befindet sich dann die Linie, die genau in der Mitte zwischen beiden liegt?

Ich bin sicher, Sie werden schnell antworten - auf Stufe 30. Und jetzt können Sie hoffentlich herausfinden, wie Sie das alles berechnen können. Obwohl... vielleicht finden Sie ja eine andere Methode... :)

 
Top2n:

Experten, ein Ratschlag! Wie kann man das im Leben umsetzen? Ich arbeite mit dem "Bollinger Bands"-Indikator und muss die Auslöseschwelle nach Überschreiten der Linie in der Mitte aktivieren.

1. Ganz nach der Norm, wenn der Preis < der unteren Linie ist, dann Bay

2. Wenn > die obere Linie, dann Verkaufen

Wenn der Kurs die Linie in der Mitte durchbrechen würde, würde der TrailingStop aktiviert werden.

Achtung Frage! Wie kann ich die Schwelle für den Trailing-Stop auf die Mittellinie setzen?



1. "Alles nach dem Standard, wenn der Preis < die untere Linie, dann Wow" - ja, und wenn es höher wurde, dann kaufen kaufen Einzahlung... :-))) Lernen Sie erst einmal Lesen und Schreiben - Bay - das ist von der Aglitsky für jetzt... Irgendwie bin ich sicher, dass es sich nicht um einen Druckfehler handelt...

2. Sie haben durch Bollinger - Sie haben direkten Zugriff auf seine oberen und unteren Grenzen ... oder vielmehr ihre Werte ... diese Werte erhalten.

"Wenn die untere Linie bei 20 und die obere Linie bei 40 liegt, auf welchem Niveau befindet sich dann die Linie, die genau in der Mitte zwischen beiden liegt?" -

wie man Ihnen bereits empfohlen hat...

Addieren Sie diese Werte und teilen Sie sie durch zwei - als Ergebnis erhalten Sie die Mittellinie dieses Indikators - diesen Wert und stricken Sie die Schwelle für das Einschalten des Schleppnetzes.

P.S. Artem, entschuldigen Sie, dass ich den Anfang Ihrer Antwort "korrigiert" habe - sie hat mir zu sehr gefallen ... und nach meinem Kommentar zu dieser Frage musste ich diese "Schwelle des Trailing-Stops zur Mittellinie " fertigstellen .

Grund der Beschwerde: