Rejoignez notre page de fans
- Vues:
- 15
- Note:
- Publié:
-
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
timer.mqh - timer, juste pour démontrer l'exécution asynchrone
Vous pouvez également télécharger en utilisant le gestionnaire de paquets npm
npm i mql5-promise
Exemple de Promise:
#include "timer.mqh" #include "index.mqh" void OnInit () { new Promise(printAndTimoutResolve, "111" ) .then(printAndReject, "222" ) // then - run if prev promise is resolved .ccatch(printAndResolve, "333" ) // ccatch - exécuter si la promesse précédente est rejetée .ccatch(printAndResolve, "444" ) .ccatch(printAndResolve, "555" ) .then(printAndResolve, "666" ) .finally(printAndResolve, "end" ) // enfin - exécuter quoi que ce soit .destroy(); // effacer la mémoire de ces promesses après avoir exécuté toutes les promesses Print ( "start" ); // printAndTimoutResolve 111 // délai d'attente après l'impression // début // 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); };
Par exemple, 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) // résoudre si toutes les promesses sont résolues .then(printAndResolve, "Promise::all resolved" ) .ccatch(printAndResolve, "Promise::all rejected" ) .destroy(); // supprimer toutes les promesses // printAndTimoutResolve Promise 1 // printAndReject Promise 2 // printAndTimoutResolve Promise 3 // printAndResolve Promise::all rejected };
Promesse example:race :
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" ) // résoudre/rejeter après la première promesse .then(printAndResolve, "Promise::race resolved" ) .ccatch(printAndResolve, "Promise::race rejected" ) .destroy(); // printAndTimoutResolve Promise 1 // printAndReject Promise 2 // printAndTimoutResolve Promise 3 // Promise::race rejeté };
Par exemple, 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 Promise 1 // printAndReject Promise 2 // printAndTimoutResolve Promise 3 // printAndResolve Promise::any // printAndResolve Promise::any resolved };
Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/54412

L'indicateur Profit Maximiser (PMax) est un indicateur créé en intégrant la moyenne mobile de l'indicateur Supertrend.

Heiken Ashi standard, mais calculé sur les valeurs moyennes des séries chronologiques de prix.

Tarantella EA: Advanced grid trading system with hedging capabilities and Market Profile integration. Uses ADX trend filtering, Fibonacci-based grid spacing, and multi-layered entry conditions (RSI/ATR/volume) to execute trades only within Market Profile value areas. Features intelligent risk management including trailing stops, breakeven triggers, and partial hedge closing.

Slow adaptive trend line with ultralinear and JMA smoothings.