거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Twitter에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
당사 팬 페이지에 가입하십시오
스크립트가 마음에 드시나요? 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) 지표는 슈퍼트렌드 지표의 이동 평균을 통합하여 만든 지표입니다.

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

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.