無料でロボットをダウンロードする方法を見る
Telegram上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
ビュー:
21
評価:
(4)
パブリッシュ済み:
index.mq5 (2.81 KB) ビュー
timer.mqh (4.42 KB) ビュー
index.mqh (13.9 KB) ビュー
MQL5フリーランス このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
アルゴリズムの非同期実行を実装するためのインターフェイスで、JavaScriptのPromiseに似ている。
timer.mqh -timer, 非同期実行のデモ用

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 end
};

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 プロミス2
     // printAndTimoutResolve プロミス 3
     // printAndResolve Promise::all rejected.
};


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 プロミス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 プロミス2
     // printAndTimoutResolve プロミス 3
     // printAndResolve Promise::any
     // printAndResolve Promise::any 解決済み
};



MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/54412

プロフィット・マキシマイザー プロフィット・マキシマイザー

プロフィットマキシマイザー(PMax)インディケータは、スーパートレンドインディケータの移動平均を統合して作成されたインディケータです。

Buffers for each hour (binary) and an hour buffer from 0-23 - for data collection purposes Buffers for each hour (binary) and an hour buffer from 0-23 - for data collection purposes

データ収集用のプロトタイプ。 データ・ウィンドウ(データ収集用)のダミー・バッファを1日1時間分。時間帯のコメント。

Adaptive Moving Average (AMA) Adaptive Moving Average (AMA)

適応移動平均線は、ノイズの影響を受けにくい移動平均線を作るときに使われ、トレンドを検知する際にラグが最小に抑えられるという特徴を持ちます。

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

アクセルレーション/デセレレーションインジケーター(AC)は現在の市場を動かす力の加速と減速を測ります。