und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
- Ansichten:
- 13
- Rating:
- Veröffentlicht:
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
timer.mqh - timer, nur um die asynchrone Ausführung zu demonstrieren
Sie können auch über den npm-Paketmanager herunterladen
npm i mql5-promise
Promise Beispiel :
#include "timer.mqh" #include "index.mqh" void OnInit () { new Promise(printAndTimoutResolve, "111" ) .then(printAndReject, "222" ) // dann - ausführen, wenn vorheriges Versprechen aufgelöst wird .ccatch(printAndResolve, "333" ) // ccatch - wird ausgeführt, wenn das vorherige Versprechen abgelehnt wird .ccatch(printAndResolve, "444" ) .ccatch(printAndResolve, "555" ) .then(printAndResolve, "666" ) .finally(printAndResolve, "end" ) // schließlich - alles ausführen .destroy(); // Löscht den Speicher dieser Versprechen, nachdem alle Versprechen ausgeführt wurden Print ( "start" ); // printAndTimoutResolve 111 // Timeout nach Druck // Start // printAndReject 222 // printAndTimoutResolve 333 // printAndTimoutResolve 666 // printAndTimoutResolve end }; void promiseAllResolve( ulong promiseId, string &prevResult[], string parametr) { Print ( "promiseAllResolve " + parametr); }; void printAndTimoutResolve( ulong promiseId, string prevResult, string parametr) { Print ( "printAndTimoutResolve " + parametr); Timer::setTimout(resolveByIdStr, 2000 , string (promiseId)); }; void resolveByIdStr( string id) { Promise::resolveById( ulong (id)); } void printAndResolve( ulong promiseId, string prevResult, string parametr) { Print ( "printAndResolve " + parametr); Promise::resolveById(promiseId); }; void printAndReject( ulong promiseId, string prevResult, string parametr) { Print ( "printAndReject " + parametr); Promise::rejectById(promiseId); };
Zum Beispiel, Promise:all:
void OnInit () { Promise* list1[] = { new Promise(printAndTimoutResolve, "Promise 1" ) .then(printAndTimoutResolve, "Promise 1.1" ) , new Promise(printAndReject, "Promise 2" ), new Promise(printAndTimoutResolve, "Promise 3" ), }; Promise::all(list1, promiseAllResolve) // auflösen, wenn alle Versprechen aufgelöst sind .then(printAndResolve, "Promise::all resolved" ) .ccatch(printAndResolve, "Promise::all rejected" ) .destroy(); // alle Versprechen löschen // printAndTimoutResolve Verheißung 1 // printAndReject Verheißung 2 // printAndTimoutResolve Verheißung 3 // printAndResolve Promise::all abgelehnt };
Beispiel für ein Versprechen:Rennen:
void OnInit () { Promise* list2[] = { new Promise(printAndTimoutResolve, "Promise 1" ) .then(printAndTimoutResolve, "Promise 1.1" ) , new Promise(printAndReject, "Promise 2" ), new Promise(printAndTimoutResolve, "Promise 3" ), }; Promise::race(list2, printAndResolve, "Promise::race" ) // Auflösen/Ablehnen nach dem ersten Versprechen .then(printAndResolve, "Promise::race resolved" ) .ccatch(printAndResolve, "Promise::race rejected" ) .destroy(); // printAndTimoutResolve Verheißung 1 // printAndReject Verheißung 2 // printAndTimoutResolve Verheißung 3 // Promise::race abgelehnt };
Zum Beispiel: Promise:any:
void OnInit () { Promise* list3[] = { new Promise(printAndTimoutResolve, "Promise 1" ) .then(printAndTimoutResolve, "Promise 1.1" ) , new Promise(printAndReject, "Promise 2" ), new Promise(printAndTimoutResolve, "Promise 3" ), }; Promise::any(list3, printAndResolve, "Promise::any" ) .then(printAndResolve, "Promise::any resolved" ) .ccatch(printAndResolve, "Promise::any rejected" ) .destroy(); // printAndTimoutResolve Verheißung 1 // printAndReject Verheißung 2 // printAndTimoutResolve Verheißung 3 // printAndResolve Promise::any // printAndResolve Promise::any aufgelöst };
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/54412

Der Profit Maximiser (PMax) Indikator ist ein Indikator, der durch die Integration des gleitenden Durchschnitts des Supertrend Indikators erstellt wurde.

Prototyp für die Datenerfassung. Dummy-Puffer für das Datenfenster (zum Zwecke der Datenerfassung) für die Stunde des Tages und ein zusätzlicher Puffer für die Stunde des Tages. Kommentare die Stunde des Tages.

Der Accumulation/Distribution Indikator wird aus Änderung von Preis und Volumen bestimmt.

Der Acceleration/Deceleration Indikator (AC) misst die Beschleunigung und Verlangsamung des aktuellen Marktimpulses, der Kraft der Kursbewegung.