Kütüphaneler: Control_Trade_Sessions

 

Control_Trade_Sessions:

Ticaret oturumu kontrolü için kütüphane. Başlangıçta, haftanın 7 günü için işlem seanslarının zamanını sayar (Sat ve Sun'da kripto para birimi ticareti olabilir), günde 10 seansa kadar. Daha sonra OnTick() içinde kontroller yapabilir ve işlem seansının dışında bir tik gelirse, daha fazla işlemden çıkabilirsiniz.

Control_Trade_Sessions

Author: Aleksei Kuznetsov

 

Bunların hepsi saçmalık. Eğer bir broker, enstrümanın özelliklerini gerçekte oluşan fiyatlara uygun olmayan şekilde doldurursa, kütüphaneniz de broker gibi açıkça yalan söyleyecektir.

Örneği Finam'da çalıştırabilirsiniz.

 
Alexey Viktorov #:

Bunların hepsi saçmalık. Eğer broker, enstrümanın özelliklerini gerçekte gerçekleşen fiyat hareketlerinden farklı şekilde doldurursa, kütüphaneniz de broker gibi açıkça yalan söyleyecektir.

Örneği Finam'da çalıştırabilirsiniz.

Suçlu kim, bunu belirledik. Peki ne yapmalı?

sinput'lar aracılığıyla günlere göre seans girişi seçeneği ekleyebilirim.
 
Harika bir kütüphane, teşekkürler! En önemli özelliği hızı. Optimizasyon için biçilmiş kaftan.
 
Forester #:
Suçlunun kim olduğu ortaya çıktı. Peki ne yapmalı?

sinput'lar aracılığıyla günlere göre oturum girişi seçeneği ekleyebilirim.

Bu seçeneği ekledim. Açıklamaya ve koda bakın.

 
Kodu biraz daha hızlandırdım. Eskiden, işlem seansı dışındaki her tikte zaman hesaplaması yapılıp seans dizileriyle karşılaştırılıyordu:
Artık seans değişimi sırasında, mevcut seansın bitiş zamanının yanı sıra bir sonraki seansın başlangıç zamanını da hesaplıyorum. Sonuç olarak, yine sadece 1 kontrol kalıyor:
if(time < this.NextTradeStart ) { return false; }
 
Forester işlem seansı dışındaki her tikte zaman hesaplaması yapılıp seans dizileriyle karşılaştırılıyordu (
). Artık seans değiştiğinde, mevcut seansın bitiş zamanının yanı sıra bir sonraki seansın başlangıç zamanını da hesaplıyorum. Sonuç olarak, yine sadece 1 kontrol kalıyor:

Bu, herhangi bir aralığa girip girmediğini hesaplamak için en doğru yaklaşımdır. Örneğin, işlem saatleri 12:00 ile 15:00 arasında ise, bu tür bir NextTime yaklaşımı kullanılmalıdır.

Üçüncü taraf kodlar arasında bunu sadece sizde gördüm.

 
 
Çok dikkatli okumadım ama görünüşe göre mevcut uygulamada oturumun kesinlikle bir gün içinde kalması gerekiyor; bu da saat dilimleri arasında önemli bir fark olduğunda geçerli değil, yani, örneğin, Avrupa seansları Asya'daki bir broker aracılığıyla işlem görüyorsa ya da tam tersi bir durum söz konusuysa. Yani, datetime'dan tarihi çıkarırsak, To zamanı From zamanından daha erken olabilen durumlar da vardır.
 
Stanislav Korotky #:
Özel sembollerde oturumlarla ilgili herhangi bir karmaşık durum oluşturulabilir ve kütüphanenin doğruluğu kontrol edilebilir. Neyse ki, oturumlarda değişiklik yapmak için fiyat verilerinin yeniden kaydedilmesi gerekmez.
 
Stanislav Korotky #:
Çok dikkatli okumadım ama görünüşe göre mevcut uygulama, seansın kesinlikle bir günün sınırları içinde kalması gerektiğini öngörüyor; bu da saat dilimleri arasında önemli bir fark olduğunda geçerli değil, yani, örneğin, Avrupa seansları Asya'daki bir broker aracılığıyla işlem görüyorsa ya da tam tersi durum söz konusuysa. Yani, datetime'dan tarihi çıkarırsak, To saatinin From saatinden daha erken olduğu durumlar olabilir.
Sadece zamana göre karşılaştırma yapılıyor.
if(!TradeSession.isSessionTrade(TimeCurrent())){Print("Market closed. OnTick return");return;}
Bunun yerine
TimeCurrent()
Bu arada, istediğiniz herhangi birini ayarlayabilirsiniz.

Seans saatleri brokerdan alınır veya manuel olarak ayarlanabilir.