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

RE: Coding MaxLoss and ProfitTarget Stops



PureBytes Links

Trading Reference Links

This is great work you are posting here. And I'm eagerly to give it a
try, but what is "Williams Buy Stop" indicator ? Is that the entry point
of the system ?
Thanks
Mickey

-----Original Message-----
From: owner-metastock@xxxxxxxxxxxxx
[mailto:owner-metastock@xxxxxxxxxxxxx] On Behalf Of Roy Larsen
Sent: dinsdag 28 augustus 2001 11:49
To: metastock@xxxxxxxxxxxxx
Subject: Re: Coding MaxLoss and ProfitTarget Stops


Herman

> Has anybody succeeded handcoding the Maximum Loss and Profit Target 
> Stops such that System Tester Stop results are identical to using the 
> custom coded stops?
>
> I am having great difficulty getting similar results and would 
> appreciate any suggestions or pieces of code that can help me.

Here is a sampling of work-in-progress on profit stops for MS. I have
yet to check any of these against MS but will do so over the next few
days. For the life of me I can't see how MS stops can execute at
tradeable steps - see comments on code further down.

Thanks to Glen Wallace for his comments, and the code above his name
from the Guppy site. I never intended to use the PREV function but it
appears to be the only way to go without programming skills and a
development kit.

The Target Exit indicator is by far the slowest in use (for multi-stock
system testing) as the Entry variable combines the all 3 elements of
profit, loss and time. When testing it I called the appropriate stop
using FmlVar()'s rather than the usual Fml() that is used with single
purpose indicators.

With Profit Stop I have added some code to convert the stop value to the
next higher ASX tradeable step. Similar code could be added to a stop
loss or exit stop by those who need it (i.e. have their own stop capable
system tester).

I'm going to have a lot more fun with this stuff yet. There are a number
of possibilities yet to explore. I hope there is something here that
will help or give you inspiration.

Roy

{Profit Exit - entered on Close}
Profit:=Input("Profit target %",1,50, 5)/100; Entry:=Fml("Williams Buy
Stop"); EntryAmt:=If(PREV<=0,If(Entry>0,CLOSE,0),
  If(H>PREV*(1+Profit),-PREV,PREV));
Target:=Abs(EntryAmt)*(1+Profit);
EntryAmt<0 AND H>Target;  {binary exit signal}

{Profit Exit - entered on Open}
Profit:=Input("Profit target %",1,50, 5)/100; Entry:=Fml("Williams Buy
Stop"); EntryAmt:=If(PREV<=0,If(Entry>0,OPEN,0),
  If(H>PREV*(1+Profit),-PREV,PREV));
Target:=Abs(EntryAmt)*(1+Profit);
EntryAmt<0 AND H>Target; {binary exit signal}

{Profit Exit - entered on Stop}
Profit:=Input("Profit target %",1,50, 5)/100; Entry:=Fml("Williams Buy
Stop"); EntryAmt:=If(PREV<=0,If(Entry>0,Entry,0),
  If(H>PREV*(1+Profit),-PREV,PREV));
Target:=Abs(EntryAmt)*(1+Profit);
EntryAmt<0 AND H>Target; {binary exit signal}

{Profit Stop - entered on Stop}
Profit:=Input("Profit target %",1,50, 5)/100; Entry:=Fml("Williams Buy
Stop"); EntryAmt:=If(PREV<=0,If(Entry>0,Entry,0),
  If(H>PREV*(1+Profit),-PREV,PREV));
Target:=Abs(EntryAmt)*(1+Profit);
X:=If(EntryAmt<0 AND H>Target,Target,0); Stop:=If(X=0,0,If(X>0.1 AND
X<=0.5, If(Int(X*200)=X*200,X+.005, Int((X+.005)*200)/200), If(X<=0.1,
If(Int(X*1000)=X*1000,X+.001, Int((X+.001)*1000)/1000),
If(Int(X*100)=X*100,X+.01, Int((X+.01)*100)/100)))); Stop; {Value exit
signal}

{Target Exit}
Profit:=Input("Percent profit",1,50, 5)/100;
Loss:=Input("Percent loss"    ,1,50,50)/100;
Time:=Input("Maximum trade duration",1,50,2); Entry:=Fml("Williams Buy
Stop"); Init:=Cum(Entry<>-1)=0;
EntryPrice:=If(PREV<=0,If(Entry>0,Entry,0),
  If(H>PREV*(1+Profit)
  OR L<=PREV*(1-Loss)
  OR BarsSince(PREV=0)>=Time,-PREV,PREV));
Trade:=Init=0 AND EntryPrice<>0;
ProfitTarget:=Abs(EntryPrice)*(1+Profit);
LossTarget:=Abs(EntryPrice)*(1-Loss);
ProfitExit:=If(EntryPrice<0 AND H> ProfitTarget,ProfitTarget,0);
LossExit:=If(EntryPrice<0 AND L<= LossTarget,LossTarget,0);
ProfitExit:=If(EntryPrice<0 AND ProfitExit=0 AND
LossExit=0,O,ProfitExit); LossTarget; ProfitTarget;