거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Twitter에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
조회수:
13
평가:
(4)
게시됨:
index.mq5 (2.81 KB) 조회
timer.mqh (4.42 KB) 조회
index.mqh (13.9 KB) 조회
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동
자바스크립트의 Promise와 유사한 알고리즘의 비동기 실행을 구현하기 위한 인터페이스.
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 Tarantella

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.

JJurX JJurX

Slow adaptive trend line with ultralinear and JMA smoothings.