Unisciti alla nostra fan page
- Visualizzazioni:
- 9
- Valutazioni:
- Pubblicato:
-
Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance
timer.mqh - timer, solo per dimostrare l'esecuzione asincrona
Si può anche scaricare usando il gestore di pacchetti npm
npm i mql5-promise
Esempio di Promise:
#include "timer.mqh" #include "index.mqh" void OnInit () { new Promise(printAndTimoutResolve, "111" ) .then(printAndReject, "222" ) // allora - eseguire se la promessa precedente è stata risolta .ccatch(printAndResolve, "333" ) // ccatch - esegue se la promessa precedente viene rifiutata .ccatch(printAndResolve, "444" ) .ccatch(printAndResolve, "555" ) .then(printAndResolve, "666" ) .finally(printAndResolve, "end" ) // infine - eseguire qualsiasi cosa .destroy(); // cancellare la memoria di queste promesse dopo l'esecuzione di tutte le promesse Print ( "start" ); // printAndTimoutResolve 111 // timeout dopo la stampa // inizio // printAndReject 222 // printAndTimoutResolve 333 // printAndTimoutResolve 666 // printAndTimoutResolve fine }; 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); };
Ad esempio, 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) // risolvere se tutte le promesse sono state risolte .then(printAndResolve, "Promise::all resolved" ) .ccatch(printAndResolve, "Promise::all rejected" ) .destroy(); // cancellare tutte le promesse // printAndTimoutResolve Promessa 1 // printAndReject Promessa 2 // printAndTimoutResolve Promessa 3 // printAndResolve Promessa::tutti rifiutati };
Esempio di promessa:gara:
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" ) // risolvere/rifiutare dopo la prima promessa .then(printAndResolve, "Promise::race resolved" ) .ccatch(printAndResolve, "Promise::race rejected" ) .destroy(); // printAndTimoutResolve Promessa 1 // printAndReject Promessa 2 // printAndTimoutResolve Promessa 3 // Promessa::gara rifiutata };
Ad esempio, Promessa:qualsiasi:
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 Promessa 1 // printAndReject Promessa 2 // printAndTimoutResolve Promessa 3 // printAndResolve Promise::any // printAndResolve Promessa::qualsiasi risolto };
Tradotto dal russo da MetaQuotes Ltd.
Codice originale https://www.mql5.com/ru/code/54412

L'indicatore Profit Maximiser (PMax) è un indicatore creato integrando la media mobile dell'indicatore Supertrend.

Heiken Ashi standard, ma calcolato sui valori medi delle serie temporali dei prezzi.

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.