Fan sayfamıza katılın
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
- Görüntülemeler:
- 40
- Derecelendirme:
- Yayınlandı:
- Güncellendi:
-
Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git
İşlem seansı kontrolü için kütüphane. Başlangıçta, haftanın 7 günü için işlem seansı sürelerini sayar (Cumartesi ve Güneş'te kripto para birimi ticareti olabilir), günde 10 seansa kadar. Daha sonra OnTick() içinde kontroller yapabilir ve bir tik işlem seansının dışında gelmişse, işlemden çıkabilirsiniz.
Kullanım örneği:
//+------------------------------------------------------------------+ //|testControl_Trade_Sessions.mq5 | //+------------------------------------------------------------------+ // #define LoadSessionFromInputs // Oturumları girdilerden okuyun #include <Forester\Control_Trade_Sessions.mqh> // işlem seansını kontrol etmek için kodu bağlamak int OnInit() { return(INIT_SUCCEEDED); } void OnTick() { static TRADE_SESSIONS TradeSession(_Symbol);// piyasa açılış/kapanış saatlerini alır ve bunları haftanın günlerine göre dizilere kaydeder. Uzman Danışmanı başlatırken bir kez çağrılır (bkz. statik). if(!TradeSession.isSessionTrade(TimeCurrent())){Print("Market closed. OnTick return"); return;} // eylemleriniz }
Sonuç olarak aşağıdaki gibi bir çıktı elde edilir:
2022.01.10 00:05:00 Day: 0 Trade sessions: 1: 00:00-00:00 - это воскресенье
2022.01.10 00:05:00 Day: 1 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 2 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 3 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 4 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 5 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 6 Trade sessions: 1: 00:00-00:00
2022.05.30 00:05:00 Market closed. OnTick return
2022.05.30 00:05:01 Market closed. OnTick return
...
2022.05.30 00:14:36 Market closed. OnTick return
2022.05.30 00:14:40 Market closed. OnTick return
2022.05.30 23:55:00 Market closed. OnTick return
2022.05.30 23:55:00 Market closed. OnTick return
...
2022.05.30 23:59:30 Market closed. OnTick return
2022.05.31 00:00:01 Market closed. OnTick return
...
Yeni MQL5 işlevleri, hafta sonları da dahil olmak üzere herhangi bir gün için ticaret oturumunu okumak için kullanılır.
Mümkün olduğunca hızlı çalışır, ticaret oturumu içindeki her onayda yalnızca 1 kontrol yapılır:
.
if(time < this.NextTradeStop ) { return true; }NextTradeStop geçerli işlem seansının bitiş zamanıdır.
İşlem seansı dışındaki her tikte de 1 kontrol yapılır:
if(time < this.NextTradeStart ) { return false; }Yalnızca seanslar arasındaki geçişte bir sonraki seansın zamanını almak için dizilere erişilir.
Örneğin benim DC'mde işlem seansı 00:15 ile 23:55 arasındadır. Saat 00:15'ten sonraki ilk tik ile NextTradeStop 23:55 olarak ayarlanacak ve ardından tüm gün boyunca yalnızca bu koşul kontrol edilecektir.
İşlem seanslarınız
İşlem seanslarının zamanını manuel olarak da belirleyebilirsiniz. Bu seçeneği etkinleştirmek için
satırını ekleyin.
#define LoadSessionFromInputs // Oturumları girdilerden okuyun
Haftanın günlerine göre ticaret seanslarına girmek için 7 sinputs oluşturacaktır.
Oturum zamanlarını boşluk bırakmadan, kesinlikle : - ve . ile girin,
Parametreler sekmesinde bu şekilde görünür:

Ve günlükte bu şekilde çıktı alınacaktır:
TradeSessionsTuesday=00:15-23:55
TradeSessionsWednesday=00:10-17:45,17:55-23:00,23:05-23:55
TradeSessionsThursday=00:15-17:45,17:55-23:55
TradeSessionsFriday=00:15-23:55
TradeSessionsSaturday=00:15-23:55
TradeSessionsSunday=
EURUSD : gerçek tikler 2022'den itibaren başlar.05.10 00:00:00, her tik üretimi kullanıldı
2022.01.10 00:05:00 Gün: 1 İşlem seansları: 1: 00:15-17:45, 2: 17:55-23:55
2022.01.10 00:05:00 Gün: 2 İşlem seansı: 1: 00:15-23:55
2022.01.10 00:05:00 Gün: 3 İşlem seansı: 1: 00:10-17:45, 2: 17:55-23:00, 3: 23:05-23:55
2022.01.10 00:05:00 Gün: 4 Ticaret seansları: 1: 00:15-17:45, 2: 17:55-23:55
2022.01.10 00:05:00 Gün: 5 İşlem seansı: 1: 00:15-23:55
2022.01.10 00:05:00 Gün: 6 İşlem seansı: 1: 00:15-23:55
2022.01.10 00:05:00 Piyasa kapandı. OnTick return
...
Seansın bitiş saati başlangıç saatinden küçükse, örneğin 20:00-8:00, seans bir sonraki günün 8:00'ine kadar devam eder. Bu, işlem seansının sunucu saatinden farklı bir saat diliminde olduğu durumlarda faydalı olabilir.
İşlem seanslarının zamanı kodda girdiler olmadan da belirtilebilir. LoadFromInputs() fonksiyonu bu amaç için oluşturulmuştur. Girdiler olmadan çağrılabilir, ancak örnekte olduğu gibi doğrudan koddan bir dize dizisi ile çağrılabilir.
string s=["00:15-17:45,17:55-23:55","00:00-24:00",....] void LoadFromInputs(string &s[]){...}
Uzman Danışman çok para birimliyse ve farklı enstrümanların farklı işlem seansı süreleri varsa, her enstrüman için ayrı bir TRADE_SESSIONS örneği oluşturabilir ve oturum verileriyle LoadFromInputs() işlevini çağırabilir ve isSessionTrade() işlevini kontrol edebilirsiniz. Bunu yapmak için kodu bu örneğe benzer şekilde değiştirmeniz gerekecektir.
MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal kod: https://www.mql5.com/ru/code/48059
Tandem
Çift ticareti. Riskten korunma. Piyasadan bağımsız stratejiler
SetSellStopLimitOrder
Bu komut dosyası, mevcut fiyattan ve emir tetikleme fiyatlarından pip cinsinden sabit tetikleme seviyeleri, zararı durdur seviyesi ve kar alma seviyesi değerlerine sahip SellStopLimit emrini ayarlamak için tasarlanmıştır.
Moving Averages-14 different types
Bu, kapanış fiyatına göre 14 tür hareketli ortalamayı hesaplamak için bir göstergedir.
EMDcotir (Ampirik Mod Ayrıştırma)
Mevcut enstrümanın ampirik mod ayrıştırması.