Perhaps I've answered my own question. Check this out.
Set up another variable:
TradeDays = Day() >= 1 and Day() <=5;

Then I use this in the moving average??? But where?

 RngMinAvg = MA(ValueWhen(TradeDays,DlyRngMin) , 10);

or

 RngMinAvg = MA(DlyRngMin , ValueWhen(TradeDays,10));

I don't know, I've given up coding for today and haven't plugged these in to 
test them. I don't think it would work.


--- In [email protected], "Pete" <dryhe...@...> wrote:
>
> Ok, here's the problem, The program skews the calculation when you try to 
> take intra-day Futures data and compress to daily. the compression into daily 
> tweaks the whole thing up because of Sunday's and holidays. Yes, the program 
> is taking any trading which occurs on Sunday night and holidays and including 
> this in the range. I need to exclude non-trade days from the moving average 
> range and every attempt to do so has found me yelling and screaming at the 
> computer.
> 
> So my question is this. How to calculate the daily moving average of say, the 
> lessor of (H-O) or (O-L), and use only the market trading hours, excluding 
> Sundays and Holidays. My attempt below was to use the TimeOpen and TimeClose 
> variables to restrict the O,H,L,C values I picked up along the way. This 
> indeed works but when I try to create a moving average on a daily time frame 
> it includes Sundays and Holidays in the 'Range' value of the moving average 
> argument even though the trades occur outside of trading hours (Sunday) or do 
> not trade the entire day (holidays).
> 
> TimeOpen = 093000;
> 
> TimeClose = 160000;
> CurBarTime = TimeNum();
> //Determine the value of the market open. Initial setting is for
> //9:30 AM to match US Market Open. Adjust as need for your market
> MrktOpen = ValueWhen(CurBarTime  == TimeOpen , Open);
> //Determine the highest high for each day's trading.
> //Adjust time as needed for your market.
> DlyHigh = HighestSince(CurBarTime  == TimeOpen , High);
> //Take a snapshot value of the day's high at the time of market 
> //close. Intial setting is 4:00 pm to match US Market Close. 
> //Adjust as needed for your market.
> DlyHighest = ValueWhen(CurBarTime  == TimeClose , DlyHigh);
> printf("DlyH: " +DlyHighest +"\n");//////////////////////////////
> //Do the same for the lowest value of the trading day.
> //Adjust time as needed for your market.
> DlyLow = LowestSince(CurBarTime  == TimeOpen , Low);
> DlyLowest = ValueWhen(CurBarTime  == TimeClose , DlyLow);
> printf("DlyL: " +DlyLowest +"\n");
> //determine the market closing price
> DlyClose = ValueWhen(CurBarTime  == TimeClose , C);
> printf("DlyC: "+DlyClose +"\n");//////////////////////////////
> //Now calculate the min range value using Open, Low and High
> //variables calculated above
> RngMin = Min(DlyHighest - MrktOpen, MrktOpen - DlyLowest);
> //Compres this to a daily time frame in order to capture
> //the final value of the Range Min for each trading day
> DlyRngMin = TimeFrameCompress(RngMin, inDaily, compressLast);
> //Use the compressed variable to calculate a 10 day average\
> RngMinAvg = MA(DlyRngMin , 10);
>


Reply via email to