[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: OT: convert Wealth lab fromula to Amibroker



PureBytes Links

Trading Reference Links


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" <ajf1111@xxxx> 
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 <= 21) then
>   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





------------------------ 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/