TimeFiltersNumberEnum Ninjatrader
https://pastecode.io/s/2mj8xbbw https://pastecode.io/s/ow7sge2r https://pastecode.io/s/2mj8xbbw https://ninjatraderecosystem.com/user-app-share-download/renko-trader-bot-semi-automatic-with-interface-and-higher-time-frame-filter/unknown
csharp
2 years ago
3.9 kB
16
No Index
public class RenkoTrader : Indicator
{
List<TimeFilter> timeFilters = new List<TimeFilter>();
/////////////////
protected override void OnStateChange()
{
else if (State == State.DataLoaded)
{
timeFilters.Add(new TimeFilter(StartTime1, EndTime1, TimeFilterEnabled && (TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._1 || TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._2
|| TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._3 || TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._4)));
timeFilters.Add(new TimeFilter(StartTime2, EndTime2, TimeFilterEnabled && (TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._2 || TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._3 || TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._4)));
timeFilters.Add(new TimeFilter(StartTime3, EndTime3, TimeFilterEnabled && (TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._3 || TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._4)));
timeFilters.Add(new TimeFilter(StartTime4, EndTime4, TimeFilterEnabled && TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._4));
/////////////////
#region TimeFilterClass
public class TimeFilter
{
public TimeSpan StartTime { get; set; }
public TimeSpan EndTime { get; set; }
public bool Enabled { get; set; }
public TimeFilter(TimeSpan StartTime, TimeSpan EndTime, bool Enabled)
{
this.StartTime = StartTime;
this.Enabled = Enabled;
this.EndTime = EndTime;
}
public bool IsValidTime(DateTime time)
{
TimeSpan dayTime = time.TimeOfDay;
if (StartTime < EndTime)
{
if (dayTime >= StartTime && dayTime <= EndTime)
return (true);
}
else if (StartTime > EndTime)
{
if (dayTime >= StartTime || dayTime <= EndTime)
{
return (true);
}
}
else
{
return (true);
}
return (false);
}
}
bool IsNewTime(DateTime time0, DateTime time1)
{
if (timeFilters.Count == 0)
{
if (BarsArray[0].IsFirstBarOfSession)
{
return true;
}
}
for (int i = 0; i < timeFilters.Count; i++)
{
if (time0.TimeOfDay > timeFilters[i].StartTime && time1.TimeOfDay <= timeFilters[i].EndTime)
{
return true;
break;
}
}
return false;
}
bool IsValidTime(DateTime time)
{
int disabledCount = 0;
for (int i = 0; i < timeFilters.Count; i++)
{
if (!timeFilters[i].Enabled)
{
disabledCount++;
continue;
}
if (timeFilters[i].Enabled)
{
if (timeFilters[i].IsValidTime(time))
return (true);
}
}
if (disabledCount == timeFilters.Count)
return (true);
return (false);
}
#endregion
/////////////////
namespace RenkoTraderEnums
{
public enum TimeFiltersNumberEnum { _1, _2, _3, _4 };
}
Editor is loading...
Leave a Comment