거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Telegram에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
당사 팬 페이지에 가입하십시오
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
자바스크립트의 Promise와 유사한 알고리즘의 비동기 실행을 구현하기 위한 인터페이스.
timer.mqh - 타이머, 비동기 실행을 시연하기 위한 것
npm 패키지 관리자를 사용하여 다운로드할 수도 있습니다.
timer.mqh - 타이머, 비동기 실행을 시연하기 위한 것
npm 패키지 관리자를 사용하여 다운로드할 수도 있습니다.
npm i mql5-promise
Promise 예제 :
#include "timer.mqh" #include "index.mqh" void OnInit () { new Promise(printAndTimoutResolve, "111" ) .then(printAndReject, "222" ) // then - 이전 약속이 해결되면 실행합니다. .ccatch(printAndResolve, "333" ) // ccatch - 이전 프로미스가 거부된 경우 실행 .ccatch(printAndResolve, "444" ) .ccatch(printAndResolve, "555" ) .then(printAndResolve, "666" ) .finally(printAndResolve, "end" ) // 마지막으로 - 무엇이든 실행 .destroy(); // 모든 프로미스를 실행한 후 이러한 프로미스를 메모리 지우기 Print ( "start" ); // printAndTimoutResolve 111 // 인쇄 후 시간 초과 // 시작 // printAndReject 222 // printAndTimoutResolve 333 // printAndTimoutResolve 666 // printAndTimoutResolve 종료 }; 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); };
예를 들어, 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) // 모든 약속이 해결되면 해결합니다. .then(printAndResolve, "Promise::all resolved" ) .ccatch(printAndResolve, "Promise::all rejected" ) .destroy(); // 모든 약속 삭제 // printAndTimoutResolve 프로미스 1 // printAndReject Promise 2 // printAndTimoutResolve 프로미스 3 // printAndResolve Promise::모두 거부됨 };
Promise 예시: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" ) // 첫 번째 약속 이후 해결/거부 .then(printAndResolve, "Promise::race resolved" ) .ccatch(printAndResolve, "Promise::race rejected" ) .destroy(); // printAndTimoutResolve 프로미스 1 // printAndReject Promise 2 // printAndTimoutResolve 프로미스 3 // Promise::race 거부됨 };
예를 들어, 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 프로미스 1 // printAndReject Promise 2 // printAndTimoutResolve 프로미스 3 // printAndResolve Promise::any // printAndResolve Promise::any 해결됨 };
MetaQuotes Ltd에서 러시아어로 번역함.
원본 코드: https://www.mql5.com/ru/code/54412

수익 극대화(PMax) 지표는 슈퍼트렌드 지표의 이동 평균을 통합하여 만든 지표입니다.

표준 하이켄 아시지만 가격 시계열의 평균값으로 계산됩니다.

현재 추세의 가속도를 측정하는 데는 JFatlAcceleration 지표가 사용됩니다.

현재 추세의 강도와 방향을 보여주는 간단하고 명확한 지표입니다.