Matriks Destek ve Yardım Platformu

Matriks Ürünleri ile ilgili tüm sorularınız için bizlere buradan ulaşabilirsiniz. Daha önce sorulan soruları ve verilen cevapları ilgili sekmelerden ve arama üzerinden inceleyebilirsiniz. Sağ taraftaki kategoriler üzerinden İlgilendiğiniz özelliklerle ilgili soruları filtreleyebilirsiniz. Soru ve cevapları sosyal medyada paylaşabilirsiniz. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.

1

İndikatörde Hour fonksiyonu kullanımı

Soruldu
Görüntülenme
2.396 görüntülenme
Durum
Çözüldü
indikatör içerisinde hour fonksiyonunu kullanmak istiyorum. barData BarData tipinde girdi bekliyor ancak hangi kütüphaneden çekmem gerektiğini bir türlü bulamadım. ondataupdate içerisinde örnek bir kullanım yapabilir misiniz?
Paylaş

1 Cevap

1

Kabul edilen cevap

Merhaba,

Aşağıdaki örneği inceleyebilirsiniz. Ayrıca detaylar için microsoft'un sayfasına göz atabilirsiniz :
https://docs.microsoft.com/tr-tr/dotnet/api/system.datetime.hour?view=netframework-4.7.2

public override void OnDataUpdate(int currentBar, decimal inputValue, DateTime barDateTime)
	{
			DateTime now = DateTime.Now; //simdiki zamanı verir
			if (now.Hour == barDateTime.Hour)//simdiki zaman ile bardatanin zamanina bakar
			{

			}
			if (barDateTime.Hour == 15) // bardatanin saati 15 mi diye bakar
			{

			}
			if (currentBar < Period)
			{
				SetLine(0, currentBar, 0);
				return ;
			}

			var result = GetTypicalPrice(currentBar);
			SetLine(currentBar, result);

	}

 


Seçkin Durgay
BağlantıBayrakladüzenlendi · FalGOSeçkin DurgayMatriks Destek4.631

Yorumlar (11)

  • ▲1
    int Zaman = barDateTime.Hour*100+ barDateTime.Minute;

    şeklinde tanımlayıp işleme girmesi için bir kriter oluşturdum. Teşekkürler.
  • ▲0
    Merhaba,

    Bunun kullanım amacı tam olarak nedir?
  • ▲0
    Sistem içerisinde zamana bağlı kriter oluşturmak için kullanıyorum. Örneğin sabah belirli saatlerde sistemim alım yapmaz. böylece sabah ilk açılıştaki o hareketli barları filtreliyorum. Tabi bu benim tercihim.
  • ▲0

    Anladım teşekkür ederim. Ben onun için TimeSpan kullanıyorum bir hazır stratejinin içinde rastlamıştım. 

    			TimeSpan açılış = new TimeSpan (10,10,0);
    			TimeSpan kapanış = new TimeSpan (17,55,0);
    			var currentTime = DateTime.Now.TimeOfDay;
    			if (currentTime > açılış && currentTime < kapanış)
    			{
                }

     

  • ▲0
    Daha profesyonelmiş :)

    Teşekkürler.
6 yorum daha göster
  • ▲2
    Seans saatlerini sembol bazinda dinamik sistemden cekebilirsiniz. Isterseniz ornek gonderebiliriz.
  • ▲0
    Sevinirim. İlginiz için teşekkür ederim.
  • ▲0
  • ▲0

    Burada ince bir nokta var sanırım, emin olmak için sormak istedim.

    DateTime now = DateTime.Now; //simdiki zamanı verir
    			if (barDateTime.Hour>11)//

    burada barDateTime tarafını sınırlarsak backtest tarafında da açılışları işlem zamanına dahil etmemenin sonuçlarını görebiliriz sanki?

    Ayrıca işlem yapmadığımız barları yok sayabilir miyiz?(mov'un hesabına katılmasını engellemek gibi) bir deneme yaptım ama olumlu sonuç vermedi.

  • ▲0
    yukarıdaki kodla denemedim ama kendi oluşturduğum ve yukarıda paylaştığım, zaman kriteriyle backtestte dahil etmemenin sonuçlarını görebiliyorum.

    doğru anladıysam eğer; mov gibi devamlı hesaplanan indikatörlerde datayı belli zaman aralıklarında mov içerisinde hesaplatmayabilirsiniz ancak hesaplatmanıdığınız dilim sonrası yapılacak hesaplama için mov içerisindeki data yerine bir veri koymanız gerekir ki devamlı hesaplama devam edebilsin
  • ▲0
    Mov tarafında nasıl seans sonu ile seans başı arasındaki boşluğu başlangıç ve bitiş sayıyorsa o zamanı da o şekle dönüştürebiliriz sanırım. Bir ara deneyeyim. Yazılım bilgim fazla değil, strateji de bunu çalıştırmak için

    public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues) yerine

    public override void OnDataUpdate(int currentBar, decimal inputValue, DateTime barDateTime) üzerine inşaa etmek gerecek sanırım. Bakalım kodlar patlayacak mı :D

Cevabınız

Cevap yazmak için giriş yapın.Giriş yapKayıt ol