Maybe I did not explain this well enough. I define day as daytime = TimeNum() >= 093000 AND TimeNum() <= 161500; Then I want to do an MA on only day time bars or not-day time bars. This will produce voids in the arrays. For instance there will be 27 15 minute day time bars and 69 15 minute off hours bars. If I do a simple MA(V, 50) it will average the last 50 bars regardless of whether they are day or night time bars. The data I average will span day and night volume numbers giving an inaccurate MA. I would have to use a loop and use the value of the last 50 day only or night only bars. I can't figure out how to do that.
The code would be a lot easier in a DLL since I could have two arrays and store the correct data contiguously in one of two arrays. But I don't know how that would match up with AFL arrays or even if would have to. I have not written a DLL but I know MS C++ foundation classes. Anyway, if it is a simple matter in AFL it escapes me how to manage the arrays. Maybe I am making it harder than it needs to be. Thanks, Barry --- In [email protected], Keith McCombs <kmcco...@...> wrote: > > Barry -- > Calculating EMAs and MAs should be possible, and of only intermediate > difficulty, using AFL. EMAs will be a bit easier than MAs. The reason > being that calculating an EMA requires only 2 pieces of data, previous > bar's EMA and this bar's data. Of course, you will have to construct > your own EMA because you will need to stop calculating each EMA at the > end of its time period and then continue when its time period begins again. > > As for MAs, they really require only 3 pieces of data, previous bars MA, > this bars data, and data of one bar, P bars ago (in the correct time > period), where P is MA period. > > One problem you may run into, especially with off hours data, is what to > do if volume is zero. Is a bar created in this case? If not, what are > you going to do about it? > > BTW, AB&IB seems to create zero volume bars when backfills are complete, > though 180days are problematic. Some other data providers, PItrading > for example, just leave zero volume bars out. > > -- Keith > > > > On 2/25/2010 12:06, Barry wrote: > > > > I am trying to create two moving averages, one for normal trading > > hours volume and the other for the off hours volume. When futures are > > trading during the day the volume is much higher than off hours. Using > > an MA of say 50 bars gives an incorrect look at the volume until 50 > > bars into the new time period. However, if one were using hour or 15 > > minute charts the MA could span days. It would be clearer or more > > accurate if one could only use the applicable volume when calculating > > the MA for normal hours vs off hours trading. > > > > Has this been done in AFL? Can it be done in AFL? Is there an AFL > > function that can separate the day and night session data? Can it be > > done in the context of AFL or would one have to use a DLL to build > > separate arrays that only contain values from the two time periods? > > > > I have tried a number of methods in AFL but none work correctly. > > Managing the arrays in AFL and trying to ignore spans of bars is > > blowing my mind. > > > > Thanks, > > Barry > > > > >
