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);
}
}
}
}