Alım-satım robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Facebook üzerinde bulun!
Fan sayfamıza katılın
Komut dosyasını ilginç mi buldunuz?
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
Komut dosyasını beğendiniz mi? MetaTrader 5 terminalinde deneyin
Görüntülemeler:
11
Derecelendirme:
(4)
Yayınlandı:
MQL5 Freelance Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git
JavaScript'teki Promise'e benzer şekilde algoritmaların asenkron yürütülmesini uygulamak için bir arayüz.
timer.mqh - timer, sadece asenkron yürütmeyi göstermek için

Ayrıca npm paket yöneticisini kullanarak da indirebilirsiniz
npm i mql5-promise

Söz Örneği :

 #include "timer.mqh"
#include "index.mqh"

void OnInit () {
     new Promise(printAndTimoutResolve, "111" )
        .then(printAndReject, "222" ) // then - önceki söz çözümlenmişse çalıştır
        .ccatch(printAndResolve, "333" ) // ccatch - önceki söz reddedilirse çalıştır
        .ccatch(printAndResolve, "444" )
        .ccatch(printAndResolve, "555" )
        .then(printAndResolve, "666" )
        .finally(printAndResolve, "end" ) // finally - herhangi bir şeyi çalıştır
        .destroy(); // tüm vaatleri yerine getirdikten sonra bu vaatlerin hafızasını temizleyin

     Print ( "start" );

     // printAndTimoutResolve 111 // Yazdırma sonrası zaman aşımı
     // başlangıç
     // 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);
};


Örneğin, 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) // tüm vaatler çözülürse çözülür
        .then(printAndResolve, "Promise::all resolved" )
        .ccatch(printAndResolve, "Promise::all rejected" )
        .destroy(); // tüm vaatleri sil

     // printAndTimoutResolve Promise 1
     // printAndReject Promise 2
     // printAndTimoutResolve Promise 3
     // printAndResolve Promise::all reddedildi
};


Söz örneği: yarış:

 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" ) // ilk sözden sonra çözümle/reddet
        .then(printAndResolve, "Promise::race resolved" )
        .ccatch(printAndResolve, "Promise::race rejected" )
        .destroy();

     // printAndTimoutResolve Promise 1
     // printAndReject Promise 2
     // printAndTimoutResolve Promise 3
     // Promise::race reddedildi
};



Örneğin, 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 Promise 1
     // printAndReject Promise 2
     // printAndTimoutResolve Promise 3
     // printAndResolve Promise::any
     // printAndResolve Promise::any resolved
};



MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal kod: https://www.mql5.com/ru/code/54412

Heiken Ashi Düzleştirilmiş Heiken Ashi Düzleştirilmiş

Standart Heiken Ashi, ancak fiyat zaman serilerinin ortalama değerleri üzerinden hesaplanır.

JFatlSpeed JFatlSpeed

Minimum gecikmeli trend değişim oranı göstergesi.

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.