Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
- Visualizaciones:
- 23
- Ranking:
- Publicado:
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
timer.mqh - timer, sólo para demostrar la ejecución asíncrona
También puede Descargar usando el gestor de paquetes npm
npm i mql5-promise
Ejemplo de Promise:
#include "timer.mqh" #include "index.mqh" void OnInit () { new Promise(printAndTimoutResolve, "111" ) .then(printAndReject, "222" ) // then - ejecutar si la promesa prev está resuelta .ccatch(printAndResolve, "333" ) // ccatch - ejecutar si la promesa anterior es rechazada .ccatch(printAndResolve, "444" ) .ccatch(printAndResolve, "555" ) .then(printAndResolve, "666" ) .finally(printAndResolve, "end" ) // finalmente - ejecutar cualquier cosa .destroy(); // borrar de la memoria estas promesas después de ejecutar todas las promesas Print ( "start" ); // printAndTimoutResolve 111 // tiempo de espera después de Imprimir // inicio // printAndReject 222 // printAndTimoutResolve 333 // printAndTimoutResolve 666 // printAndTimoutResolve fin }; 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); };
Por ejemplo, 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) // resolver si todas las promesas están resueltas .then(printAndResolve, "Promise::all resolved" ) .ccatch(printAndResolve, "Promise::all rejected" ) .destroy(); // borrar todas las promesas // printAndTimoutResolve Promesa 1 // printAndReject Promesa 2 // printAndTimoutResolve Promesa 3 // printAndResolve Promesa::todo rechazado };
Promise ejemplo:carrera:
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" ) // resolver/rechazar después de la primera promesa .then(printAndResolve, "Promise::race resolved" ) .ccatch(printAndResolve, "Promise::race rejected" ) .destroy(); // printAndTimoutResolve Promesa 1 // printAndReject Promesa 2 // printAndTimoutResolve Promesa 3 // Promesa::carrera rechazada };
Por ejemplo, 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 Promesa 1 // printAndReject Promesa 2 // printAndTimoutResolve Promesa 3 // printAndResolve Promise::any // printAndResolve Promise::any resuelto };
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/54412

El indicador Profit Maximiser (PMax) es un indicador creado mediante la integración de la media móvil del indicador Supertrend.

Prototipo para la recogida de datos. Búferes ficticios para la ventana de datos (a efectos de recogida de datos) para la hora del día, y un búfer adicional para la hora del día. Comenta la hora del día.

El indicador Accumulation/Distribution (Acumulación/Distribución) queda determinado por los cambios que se producen en el precio y en el volumen.

El indicador Acceleration/Deceleration (AC, Aceleración/Desaceleración) mide la aceleración y la desaceleración de la fuerza impulsora del mercado.