Alım-satım robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Telegram ü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:
40
Derecelendirme:
(8)
Yayınlandı:
Güncellendi:
MQL5 Freelance 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
...

Kod, projelerden biri üzerinde çalışırken oluşturuldu, başka herhangi bir projeye bağlamak için bir kütüphaneye ayırmaya karar verdim.
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:
TradeSessionsMonday=00:15-17:45,17:55-23:55
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 Tandem

Çift ticareti. Riskten korunma. Piyasadan bağımsız stratejiler

SetSellStopLimitOrder 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 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) EMDcotir (Ampirik Mod Ayrıştırma)

Mevcut enstrümanın ampirik mod ayrıştırması.