PureBytes Links
Trading Reference Links
|
Tomasz -
Some time back someone posted an excelent piece of trailing stop
code "ATR BASED STOPS with JScript" which I have included in my
systems. In the tests I did, this code gave better results than the
in-built function, so I kept using it rather than re-coding using
the applystop function.
My default for graph display in preferences is Logarithmic, but I
dont actually draw the "price" indicator on the chart; I use plot
(c,"Name of System: close=",colorblack,stylebar); This means I have
to tick the box "logarithmnic" in the gridlines part of the
indicator window to get a logarithmic display.
When the longstop and shortstop (the results of the java functions)
are plotted either side of the price, the graph is crammed right at
the top of the page and the scale starts from zero instead of some
value near the minimum of the price range. As the graphs before were
normal, I hadnt noticed, but Ive just tested a few codes and each
time I use the java trailing stop code the graph re-sets itself to
start from zero in both normal and logarithmic mode (as set in
indicator window, NOT preferences).
When I edit out the plot(longstop,"etc........) and change the
indicator window back to normal (untick box) the graph is still
plotted from zero, but it looks fine. Just in log mode it squashes
up at the top of the page and becomes unusable.
Is this normal? Am I doing something wrong somewhere or is it a
quirk of the program?
Heres the code for the stops, but I guess you already know it....
//********** ATR BASED STOPS with JScript *********//
EnableScript("jscript");
//first the raw stop functions are defined based on ATR-depending
distance to the close price
range = multiplier*ATR(Len);
rawlongstop=C-range; //raw long stop
rawshortstop=C+range; //raw short stop
//two JScript functions for the stops are defined
<%
//function for the longstop
function f_longstop(rawstop,baseprice,Length){
//"importing" the AFL functions into JScript
Len = AFL(Length);
Ls=VBArray(AFL(rawstop)).toArray();
bp = VBArray(AFL(baseprice)).toArray();
//the stop is calculated in the loop
for(i=Len+1;i<Ls.length;i++){
if(bp[i]>=Ls[i-1]){Ls[i]=Math.max(Ls[i],Ls[i-1]);}
}
return Ls;
}
//function for the shortstop
function f_shortstop(rawstop,baseprice,Length){
//"importing" the AFL functions into JScript
Len = AFL(Length);
Ss=VBArray(AFL(rawstop)).toArray();
bp = VBArray(AFL(baseprice)).toArray();
//the stop is calculated in the loop
for(i=Len+1;i<Ss.length;i++){
if(bp[i]<=Ss[i-1]){Ss[i]=Math.min(Ss[i],Ss[i-1]);}
}
return Ss;
}
%>
//*********** End of JScript *****************//
Andy
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Make Money Online Auctions! Make $500.00 or We Will Give You Thirty Dollars for Trying!
http://us.click.yahoo.com/yMx78A/fNtFAA/i5gGAA/GHeqlB/TM
---------------------------------------------------------------------~->
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
|