Channel Indicator
Printed From: BullCharts Forum
Category: BullCharts
Forum Name: BullScript
Forum Discription: Technical discussion related specifically to the BullScript programming language.
URL: http://www.bullcharts.com.au/forum/forum_posts.asp?TID=534
Printed Date: 24 Apr 2025 at 12:53am Software Version: Web Wiz Forums 9.69 - http://www.webwizforums.com
Topic: Channel Indicator
Posted By: peter1
Subject: Channel Indicator
Date Posted: 06 Feb 2009 at 12:37pm
I would like some help in coding an indicator that finds the highest, lowest and midpoint value in the previous calendar year and draws horizontal lines across the following calendar year price chart. This is just the beginning of a set of different timeframe indicators that I can use on any chart of a lower time frame than the indicator.
Does anyone have any ideas to get me started?
[Hi Maximo, PM'd you]
|
Replies:
Posted By: peter1
Date Posted: 08 Feb 2009 at 1:21pm
Thanks for replying Max.
I have found some Metastock code of Jose Silva's that has been a good starting point.
Pivots - Monthly
{ Message allows color selection b4 plotting } message:=Input("Plot on daily charts",0,0,0);
{ Month' start } m:=Month()<>Ref(Month(),-1);
{ Month's OHLC } Om:=ValueWhen(2,m,O); Hm:=ValueWhen(1,m,HighestSince(2,m,H)); Hm:=ValueWhen(1,Hm>0,Hm); Lm:=ValueWhen(1,m,LowestSince(2,m,L)); Lm:=ValueWhen(1,Lm>0,Lm); Cm:=ValueWhen(1,m,Ref(C,-1));
{ Pivot levels } p1:=(Hm+Lm+Cm)/3+Hm-Lm; p2:=(Hm+Lm+Cm)/3*2-Lm; p3:=(Hm+Lm+Cm)/3*2-Hm; p4:=(Hm+Lm+Cm)/3-Hm+Lm;
{ Plot on daily chart } p1;p2;p3;p4
|
Posted By: maximo
Date Posted: 11 Feb 2009 at 2:53pm
That's great Peter!
Good to see some active members on this site discussing some ideas and code.
I used a bit of that code myself in the Trend Pivot indicator. I created the visual
backtest to see how effective entries and exits were. Might as well post it here
so people can see if that strategy might suit them. They can freely cut and paste
my visual backtest code and adapt it to their own indicators etc. to see how
effective they are.
{ Trend Pivot }
[Description ="Averaged Weekly 50% Pivot"]
method := inputma("Method",E);
tp:= Input("Period",6,2);
sigs:= input("Signals 1=on 0=off",1,0,1);
wp:= input("Weekly Pivot 1=on 0=off",0,0,1);
[target =price]
m:= Month()<>Ref(Month(),-1);
p:= ValueWhen(1,DayOfWeek()=1 or m,ref(HHV(H,5)+LLV(L,5),-1)/2);
[linestyle =solid; color=orchid]
if (wp,p,undefined); {weekly pivot point 50%}
[linestyle =solid; color=medium slate blue]
pa:= ma(ref(HHV(H,tp)+LLV(L,tp),-1)/2,tp,method); {pivot averaged}
pa;
SignalLong := if(sigs AND C>=pa AND hist(C,1)>hist(pa,1) AND hist(C,2)<hist(pa,2),1,0);
SignalShort := if(sigs AND C<pa AND hist(C,1)<hist(pa,1) AND hist(C,2)>=hist(pa,2),1,0);
SigLong := if(SignalLong,1,if(SignalShort,0,prev));
SigShort := if(SignalShort,1,if(SignalLong,0,prev));
[linestyle =marker; marker=long; name=""]
If (SigLong and SigLong <> hist(SigLong,1),1,0);
[linestyle =marker; marker=short; name=""]
If (SigShort and SigShort <> hist(SigShort,1),1,0);
[linestyle =pricecolor]
[color =rgb(98,217,98)] {lime green}
If (C>=pa,1,0);
[color =rgb(226,118,118)] {red}
If (C<pa,1,0);
LE:= If(SigLong and SigLong <> hist(SigLong,1), C, prev); { LE price save }
SE:= If(SigShort and SigShort <> hist(SigShort,1), C, prev); { SE price save }
LEp:= If(SigLong and SigLong <> hist(SigLong,1), round(((SE-LE)/SE)*100,2), undefined);
SEp:= If(SigShort and SigShort <> hist(SigShort,1), round(((SE-LE)/LE)*100,2), undefined);
[color =Forest Green]
[linestyle =Text; textalign=Above,Center]
If (LEp>=0, "+" + LEp + "%", undefined);
High ;
[color =Forest Green]
[linestyle =Text; textalign=Below,Center]
If (SEp>0, "+" + SEp + "%", undefined);
Low ;
[color =Crimson]
[linestyle =Text; textalign=Below,Center]
If (SEp<0, " " + SEp + "%", undefined);
Low ;
[color =Crimson]
[linestyle =Text; textalign=Above,Center]
If (LEp<0, " " + LEp + "%", undefined);
High ;
|
|