You almost had it right. I tested the code below and works but note I
changed the period to 10 bars from 200 so I could test it on my hour
chart.
You MUST display this indicator in an hour chart. OR you have to do
the timeframeset/restore/expand for the inHourly EMA. Then you can
only use it on an hour or shorter time frame chart. I put the pieces
together with their timeframe.
There were two errors.
1. You can't timeframeexpand the short term EMA because you never
calculated it in a settimeframe.
2. The lone timeframerestore at the bottom should not be used. You
calculated the short term EMA on an hour chart. There was no need to
expand it or restore it.
Try it with 10 bars then change it back to 200 bars. If you get an
Empty error you don't have enough data in that time frame.
Cheers,
Barry
TimeFrameSet(inDaily);
LongTermEMA = EMA(Close, 10);
TimeFrameRestore();
WriteIf(1,"Daily EMA","");
WriteVal(TimeFrameExpand(LongTermEMA, inDaily));
TimeFrameSet(inHourly * 4);
MediumTermEMA = EMA(Close, 10);
TimeFrameRestore();
WriteIf(1,"4 Hourly EMA","");
WriteVal(TimeFrameExpand(MediumTermEMA, inHourly * 4));
ShortTermEMA = EMA(Close, 10);
WriteIf(1,"Hourly EMA","");
WriteVal(ShortTermEMA);
You may also be able to use
printf("Daily EMA = " + WriteVal(TimeFrameExpand(LongTermEMA,
inDaily)));
printf("\n4 Hourly EMA = " + WriteVal(TimeFrameExpand(MediumTermEMA,
inHourly * 4)));
printf("Hourly EMA = " + WriteVal(ShortTermEMA));
--- In [email protected], Chris Grafham <[EMAIL PROTECTED]> wrote:
>
>
> I have similar time frame code that is not working as
expected...for
> a commentary run against an hourly chart...
>
> TimeFrameSet(inDaily);
> LongTermEMA = EMA(Close, 200);
> TimeFrameRestore();
>
>
> TimeFrameSet(inHourly * 4);
> MediumTermEMA = EMA(Close, 200);
>
> TimeFrameRestore();
>
>
>
>
> ShortTermEMA = EMA(Close, 200);
>
> WriteIf(1,"Daily EMA","");
> WriteVal(TimeFrameExpand(LongTermEMA, inDaily));
>
> WriteIf(1,"4 Hourly EMA","");
> WriteVal(TimeFrameExpand(MediumTermEMA, inHourly * 4));
>
> WriteIf(1,"Hourly EMA","");
> WriteVal(TimeFrameExpand(ShortTermEMA, inHourly));
> TimeFrameRestore();
>
>
>
> The output is below (same values for all EMA's).
>
> Daily EMA
> 1.444
> 4 Hourly EMA
> 1.444
> Hourly EMA
> 1.444
>
>
>
>
> On 15 Jul 2008, at 11:49, tayamaan wrote:
>
> > Hi, you will need to restore time-frame, after that
timeframeExpand
> > and lastly plotting.
> >
> > Cheers,
> >
> > Adrian
> >
> > --- In [email protected], "bilbo0211" <wjdandreta@> wrote:
> > >
> > > I am trying to plot a daily, weekly and monthly indicator (like
> > > Bollinger Bands) on one chart e.g., daily.
> > >
> > > Sample code:
> > >
> > > TimeFrameSet( inWeekly );
> > >
> > > P = ParamField("Price field",-1);
> > > Periods = Param("Periods", 15, 2, 100, 1 );
> > > Width = Param("Width", 2, 0, 10, 0.05 );
> > > Color = ParamColor("Color", colorCycle );
> > > Style = ParamStyle("Style");
> > > Plot( TimeFrameExpand(BBandTop( P, Periods, Width ),inWeekly),
> > > "wBBTop" + _PARAM_VALUES(), Color, Style );
> > > Plot( TimeFrameExpand(BBandBot( P, Periods, Width ),inWeekly),
> > > "wBBBot" + _PARAM_VALUES(), Color, Style );
> > >
> > > This plots something on the daily chart but it is clearly not
the
> > > weekly BB I see on the weekly chart!
> > >
> > > Any suggestions on how to achieve my objective?
> > >
> > > Bill
> > >
> >
> >
> >
>