MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
1 beğenilme 0 beğenilmeme
398 kez görüntülendi
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?
Indikator Builder kategorisinde (132 puan) tarafından | 398 kez görüntülendi

1 cevap

1 beğenilme 0 beğenilmeme
En İyi 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
(4,053 puan) tarafından
tarafından seçilmiş
0 0
Sevinirim. İlginiz için teşekkür ederim.
0 0
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 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 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
2,171 soru
2,028 cevap
1,841 yorum
1,500 kullanıcı