PureBytes Links
Trading Reference Links
|
Anthony, I don't know if I am at the stage of being able to convert it to AFL yet but here is what it looks like with 5% equity initial positions and the defined stops in the code.
The list is a random sampling of securities between lg cap small cap etc. The data runs from 01 to Nov 04.
Regards,
Duke Jones, CMT
-------Original Message-------
> From: "Anthony Faragasso" <ajf1111@xxxxxxxx>
> Subject: Re: [amibroker] Re: OT: convert Wealth lab fromula to Amibroker
> Sent: 12 Mar 2005 18:49:40
>
> Hello Jim,
>
> It is not a joke, I am not familiar with Wealth lab coding....
>
> This formula is supposed to represent Jesse Livermore's trading rules / style....
>
> I was / am interested in testing it...
>
> Thanks
> Anthony
>
> ----- Original Message -----
> FROM: jnk1997
> TO: amibroker@xxxxxxxxxxxxxxx
> SENT: Saturday, March 12, 2005 1:30 PM
> SUBJECT: [amibroker] Re: OT: convert Wealth lab fromula to Amibroker
>
> Anthony,
>
> That looks like a lot of work (or is it a joke?).
> Anyway's perhaps someone would be willing if you published the WL
> stats, like win rate etc.....
> If somone does, please post it here.
>
> Regards
> Jim
>
> --- In amibroker@xxxxxxxxxxxxxxx, "Anthony Faragasso"
> wrote:
> > Anyone able to convert this wealth lab formula to Amibroker ?
> >
> > Thank you
> > Anthony
> > var Bar : integer;
> > var SecondaryRally, NaturalRally, SecondaryReaction, DnTrend :
> float;
> > var ResumeUpTrend, ResumeDnTrend, UseRule10 : boolean;
> > var Thresh , threshold, HalfThresh ,NaturalReaction,
> NaturalRallyBL, NaturalReactionRL, UpTrendRL, UpTrend, DnTrendBL :
> float;
> > var MA10_10, MA10_Now , State, ATRvalue : integer;
> > var PtsPctATR, tradetrends : integer;
> > { Install AutoStops }
> > {InstallStopLoss( 12 ); }
> > threshold := 2;
> > PtsPctATR := 2; {0=Points, 1=Precent, 2=ATR}
> > tradetrends := 1; {0=trends and reactions, 1=trends only}
> > {State = 0 Uptrend }
> > {State = 1 Dntrend }
> > {State = 2 NatRally}
> > {State = 3 SecRally}
> > {State = 4 NatReact}
> > {State = 5 SecReact}
> > if (PtsPctATR = 0) then
> > begin
> > Thresh := threshold;
> > HalfThresh := thresh/2;
> > end;
> > for Bar := 1 to 21 do
> > begin
> > if (Bar = 1) then
> > begin
> > AddCommentary('Init');
> > SecondaryRally := PriceClose(bar);
> > NaturalRally := PriceClose(bar);
> > UpTrend := PriceClose(bar);
> > SecondaryReaction := PriceClose(bar);
> > NaturalReaction := PriceClose(bar);
> > DnTrend := PriceClose(bar);
> > ResumeUpTrend := false;
> > ResumeDnTrend := false;
> > UseRule10 := false; {if true try/test futures only}
> > end;
> > if (Bar begin {1}
> > MA10_Now := SMASeries( #Close, 10 );
> > MA10_10 := SMASeries( OffSetSeries( #Close, -10 ), 10 );
> >
> >
> > if (Bar = 21) then
> > begin {2}
> >
> > if @MA10_Now[Bar] > @MA10_10[Bar] then
> > begin
> > AddCommentary('InUpTrend');
> > State := 0;
> > UpTrend := PriceClose(bar);
> > end
> > else
> > begin
> > AddCommentary('InDnTrend');
> > DnTrend := PriceClose(bar);;
> > State := 1;
> > end;
> > end {2}
> > end; {1}
> > end;
> >
> > {Main Loop}
> > for Bar := 22 to BarCount - 1 do
> > begin {3}
> >
> > if (PtsPctATR = 1) then
> > begin
> > Thresh := threshold * (PriceClose(bar-1)/100);
> > HalfThresh := Thresh/2;
> > end
> > else if (PtsPctATR = 2) then
> > begin
> > Thresh := threshold * ATR(Bar, 14);
> > HalfThresh := Thresh/2;
> > AddCommentary('ATR thresh ' + FloatToStr(Thresh));
> > AddCommentary('State ' + IntToStr(State));
> > AddCommentary('Price ' + FloatToStr(PriceClose(bar)));
> > AddCommentary('Nat Reaction ' + FloatToStr(NaturalReaction));
> > end;
> > case State of
> > 0:
> > { If InUpTrend then}
> > begin {4}
> > if (PriceClose(bar) > (NaturalReaction + Thresh)) then
> > NaturalReactionRL := NaturalReaction; {Rule 4b}
> > AddCommentary('InUpTrend');
> >
> > if ResumeUpTrend then { Rule 10 logic. }
> > begin {6}
> > if (PriceClose(bar) > (UpTrendRL + HalfThresh)) then
> > begin
> > ResumeUpTrend := false; {Rule 10a}
> > State := 4; {InNatReact}
> > NaturalReaction := PriceClose(bar);
> > UpTrend := PriceClose(bar);
> > end
> > else if (PriceClose(bar) < (UpTrendRL - HalfThresh))
> then
> > begin
> > ResumeUpTrend := false; {Rule 10b}
> > State := 4; {InNatReact}
> > NaturalReaction := PriceClose(bar);
> > end;
> > end {6}
> > else if (PriceClose(bar) < (UpTrend - Thresh)) then
> {start NaturalReaction}
> > begin {Rules 4a, 6a}
> > State := 4; {InNatReact}
> > UpTrendRL := UpTrend; {pivot point, rule 8}
> > NaturalReaction := PriceClose(bar);
> > ResumeUpTrend := false;
> > end
> > else if (PriceClose(bar) > UpTrend) then {remain in
> uptrend higher high price}
> > UpTrend := PriceClose(bar);
> > end; {4 InUpTrend}
> > 2:
> > {Natural Rally State}
> > begin {7}
> >
> > if (PriceClose(bar) > (NaturalReaction + thresh)) then
> > NaturalReactionRL := NaturalReaction; {Rule 4b}
> > if (PriceClose(bar) > UpTrend) then {resume UpTrend}
> > begin {rules 6d, 6f}
> > State := 0; {InUpTrend}
> > AddCommentary(' Set to InUpTrend');
> > UpTrend := PriceClose(bar);
> > if UseRule10 then ResumeUpTrend := true;
> > end
> > else if (PriceClose(bar) > (NaturalRallyBL +
> HalfThresh)) then
> > begin {Rules 5a}
> > AddCommentary('Set to InUpTrend');
> > State := 0; {InUpTrend}
> > UpTrend := PriceClose(bar);
> > if UseRule10 then ResumeUpTrend := true;
> > end
> > else if (PriceClose(bar) < DnTrend) then {Start
> DnTrend}
> > begin {Rule 6b}
> > AddCommentary('InNatRally start dntrend');
> > State := 1; {InDnTrend}
> > DnTrend := PriceClose(bar);
> > NaturalRallyBL := PriceClose(bar); {rule 4D}
> > end
> > else if (PriceClose(bar) < (NaturalRally - Thresh))
> then
> > begin
> > if (PriceClose(bar) < NaturalReaction) then
> {start Natural Reaction}
> > begin {rule 4d, 6b}
> > State := 4; {InNatReact}
> > AddCommentary('InNatRally start nat
> reaction');
> > NaturalReaction := PriceClose(bar);
> > NaturalRallyBL := PriceClose(bar); {rule 4D}
> {Pivot pt, Rule 9b}
> > end
> > else {start secondaryreaction}
> > begin {rule 6h}
> > AddCommentary('InNatRally start sec
> reaction');
> > State := 5; {InSecReact}
> > SecondaryReaction := PriceClose(bar);
> > end;
> > if (PriceClose(bar) > NaturalRally) then
> > NaturalRally := PriceClose(bar);
> > AddCommentary(' none of the above');
> > end;
> > end; {7 InNatRally}
> > 3: { Secondary Rally State}
> > begin
> > if (PriceClose(bar) > UpTrend) then
> > begin {rules 6d, 6f}
> > AddCommentary('InSecRally');
> > State := 0; {InUpTrend}
> > UpTrend := PriceClose(bar);
> > if UseRule10 then ResumeUpTrend := true;
> > end
> > else if (PriceClose(bar) > (NaturalRallyBL +
> halfthresh)) then
> > begin {rules 5a}
> > State := 0; {InUpTrend}
> > UpTrend := PriceClose(bar);
> > if UseRule10 then ResumeUpTrend := true;
> > end
> > else if (PriceClose(bar) > NaturalRally) then
> > begin {rule 6g}
> > State := 2; {InNatRally}
> > NaturalRally := PriceClose(bar);
> > end
> > else if (PriceClose(bar) < DnTrend) then
> {start DnTrend}
> > begin {rule 6b}
> > State := 1; {InDnTrend}
> > DnTrend := PriceClose(bar);
> > NaturalRallyBL := PriceClose(bar); {rule
> 4d, pivot pt, rule 9b}
> > end
> > else if (PriceClose(bar) > SecondaryRally)
> then {record higher high}
> > SecondaryRally := PriceClose(bar); {rule
> 3, 6g}
> > end; {InSecRally}
> > { DOWN TREND STATE}
> > 1:
> > begin {9}
> >
> > if (PriceClose(bar) < (NaturalRally - Thresh))
> then
> > NaturalRallyBL := NaturalRally; {rule 4d}
> > if ResumeDnTrend then {Rule 10 logic best works
> with futures}
> > begin
> > if (PriceClose(bar) < (DnTrendBL -
> HalfThresh)) then
> > begin
> > ResumeDnTrend := false; {rule 10a}
> > DnTrend := PriceClose(bar); {rule 2, 6b}
> > end
> > else if (PriceClose(bar) > (DnTrendBL +
> HalfThresh)) then {DnTrend Over}
> > {return to NaturalRally}
> > begin
> > AddCommentary('return to NaturalRally');
> > ResumeDnTrend := false;
> > State := 2; {InNatRally}
> > NaturalRally := PriceClose(bar);
> > end;
> > end
> > else if (PriceClose(bar) > (DnTrend +
> Thresh)) then {Start NaturalRally}
> > begin { rules 4c, 6c}
> > AddCommentary('return to NaturalRally');
> > State := 2; {InNatRally}
> > NaturalRally := PriceClose(bar);
> > DnTrendBL := DnTrend; {Pivot Pt, Rule 8}
> > ResumeDnTrend := false;
> > end
> > else if (PriceClose(bar) < DnTrend) then
> {remain in down trend, record lower lows}
> > DnTrend := PriceClose(bar); {Rule 2, 6b}
> > end; {9 InDnTrend}
> > 4:
> > { Natural Reaction State }
> > begin {Nat Reaction State}
> > if (PriceClose(bar) < (NaturalRally -
> Thresh)) then
> > NaturalRallyBL := NaturalRally; {Rule 4d}
> > if (PriceClose(bar) < DnTrend) then {resume
> DnTrend}
> > begin {Rule 6b, 6e}
> > AddCommentary('InNatReact - InDnTrend1');
> > State := 1; {InDnTrend}
> > DnTrend := PriceClose(bar);
> > if UseRule10 then ResumeDnTrend := true;
> > end
> > else if (PriceClose(bar) <
> (NaturalReactionRL - halfthresh )) then
> > {resume DnTrend}
> > begin {rules 5b}
> > AddCommentary('InNatReact - InDnTrend2');
> > State := 1; {InDnTrend}
> > DnTrend := PriceClose(bar);
> > if UseRule10 then ResumeDnTrend := true;
> > end
> > else if (PriceClose(bar) > UpTrend) then
> {start UpTrend}
> > begin {rule 6d}
> > AddCommentary('InNatReact - InUpTrend1');
> > State := 0; {InUpTrend}
> > UpTrend := PriceClose(bar);
> > NaturalReactionRL := PriceClose(bar);
> {rule 4b, pvt point, rule 9c}
> > end
> > else if (PriceClose(bar) >
> NaturalReaction + Thresh) then
> > begin
> > if (PriceClose(bar) > NaturalRally)
> then {start Natural Rally}
> > begin {rules 4b, 6d}
> > State := 2; {In Nat Rally}
> > NaturalRally := PriceClose(bar);
> > NaturalReactionRL := PriceClose
> (bar); {rule 4b, pvt point, rule 9c}
> > end
> > else {start SecondaryRally}
> > begin {rule 6g}
> > State := 3; {In Sec Rally}
> > SecondaryRally := PriceClose(bar);
> > end;
> > end
> > else if (PriceClose(bar) <
> NaturalReaction) then {remain in NaturalReaction , record lower lows}
> > NaturalReaction := PriceClose(bar);
> {rule 3, 6a, 6b}
> > end; {InNatReact}
> > 5:
> > begin
> > AddCommentary('InSecReact');
> > if (PriceClose(bar) < DnTrend) then
> {resume DnTrend}
> > begin {rules 6b, 6e}
> > State := 1; {InDnTrend}
> > DnTrend := PriceClose(bar);
> > if UseRule10 then ResumeDnTrend := true;
> > end
> > else if (PriceClose(bar) <
> (NaturalReactionRL - halfthresh)) then
> > begin {rules 5b}
> > State := 1; {InDnTrend}
> > DnTrend := PriceClose(bar);
> > if UseRule10 then ResumeDnTrend := true;
> > end
> > else if (PriceClose(bar) > UpTrend) then
> {start UpTrend}
> > begin {rules 6d}
> > State := 0; {InUpTrend}
> > UpTrend := PriceClose(bar);
> > NaturalReactionRL := PriceClose(bar);
> {rule 4b, pivot point, rule 9c}
> > end
> > else if (PriceClose(bar) <
> NaturalReaction) then
> > begin {rules 6h}
> > State := 4; {InNatReact}
> > NaturalReaction := PriceClose(bar);
> > end
> > else if (PriceClose(bar) <
> SecondaryReaction) then {record lower lows}
> > SecondaryReaction := PriceClose
> (bar); {rule 6h}
> > end; {InSecReact}
> > else
> > begin
> > AddCommentary('Never get here! ');
> > end;
> > end;
> > { Paint it }
> > case State of
> > 0:
> > begin
> > SetBarColor( Bar, #blue );
> > end;
> > 1:
> > begin
> > SetBarColor( Bar, #Red ); {Down Trend}
> > end;
> > 2:
> > begin
> > SetBarColor( Bar, #Black );
> > end;
> > 3:
> > begin
> > SetBarColor( Bar, #Green );
> > end;
> > 4:
> > begin
> > SetBarColor( Bar, #yellow );
> > end;
> > 5:
> > begin
> > SetBarColor( Bar, #purple );
> > end
> > else
> > AddCommentary('not important to show! ');
> > end;
> > if (tradetrends = 1) then
> > { Trend Rules }
> > begin
> > if (State = 0) then {uptrend}
> > begin
> > if (not lastpositionactive()) then
> > begin
> > buyAtMarket( Bar+1, 'LE');
> > end;
> > if positionshort(lastposition) then
> > coverAtMarket( Bar+1,LastPosition, 'SXL');
> > end;
> >
> > if (State = 1) then {downtrend}
> > begin
> > if (not lastpositionactive()) then
> > begin
> > shortAtMarket( Bar+1, 'SE');
> > end;
> > if positionlong(lastposition) then
> > SellAtMarket( Bar+1, Lastposition, 'LXS');
> > end;
> >
> > end
> > else
> > { Trend plus Rules = trade trends, rallies, reactions}
> > begin
> > if ((State = 0) or (State = 2) or (State = 3)) then
> > begin
> > if (not lastpositionactive()) then
> > begin
> > buyAtMarket( Bar+1, 'LE');
> > end;
> > if positionshort(lastposition) then
> > coverAtMarket( Bar+1,LastPosition, 'SXL');
> > end;
> >
> > if ((State = 1) or (State = 4) or (State = 5)) then
> > begin
> > if (not lastpositionactive()) then
> > begin
> > shortAtMarket( Bar+1, 'SE');
> > end;
> > if positionlong(lastposition) then
> > SellAtMarket( Bar+1, Lastposition, 'LXS');
> > end;
> > end;
> >
> > end;
> >
> >
> > No virus found in this outgoing message.
> > Checked by AVG Anti-Virus.
> > Version: 7.0.308 / Virus Database: 266.7.2 - Release Date: 3/11/2005
>
> Please note that this group is for discussion between users only.
>
> To get support from AmiBroker please send an e-mail directly to
> SUPPORT {at} amibroker.com
>
> For other support material please check also:
> http://www.amibroker.com/support.html
>
> -------------------------
>
> No virus found in this incoming message.
> Checked by AVG Anti-Virus.
> Version: 7.0.308 / Virus Database: 266.7.2 - Release Date: 3/11/2005
>
> Please note that this group is for discussion between users only.
>
> To get support from AmiBroker please send an e-mail directly to
> SUPPORT {at} amibroker.com
>
> For other support material please check also:
> http://www.amibroker.com/support.html
>
> YAHOO! GROUPS SPONSOR
>
> ADVERTISEMENT
>
> -------------------------
> YAHOO! GROUPS LINKS
>
> To visit your group on the web, go to:
> http://groups.yahoo.com/group/amibroker/
> To unsubscribe from this group, send an email to:
> amibroker-unsubscribe@xxxxxxxxxxxxxxx
> Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
>
> -------------------------
> No virus found in this outgoing message.
> Checked by AVG Anti-Virus.
> Version: 7.0.308 / Virus Database: 266.7.2 - Release Date: 3/11/2005
-------Original Message-------
------------------------ Yahoo! Groups Sponsor --------------------~-->
Has someone you know been affected by illness or disease?
Network for Good is THE place to support health awareness efforts!
http://us.click.yahoo.com/Rcy2bD/UOnJAA/cosFAA/GHeqlB/TM
--------------------------------------------------------------------~->
Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For other support material please check also:
http://www.amibroker.com/support.html
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Attachment:
Description: Binary data
|