[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Higher timeframe indicator on a lower timeframe chart



PureBytes Links

Trading Reference Links

Hi ,

   You can actually code in Easylanguage this. But
this is little bit restrictive. I an using similar
concept for backtesting (not in indicator ) where on 4
min chart I want to refer to the details of last 1
hourly bar.

Regards,

Sudhir

--- Bob Fulks <bfulks@xxxxxxxxxxxx> wrote:

> At 04:45 PM 10/5/2004, Abhijit Dey wrote:
> 
> >I was actually wondering if there's a generic way
> to modify indicators (ema, 
> >cci, you name it) to apply higher time frames on
> smaller time frames like a 
> >1 minute chart. And I doubt there's a easy way to
> do so. Sure, I can code my 
> >own version of ema and get what I want, but it's
> not easily portable to any 
> >other indicator. I have to code all of them one by
> one. Fortunately, I am 
> >not using many indicators.
> 
> At 05:43 PM 10/5/2004, Gary Fritz wrote:
> 
> >It would be nice if there was a simple way to use
> existing 
> >indicator code in this new way, e.g. the way you
> can use existing 
> >indicators to refer to other data streams by saying
> "adx(20) of 
> >data2" or whatever.  But you can't.  If you need
> it, you have to 
> >rewrite it.
> 
> There actually is a generic way but it only works if
> the functions you call 
> are "simple" (not "series") functions. Simple
> functions are executed only 
> when called while series functions are executed on
> every bar of data1 
> whether or not they are called on each bar. Here is
> the idea (untested but 
> probably close to OK):
> 
> Var: Dec(5), dBar(FALSE), BarCount(0), dOpen(0), 
>      dHigh(0), dLow(0), dClose(0), Value(0);
> 
> dBar = FALSE;
> 
> { count bars in the day }
> if Date <> Date[1] 
>    then BarCount = 1 
>    else BarCount = BarCount + 1;
> 
> { find OHLC of decimated bar }
> if dBar[1] then begin
>    dOpen = Open;
>    dHigh = High;
>    dLow = Low;
> end else begin
>    if High > dHigh then dHigh = High;
>    if Low  < dLow  then dLow  = Low;
> end;
> dClose = Close;
> 
> { evaluate the simple function on each decimated bar
> }
> if Mod(BarCount, Dec) = 0 then begin
>    dBar = TRUE;
>    Value = <simplefunction>(dOpen, dHigh, dLow,
> dClose);  
> end;
> 
> On 1-minute bars, the simple function would execute
> on each fifth bar, 
> corresponding to 5-minute bars.
> 
> It is usually possible to rewrite functions as
> simple functions but it tends 
> to be convoluted since you cannot refer to a past
> value of a variable as in 
> "Value1[5]".
> 
> You can usually do it using arrays to store the past
> values if you need 
> them. If you need only one or two past values you
> can save them as extra 
> variables as in: 
> 
> L2Value = L1Value;
> L1Value = Value;
> Value = ....;
> Change = Value - L1Value;
> 
> Hope this helps...
> 
> Bob Fulks
> 
> 
> 
> 
>