PureBytes Links
Trading Reference Links
|
Tomasz,
I am trying to find an easy way to code Dimitris’
Powsmooth using UM’s <span
class=SpellE>ABTool DLL (I would like to use a pure AFL method but
cannot seem to find a way to iterate through tickers in a watchlist
via AFL).
How does AB handle arrays when enclosed in a loop? <span
> This does not seem to work:
<font
size=1 color=green face="Courier New">/* WRITE ONCE */<font size=1
color=black face="Courier New">
<span
class=GramE><span
>function<font
size=1 color=black face="Courier New"> ForeignADX( symbol,
period )
<font
size=1 color=black face="Courier New">{
<font
size=1 color=black face="Courier New"> <font
size=1 color=green face="Courier New">/* save original price arrays */<font
size=1 color=black face="Courier New">
<font
size=1 color=black face="Courier New"> SC
= C;
<font
size=1 color=black face="Courier New"> SO
= O;
<font
size=1 color=black face="Courier New"> SH
= H;
<font
size=1 color=black face="Courier New"> SL
= L;
<font
size=1 color=black face="Courier New">
<font
size=1 color=black face="Courier New"> <span
>C = <font
size=1 color=blue face="Courier New">Foreign<font size=1 color=black
face="Courier New">(<span
> symbol, <font
size=1 color=fuchsia face="Courier New">"C"<font
size=1 color=black face="Courier New"> );
<font
size=1 color=black face="Courier New"> <span
>H = <font
size=1 color=blue face="Courier New">Foreign<font size=1 color=black
face="Courier New">(<span
> symbol, <font
size=1 color=fuchsia face="Courier New">"H"<font
size=1 color=black face="Courier New"> );
<font
size=1 color=black face="Courier New"> <span
>L = <font
size=1 color=blue face="Courier New">Foreign<font size=1 color=black
face="Courier New">(<span
> symbol, <font
size=1 color=fuchsia face="Courier New">"L"<font
size=1 color=black face="Courier New"> );
<font
size=1 color=black face="Courier New"> <span
>O = <font
size=1 color=blue face="Courier New">Foreign<font size=1 color=black
face="Courier New">(<span
> symbol, <font
size=1 color=fuchsia face="Courier New">"O"<font
size=1 color=black face="Courier New"> );
<font
size=1 color=black face="Courier New">
<font
size=1 color=black face="Courier New"> Result
= <span
>ADX<font
size=1 color=black face="Courier New">(<font size=1 color=black
face="Courier New"> period ); <font size=1 color=green
face="Courier New">// REPLACE THIS BY ANY AFL FUNCTION<font size=1
color=black face="Courier New">
<font
size=1 color=black face="Courier New">
<font
size=1 color=black face="Courier New"> <font
size=1 color=green face="Courier New">/* restore original arrays */<font
size=1 color=black face="Courier New">
<font
size=1 color=black face="Courier New"> <span
>C = SC;
<font
size=1 color=black face="Courier New"> <span
>O = SO;
<font
size=1 color=black face="Courier New"> <span
>H = SH;
<font
size=1 color=black face="Courier New"> <span
>L = SL;
<font
size=1 color=black face="Courier New">
<span
class=GramE><span
>return<font
size=1 color=black face="Courier New"> Result;
<font
size=1 color=black face="Courier New">}
<font
size=1 color=black face="Courier New">
<span
class=SpellE><span
>wl<font
size=1 color=black face="Courier New"> = <font size=1 color=fuchsia
face="Courier New">0<span
>;<span
> <font size=1 color=green
face="Courier New">// put your watchlist number (0..63)
here; it should contain some tickers<font size=1 color=black
face="Courier New">
<font
size=1 color=black face="Courier New"><span
>
<span
>// (my WL 1 contains
the 100 Nasdaq100 tickers)<font size=1 color=black
face="Courier New">
<font
size=1 color=black face="Courier New">
<span
class=SpellE><span
>xxABtoolInit<span
class=GramE>(<font
size=1 color=black face="Courier New">);
<font
size=1 color=black face="Courier New">Filter<font
size=1 color=black face="Courier New"> = <font size=1 color=fuchsia
face="Courier New">1<span
>;
<span
class=SpellE><span
>xtickercount<font
size=1 color=black face="Courier New"> = <font size=1
color=blue face="Courier New">xxTickerCount<font size=1 color=black
face="Courier New">(wl);
<font
size=1 color=black face="Courier New">
<span
class=GramE>ticker<font
size=1 color=black face="Courier New"> = <font size=1
color=blue face="Courier New">xxTickerFirst<font size=1 color=black
face="Courier New">(wl);
<span
class=SpellE><span
>MeanADX<font
size=1 color=black face="Courier New"> = <font size=1 color=fuchsia
face="Courier New">0<span
>;
<span
class=GramE><span
>while<font
size=1 color=black face="Courier New">(<font size=1 color=black
face="Courier New">ticker != <font size=1 color=fuchsia
face="Courier New">""<font size=1 color=black
face="Courier New">)
<font
size=1 color=black face="Courier New">{
<font
size=1 color=black face="Courier New"> <span
class=SpellE>currADX = ForeignADX(
ticker, <span
>14<font
size=1 color=black face="Courier New"> );
<font
size=1 color=green face="Courier New">// ^
should hold ForeignADX Array<font
size=1 color=black face="Courier New">
<font
size=1 color=black face="Courier New"> <span
class=GramE><span
>for<font
size=1 color=black face="Courier New"> (i=<font
size=1 color=fuchsia face="Courier New">1<font size=1
color=black face="Courier New">;i<BarCount;i++)
<font
size=1 color=black face="Courier New"> {<span
>
<font
size=1 color=black face="Courier New"> <span
class=SpellE>MeanADX[i] = MeanADX[<span
class=SpellE>i] + currADX[i];
<font
size=1 color=black face="Courier New"> }
<font
size=1 color=black face="Courier New">
<font
size=1 color=black face="Courier New"> <span
class=GramE>ticker = <font size=1
color=blue face="Courier New">xxTickerNext<font size=1 color=black
face="Courier New">(wl);
<font
size=1 color=black face="Courier New">}
<font
size=1 color=black face="Courier New">
<span
class=SpellE><span
>xxABtoolInit<span
class=GramE>(<font
size=1 color=black face="Courier New">); <font
size=1 color=green face="Courier New">//cleanup<font size=1 color=black
face="Courier New">
<font
size=1 color=black face="Courier New">
<span
class=SpellE><span
>AddColumn<span
class=GramE>(<span
class=SpellE><span
>MeanADX,<font
size=1 color=fuchsia face="Courier New">"MeanADX<font
size=1 color=fuchsia face="Courier New">"<font size=1
color=black face="Courier New">);
<font
size=1 color=black face="Courier New">
<font
size=1 color=green face="Courier New">
Thanks in advance,
Peter
-----Original Message-----
From: DIMITRIS TSOKAKIS [mailto:TSOKAKIS@xxxxxxxxx]
Sent: Monday, May
12, 2003 2:39 AM
To: amibroker@xxxxxxxxxxxxxxx
Subject: [amibroker] Re: The use of the Powsmooth
Peter,
thank you for the unexpected [because of time] reply.
Sleep with the idea and talk again "tomorrow".
It is 09.30 in Athens
now, 32 Celsius and the summer is already at
the corner.
Dimitris Tsokakis
--- In amibroker@xxxxxxxxxxxxxxx, "bluesinvestor"
<investor@xxxx>
wrote:
> Dimitris,
>
> Unfortunately it is late here and I cannot come with a simple
solution
> to 'step' through foreign tickers to get the ADX variable.<span
> We would
> have to list all the tickers involved.
>
> If there is a way (which I do not know or cannot think of at the
moment)
> then the situation would be easy to solve.
>
> Maybe someone will have a suggestion or solution by morning.
>
> Regards,
> Peter
>
> -----Original Message-----
> From: DIMITRIS TSOKAKIS [mailto:TSOKAKIS@xxxx]
> Sent: Monday,
May 12, 2003 1:59 AM
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: [amibroker] Re: The use of the Powsmooth
>
> Peter,
> to materialize this idea
> http://groups.yahoo.com/group/amibroker/message/40198
> in N100 database we need to write 100 lines with
> ADX0=
> ADX1=
> ADX2=
> ...
> ADX99=
> MeanADX=(ADX0+ADX1+ADX2+...+ADX99)/100;
> Since you swim better in the iterations world, is there a more
> elegant way to do it [through stocknum perhaps...]
> Of course, even if we take it as is, the advantage is great,
> especially for intraday use.
> I suppose we make a STEP here.
> Dimitris Tsokakis
> --- In amibroker@xxxxxxxxxxxxxxx, "bluesinvestor"
<investor@xxxx>
> wrote:
> > Dimitris,
> >
> > Without the _javascript_:
> >
> > /*PowSmooth and an application to Dratio*/
> > dratio=DEMA(1000*(H-L)/(H+L),20);
> >
> > for(i=2;i<BarCount;i++)
> > {
> ><span
>
t0[i]=(dratio[i]*dratio[i-1]*dratio[i-2])^(1/3);
> ><span
>
s0[i]=(dratio[i]*dratio[i-1])^(1/2);
> > }
> > PowSmooth=(s0+t0)/2;
> >
> > Filter=1;
> > AddColumn(dratio,"DRATIO");
> > AddColumn(s0,"SQRT");
> > AddColumn(t0,"THIRD");
> > AddColumn(Powsmooth,"PowSmooth");
> > Plot(dratio,"dratio",1,8);
> > Plot(PowSmooth,"PowSmooth",7,1);
> >
> > RRR=Powsmooth;// Replace this line with RRR=dratio; to see
the
usual
> > Dratioresults
> > D1=35;
> > F1=RRR>=D1;F2=RRR<=D1;
> > Sell=F2;Buy=F1;Buy=ExRem(Buy,Sell);Sell=ExRem(Sell,Buy);
> > Short=Sell;Cover=Buy;Short=ExRem(Short,Cover);Cover=ExRem
> (Cover,Short);
> >
> > Regards,
> > Peter
> >
> > -----Original Message-----
> > From: Dimitris Tsokakis [mailto:TSOKAKIS@xxxx]
> > Sent: Saturday,
May 10, 2003 7:19 AM
> > To: amibroker@xxxxxxxxxxxxxxx
> > Subject: [amibroker] The use of the Powsmooth
> >
> > The basic property of the Powsmooth
> > http://groups.yahoo.com/group/amibroker/message/40077
> > is to filter out fast zigzags, passing through them, without
> introducing
> > important lags.
> > When we use a cross level trading system, many times we loose
money
> > because of oscillation of our indicator around the
> > critical cross level.
> > If our cross level is "good", then we should expect
[and we shall
> > see...] strong ask and bid when we are close to this level.
> > The result is the well known repeated whipsaws, which usually
> annihilate
> > our profits.
> > Unfortunately, the solution is not to smooth our nervous
indicator,
> it
> > will usually loose its charm to catch quickly the market
changes.
> > In this case [traders who use fast indicators will understand
very
> well
> > this syndrom...] the PowSmooth may offer great assistance.
> > Its smart curve will gently pass between the accumulated
ziggy
> points,
> > avoid cascade entries/exits and substantially increase our
profits.
> > See a characteristic example in the att. gif.
> > In the first case, the dratio gives 8 trades in two months,
with
a
> final
> > +13%, oscillating around the critical level D=35.
> > The PowSmooth, for the same ^NDX period, gives two clear
trades
and
> > maximizes the profits to +20%.
> > [settings buy/sell/short/cover at +1open, commission 0.5%,
stops
> > disabled]
> > The level D=35 is critical for the market, the D_ratio
frequntly
> > oscillates up and down, until the market takes the decision
to go
> higher
> > or lower.
> > The usual D_ratio system gives for the whole market nice
profits,
> +340%
> > since Jan2000.
> > The PowSmooth D_datio makes the difference : +940% for the
same
> period
> > and settings.
> > For ^NDX we could nearly double the profits:
> > Usual D_ratio : +550%, 37trades/28winners/9losers
> > PowSmooth : +1165%, 27trades/23winners/4losers.
> > A +550% is not that bad, a +1165% is much better.
> > For CSCO, the signal generator of this transcendental system
[since
> we
> > "borrow" CSCO data for the basic curve] the
situation needs
> > no further comments : the comparison is +370% vs +2000%.
> > If you use fast and ziggy indicators and Cross level systems,
take a
> > look at the PowSmooth, it may make you smile.
> > Dimitris Tsokakis
> > I use the trancendental CSCO D_ratio code
> > /*Powsmooth CSCO D_ratio, written and used by D.Tsokakis,
Sept
> 2002*/
> >
H=Foreign("CSCO","H");L=Foreign("CSCO","L");
> > dratio=DEMA(1000*(H-L)/(H+L),20);
> > EnableScript("jscript");
> > <%
> > dratio = VBArray( AFL( "dratio" ) ).toArray();
> > s=new Array();t=new Array();
> > s[0]=0;t[0]=0;
> > for(i=1;i<dratio.length;i++)
> > {
> > {t[i]=Math.pow((dratio[i]*dratio[i-1]*dratio[i-2]),1/3);}
> > {s[i]=Math.pow((dratio[i]*dratio[i-1]),1/2);}
> > }
> > AFL.Var("s0") =s ;
> > AFL.Var("t0")=t;
> > %>
> > Powsmooth=(s0+t0)/2;
> > RRR=Powsmooth;// Replace this line with RRR=dratio; to see
the
usual
> > Dratioresults
> > D1=35;
> > F1=RRR>=D1;F2=RRR<=D1;
> > Sell=F2;Buy=F1;Buy=ExRem(Buy,Sell);Sell=ExRem(Sell,Buy);
> > Short=Sell;Cover=Buy;Short=ExRem(Short,Cover);Cover=ExRem
> (Cover,Short);
> >
> >
> >
> >
> > Yahoo! Groups Sponsor
> >
> >
> >
>
<http://rd.yahoo.com/M=251812.3170658.4537139.1261774/D=egroupweb/S=17
> 05
> > 632198:HM/A=1564415/R=0/*http:/www.netflix.com/Default?
> mqso=60164784&par
> > tid=3170658>
> >
> >
> > <http://us.adserver.yahoo.com/l?
> M=251812.3170658.4537139.1261774/D=egrou
> > pmail/S=:HM/A=1564415/rand=998789952>
> >
> > Send BUG REPORTS to bugs@xxxx
> > Send SUGGESTIONS to suggest@xxxx
> > -----------------------------------------
> > 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 the Yahoo!
> > <http://docs.yahoo.com/info/terms/><span
> Terms of Service.
>
>
>
> Send BUG REPORTS to bugs@xxxx
> Send SUGGESTIONS to suggest@xxxx
> -----------------------------------------
> 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/
------------------------ Yahoo! Groups Sponsor
---------------------~-->
Rent DVDs from home.
Over 14,500 titles. Free Shipping
& No Late Fees. Try Netflix for FREE!
http://us.click.yahoo.com/BVVfoB/hP.FAA/uetFAA/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/
Yahoo! Groups Sponsor
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 the Yahoo! Terms of Service.
|