0 beğenilme 0 beğenilmeme
321 kez görüntülendi
Yukarıdaki çalışmaya dakika da eklenebilir mi? Teşekkürler
Indikator Builder kategorisinde (28 puan) tarafından | 321 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Aşağıdaki kodu inceleyebilirsiniz.

using System;
using System.Collections.Generic;
using System.Linq;
using System.ComponentModel;
using Matriks.Data.Identifiers;
using Matriks.Data.Symbol;
using Matriks.Engines;
using Matriks.Indicators;
using Matriks.Symbols;
using Matriks.AlgoTrader;
using Matriks.Trader.Core;
using Matriks.Trader.Core.Fields;
using Matriks.Trader.Core.TraderModels;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Lean.Algotrader.Trading;
namespace Matriks.Lean.Algotrader
{
	[IndicatorInformationAttribute("SablonTarihAraliginiCiz", IndicatorDrawingArea.OnDataSeries)]
	
	[IndicatorLineInformationAttribute(new []
		{
			"SablonTarihAraliginiCiz(0)"
		})]

	public class SablonTarihAraliginiCiz : MatriksIndicator
	{
		[DefaultValue("03.02.2023")]
		public string BaslangicTarih
		{
			get; set;
		}
		
		[DefaultValue("13:01:05")]
		public string BaslangicSaat
		{
			get; set;
		}
		
		[DefaultValue(true)]
		public bool SonBaraKadarCiz
		{
			get; set;
		}
		
		[DefaultValue("05.02.2023")]
		public string BitisTarih
		{
			get; set;
		}
		
		[DefaultValue("13:01:05")]
		public string BitisSaat
		{
			get; set;
		}

		DateTime baslangicZamani,bitisZamani;
		
		public sealed override void OnInit()
		{			
			baslangicZamani=Convert.ToDateTime(BaslangicTarih)+TimeSpan.Parse(BaslangicSaat);
			bitisZamani=SonBaraKadarCiz?DateTime.Now.AddYears(20): Convert.ToDateTime(BitisTarih)+TimeSpan.Parse(BitisSaat);
		}

		public override void OnDataUpdate(int currentBar, decimal inputValue, DateTime barDateTime)
		{
			SetLine(currentBar, 0);
			if(barDateTime>=baslangicZamani && barDateTime<=bitisZamani){
				SetLine(currentBar, inputValue);
			}
		}		
	}
}

 

(15,892 puan) tarafından
8,639 soru
8,593 cevap
4,826 yorum
19,831 kullanıcı