<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forex Software — SessionIgnore Weekdays?]]></title>
	<link rel="self" href="https://forexsb.com/forum/feed/atom/topic/7865/" />
	<updated>2019-06-22T11:18:00Z</updated>
	<generator>PunBB</generator>
	<id>https://forexsb.com/forum/topic/7865/sessionignore-weekdays/</id>
		<entry>
			<title type="html"><![CDATA[Re: SessionIgnore Weekdays?]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/56037/#p56037" />
			<content type="html"><![CDATA[<p>it seems that the code is working correct..</p>]]></content>
			<author>
				<name><![CDATA[Roughey]]></name>
				<uri>https://forexsb.com/forum/user/10939/</uri>
			</author>
			<updated>2019-06-22T11:18:00Z</updated>
			<id>https://forexsb.com/forum/post/56037/#p56037</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[SessionIgnore Weekdays?]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/56036/#p56036" />
			<content type="html"><![CDATA[<p>Hi,</p><p>i want to modify ea that i can switch between Ignore Trading days. So that ea will not trade at special weekdays.</p><div class="codebox"><pre><code>//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool IsOutOfSession()
  {
   MqlDateTime time0; TimeToStruct(Time[0],time0);
   int weekDay           = time0.day_of_week;
   long timeFromMidnight = Time[0]%86400;
   int periodLength      = PeriodSeconds(_Period);
   bool skipTrade        = false;

   if(weekDay==0)
     {
      if(sessionIgnoreSunday) return true;
      int lastBarFix=sessionCloseAtSessionClose ? periodLength : 0;
      skipTrade=timeFromMidnight&lt;sessionSundayOpen || timeFromMidnight+lastBarFix&gt;sessionSundayClose;
     }
   else if(weekDay&lt;5)
     {
      int lastBarFix=sessionCloseAtSessionClose ? periodLength : 0;
      skipTrade=timeFromMidnight&lt;sessionMondayThursdayOpen || timeFromMidnight+lastBarFix&gt;sessionMondayThursdayClose;
     }
   else
     {
      int lastBarFix=sessionCloseAtFridayClose || sessionCloseAtSessionClose ? periodLength : 0;
      skipTrade=timeFromMidnight&lt;sessionFridayOpen || timeFromMidnight+lastBarFix&gt;sessionFridayClose;
     }

   return (skipTrade);
  }</code></pre></div><p>i checked the code how can we change it.</p><p>adding this </p><div class="codebox"><pre><code>const bool sessionIgnoreSunday        = true;
const bool sessionIgnoreMonday        = true;
const bool sessionIgnoreTuesday       = true;
const bool sessionIgnoreWednesday     = true;
const bool sessionIgnoreThursday      = true;
const bool sessionIgnoreFriday        = true;</code></pre></div><p>changed it to</p><div class="codebox"><pre><code>//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool IsOutOfSession()
  {
   MqlDateTime time0; TimeToStruct(Time[0],time0);
   int weekDay           = time0.day_of_week;
   long timeFromMidnight = Time[0]%86400;
   int periodLength      = PeriodSeconds(_Period);
   bool skipTrade        = false;

   if(weekDay==0)
     {
      if(sessionIgnoreSunday) return true;
      int lastBarFix=sessionCloseAtSessionClose ? periodLength : 0;
      skipTrade=timeFromMidnight&lt;sessionSundayOpen || timeFromMidnight+lastBarFix&gt;sessionSundayClose;
     }
   if(weekDay==1)
     {
      if(sessionIgnoreMonday) return true;
      int lastBarFix=sessionCloseAtSessionClose ? periodLength : 0;
      skipTrade=timeFromMidnight&lt;sessionMondayThursdayOpen || timeFromMidnight+lastBarFix&gt;sessionMondayThursdayClose;
     }
   if(weekDay==2)
     {
      if(sessionIgnoreTuesday) return true;
      int lastBarFix=sessionCloseAtSessionClose ? periodLength : 0;
      skipTrade=timeFromMidnight&lt;sessionMondayThursdayOpen || timeFromMidnight+lastBarFix&gt;sessionMondayThursdayClose;
     }
   if(weekDay==3)
     {
      if(sessionIgnoreWednesday) return true;
      int lastBarFix=sessionCloseAtSessionClose ? periodLength : 0;
      skipTrade=timeFromMidnight&lt;sessionMondayThursdayOpen || timeFromMidnight+lastBarFix&gt;sessionMondayThursdayClose;
     }  
   if(weekDay==4)
     {
      if(sessionIgnoreThursday) return true;
      int lastBarFix=sessionCloseAtSessionClose ? periodLength : 0;
      skipTrade=timeFromMidnight&lt;sessionMondayThursdayOpen || timeFromMidnight+lastBarFix&gt;sessionMondayThursdayClose;
     }
   if(weekDay==5)
     {
      if(sessionIgnoreFriday) return true;
      int lastBarFix=sessionCloseAtSessionClose ? periodLength : 0;
      skipTrade=timeFromMidnight&lt;sessionFridayOpen || timeFromMidnight+lastBarFix&gt;sessionFridayClose;
     }                       
   else if(weekDay&lt;5)
     {
      int lastBarFix=sessionCloseAtSessionClose ? periodLength : 0;
      skipTrade=timeFromMidnight&lt;sessionMondayThursdayOpen || timeFromMidnight+lastBarFix&gt;sessionMondayThursdayClose;
     }
   else
     {
      int lastBarFix=sessionCloseAtFridayClose || sessionCloseAtSessionClose ? periodLength : 0;
      skipTrade=timeFromMidnight&lt;sessionFridayOpen || timeFromMidnight+lastBarFix&gt;sessionFridayClose;
     }

   return (skipTrade);
  }</code></pre></div><p>Does it work correctly?</p>]]></content>
			<author>
				<name><![CDATA[Roughey]]></name>
				<uri>https://forexsb.com/forum/user/10939/</uri>
			</author>
			<updated>2019-06-21T12:47:30Z</updated>
			<id>https://forexsb.com/forum/post/56036/#p56036</id>
		</entry>
</feed>
