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.

0

Zamanlana Sorununda Kod Farklılığı

Soruldu
Görüntülenme
743 görüntülenme
Durum
Çözüldü
Merhaba, zamanlama ile ilgili dediğiniz kodları kullandığımda şu türden uyarı aldım.

 

error CS1503: 1 bağımsız değişkeni: 'System.TimeSpan' öğesinden 'string' öğesine dönüştürülemiyor17829

bu uyarının da sebebi aşağıdaki kalıplar;

 

public bool FX_ZamanindaMI(DateTime zaman)

{

var bas = TimeSpan.Parse(Baslangic);

var bit = TimeSpan.Parse(Bitis);

return (zaman.TimeOfDay >= bas && zaman.TimeOfDay <= bit);

}

 

daha önceden bu yapılar için parametre tanımlaması yapıyordum ve sorun olmuyordu ancak o zaman da seçili ekranda zaman bilgisi girmeme rağmen backtest buna uymuyor ve belirttiğim zamanlar dışında da alım satımlar yapıyordu.
Paylaş

1 Cevap

-1

Kabul edilen cevap

Merhabalar,

Bir önceki sorunun cevabı ile sizin kullandığınız yapı farklıdır.

Eğer bu tarz (fonksiyon içeren) bir yapı kullanmak istiyorsanız önce zaman aralığı eklemeniz gerekiyor.  Bu eklemeyi yaptıktan sonra da yukarıdaki kalıbı ekleyebilirsiniz. 

		// Gerekli zaman aralığı
		[Parameter("09:36:00")]
		public string Baslangic;
		[Parameter("17:58:00")]
		public string Bitis;

		public bool FX_ZamanindaMI(DateTime zaman)
		{
			var bas = TimeSpan.Parse(Baslangic);
			var bit = TimeSpan.Parse(Bitis);
			return (zaman.TimeOfDay >= bas && zaman.TimeOfDay <= bit);
		}

Daha sonra ise OnDataUpdate() içerisinde bu fonksiyonu kullanmalısınız.

public override void OnDataUpdate(BarDataEventArgs barData)
		{

			var zamanKontrolu = FX_ZamanindaMI(barData.BarData.Dtime);

Bütün olay sadece bununla kalmıyor, bilgilerinize. Devamında ise burada yer alan zamanKontrolu değişkenini koşullarınıza eklemeniz gerekmektedir.

Aşağıdaki gibi..

if (Satış Koşulu && zamanKontrolu)
			{
				SendMarketOrder(Symbol1, OrderQuantity1, OrderSide.Sell, includeAfterSession:false);
			}

Ayrıca son olarak sizinle bir ekran görüntüsü paylaşıyorum. Ben bu şekilde yaptığımda ekran görüntüsünden de göreceğiniz üzere backtestte de doğru sonuçlar elde ediyorum. 

Dilerseniz bir kontrol sağlayın tarif ettiğim şekilde, hala sorun yaşarsanız yardımcı olmaya çalışalım. 

İyi çalışmalar.

BağlantıBayrakladüzenlendi · Seçkin DurgayasiyangMatriks Destek11.113

Cevabınız

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