Stock Portfolio Organizer

The ultimate porfolio management solution.

Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
For Portfolio Manager Click Here

WiseTrader Toolbox

#1 Selling Amibroker Plugin featuring:

Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
Find Out More Here

Fibs tool using range markers for Amibroker (AFL)

Copy & Paste Friendly
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
/*//////////////////
// Amibroker AFL Code by E.M.Pottasch, Jan 2014
// Using Range Markers to display Fibonacci Levels
// 1) Set start range Marker using F12 => go with mouse/cursor to starting peak/trough, click on chart, then press F12
// 2) Set end range market using SHIFT-F12 => go with mouse/cursor to ending peak/trough, click on chart, then press SHIFT-F12
// 3) Clear, remove range markers and remove Fibs using CTRL-F12
*///////////////////
 
 
 
//////////////////// BEGIN PARAMETER DEFINITIONS /////////////////////
nlev=Param("Number of Fib Levels to display",10,0,12,1);
tog1=ParamToggle("Show Primary Fib Levels","Off|On",1);
tog2=ParamToggle("Show Secondary Fib Levels","Off|On",1);
//////////////////// END PARAMETER DEFINITIONS /////////////////////
 
 
 
//////////////////// BEGIN COLOR DEFINITIONS /////////////////////
fibLevelUpRetraceColor=ColorRGB(200,0,0);
fibLevelDnRetraceColor=ColorRGB(0,200,0);
primaryValueLabelColor=ColorRGB(160,160,160);
secondaryValueLabelColor=ColorRGB(80,80,80);
chartBackgroundColor=ColorRGB(0,0,0);
//////////////////// END COLOR DEFINITIONS /////////////////////
 
 
 
//////////////////// BEGIN CHART DISPLAY /////////////////////
SetChartOptions(0, chartShowDates);SetChartBkColor(chartBackgroundColor);
SetBarFillColor(IIf(C>O,ColorRGB(0,75,0),IIf(C<=O,ColorRGB(75,0,0),colorLightGrey)));
Plot(C,"\nPrice",IIf(C>O,ColorRGB(0,255,0),IIf(C<=O,ColorRGB(255,0,0),colorLightGrey)),64,Null,Null,0,0,0);
//////////////////// END CHART DISPLAY /////////////////////
 
 
 
//////////////////// BEGIN FIBONACCI LEVEL DISPLAY /////////////////////
bi=BarIndex();bvi=BeginValue(bi);evi=EndValue(bi);
rng=Flip(bvi==bi,evi==bi);
//"Primary numbers: 0.618, 0.786, 1.27 AND 1.618" =>levType=1
//"Secondary numbers: 0.382, 0.50, 1.00, 2.00, 2.24, 2.618 AND 3.14" =>levType=2
fibLevel=0;levType=0;
fibLevel[0]=0;levType[0]=3;
fibLevel[1]=0.382;levType[1]=2;
fibLevel[2]=0.5;levType[2]=2;
fibLevel[3]=0.618;levType[3]=1;
fibLevel[4]=0.786;levType[4]=1;
fibLevel[5]=1;levType[5]=2;
fibLevel[6]=1.272;levType[6]=1;
fibLevel[7]=1.618;levType[7]=1;
fibLevel[8]=2;levType[8]=2;
fibLevel[9]=2.236;levType[9]=2;
fibLevel[10]=2.618;levType[10]=2;
fibLevel[11]=3.14;levType[11]=2;
 
bvl=BeginValue(L);bvh=BeginValue(H);
evl=EndValue(L);evh=EndValue(H);rr=EndValue(bi);
 
idx=LastValue(rr);
rridx=IIf(bi>=idx,1,0);
 
if(bvl>evl)
{
    sit=1;//peak first
    rr=ValueWhen(bi==BeginValue(bi),H);
    ss=ValueWhen(bi==EndValue(bi),L);
    rr1=IIf(ss,rr,Null);ss1=ss;
}
else
{
    sit=2;//trough first
    ss=ValueWhen(bi==BeginValue(bi),L);
    rr=ValueWhen(bi==EndValue(bi),H);
    ss1=IIf(rr,ss,Null);rr1=rr;
}
 
if(bvi!=0 AND evi!=(BarCount-1))
{
rr2=IIf(rng,LastValue(rr),Null);
ss2=IIf(rng,LastValue(ss),Null);
Plot(rr2,"",colorRed,1);
Plot(ss2,"",colorGreen,1);
if(sit==1) Plot(LineArray(bvi,H[bvi],evi,L[evi],0),"",colorBlue,styleDashed);
if(sit==2) Plot(LineArray(bvi,L[bvi],evi,H[evi],0),"",colorBlue,styleDashed);
delta=abs(rr-ss);
fvb=Status("firstvisiblebar");
for(i=0;i<nlev;i++)
{
    if(sit==1)
    {
        if(tog1 AND levType[i]==1)//primary level
        {
            ll=ss1+delta*fibLevel[i];
            Plot(IIf(ss1,ll,Null),"",fibLevelUpRetraceColor,1);
            str=NumToStr(fibLevel[i]*100);str=StrMid(str,0,StrFind(str,".")+1);
            PlotText(""+str+"%",BarCount,LastValue(ll),primaryValueLabelColor);
        }
        if(tog2 AND levType[i]==2)//secondary level
        {
            ll=ss1+delta*fibLevel[i];
            Plot(IIf(ss1,ll,Null),"",fibLevelUpRetraceColor,styleDashed);
            str=NumToStr(fibLevel[i]*100);str=StrMid(str,0,StrFind(str,".")+1);
            PlotText(""+str+"%",BarCount,LastValue(ll),secondaryValueLabelColor);
        }  
        if(levType[i]==3)//basic level
        {
            ll=ss1+delta*fibLevel[i];
            Plot(IIf(ss1,ll,Null),"",fibLevelUpRetraceColor,styleThick);
            str=NumToStr(fibLevel[i]*100);str=StrMid(str,0,StrFind(str,".")+1);
            PlotText(""+str+"%",BarCount,LastValue(ll),primaryValueLabelColor);
        }      
    }
    else if(sit==2)
    {
        if(tog1 AND levType[i]==1)//primary
        {  
            ll=rr1-delta*fibLevel[i];
            Plot(IIf(rr1,ll,Null),"",fibLevelDnRetraceColor,1);
            str=NumToStr(fibLevel[i]*100);str=StrMid(str,0,StrFind(str,".")+1);
            PlotText(""+str+"%",BarCount,LastValue(ll),primaryValueLabelColor);
        }
        if(tog2 AND levType[i]==2)//secondary
        {  
            ll=rr1-delta*fibLevel[i];
            Plot(IIf(rr1,ll,Null),"",fibLevelDnRetraceColor,styleDashed);
            str=NumToStr(fibLevel[i]*100);str=StrMid(str,0,StrFind(str,".")+1);
            PlotText(""+str+"%",BarCount,LastValue(ll),secondaryValueLabelColor);
        }  
        if(levType[i]==3)//basic
        {  
            ll=rr1-delta*fibLevel[i];
            Plot(IIf(rr1,ll,Null),"",fibLevelDnRetraceColor,styleThick);
            str=NumToStr(fibLevel[i]*100);str=StrMid(str,0,StrFind(str,".")+1);
            PlotText(""+str+"%",BarCount,LastValue(ll),primaryValueLabelColor);
        }      
    }
}
}
//////////////////// END FIBONACCI LEVEL DISPLAY /////////////////////
Back