I have created a userdefinedmethod indicator for checking the trading Day.
In addition I have created a second general indicator where all kind of Parameters can be set. So I can easily add the Indicator and define the parameter as I like. For example only Mo and Tu are trading Days "1100000" 1 set the trading day to true and 0 to false.
1) Userdefinedindicator
#region Variables
// variables
// User defined variables (add any user defined variables below)
//
private DayOfWeek WeekDay1;
private DayOfWeek WeekDay2;
private DayOfWeek WeekDay3;
private DayOfWeek WeekDay4;
private DayOfWeek WeekDay5;
private DayOfWeek WeekDay6;
private DayOfWeek WeekDay7;
#endregion
public bool IsTradingDay(DateTime barTime, string WeekDays)
{
// Rule 1 check for valid trade day
//String Weekdays "MoDiMiDoFrSaSo" "1001000" Mo und Do Example
//Weekday1 = WeekDays.Substring(1,1);
if (WeekDays.Substring(0,1) == "Mo")
{ WeekDay1 = DayOfWeek.Monday;}
if (WeekDays.Substring(1,1) == "Di")
{ WeekDay1 = DayOfWeek.Tuesday;}
if (WeekDays.Substring(2,1) == "Mi")
{ WeekDay1 = DayOfWeek.Wednesday;}
if (WeekDays.Substring(3,1) == "Do")
{ WeekDay1 = DayOfWeek.Thursday;}
if (WeekDays.Substring(4,1) == "Fr")
{ WeekDay1 = DayOfWeek.Friday;}
if (WeekDays.Substring(5,1) == "Sa")
{ WeekDay1 = DayOfWeek.Saturday;}
if (WeekDays.Substring(6,1) == "So")
{ WeekDay1 = DayOfWeek.Sunday;}
if (barTime.DayOfWeek == WeekDay1 || barTime.DayOfWeek == WeekDay2 || barTime.DayOfWeek == WeekDay3
|| barTime.DayOfWeek == WeekDay4 || barTime.DayOfWeek == WeekDay5 || barTime.DayOfWeek == WeekDay6
|| barTime.DayOfWeek == WeekDay7)
return true;
return false;
2) the general indicator
protected override void OnBarUpdate()
{
// Use this method for calculating your indicator values. Assign a value to each
// plot below by replacing 'Close[0]' with your own formula.
if ( sma20 == true)
{SMA20.Set(SMA(20)[0]);}
if ( sma50 == true)
{SMA50.Set(SMA(50)[0]);}
if(sma100 == true)
{SMA100.Set(SMA(100)[0]);}
//if (ToTime(Time[0]) >= 93000 && ToTime(Time[0]) <= 153000)
// {//DrawVerticalLine("myTime" + CurrentBar, 0, Color.Blue);
//BackColor = Color.LightGray;
// }
if (tradingDay == true)
{ Ruleset1 = IsTradingDay(Time[0], "1100000");}
//Print(Ruleset1);
if (IsSessionTime(Time[0], DateTime.Parse("11:30"),DateTime.Parse("16:00")) == true && Ruleset1 == true)
{BackColor = Color.LightGray;}
The Background of the chart should be lightGray when the conditions are met.
Any Idea why this doesnt work?
Thakrs
Comment