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

metastock defector cries for help



PureBytes Links

Trading Reference Links

HI,

Can someone help me to translate this into AFL

Thanks
Guno

MetaStock Trading System - Chandelier Exit

Below is the code for Chuck LeBeau's Chandelier Exit. The Chandelier 
Exit is a volatility based exit (it uses average true range) that 
works quite well on trend following systems. It lets "... profits 
run in the direction of a trend while still offering some protection 
against any reversal in trend."

The theory is quite simple, but because of the awkwardness of 
defining the entry price, its implementation in MetaStock takes some 
work. The theory is: exit a long position at either the highest high 
since entry minus 3 ATRs, or at the highest close since entry minus 
2.5 ATRs.

The exit is described more fully in the Trader's Toolkit section at 
Chuck LeBeau's site -- http://traderclub.com 

Here is the MetaStock code:


{LONG EXIT}
LongEntry:= {this your entry system, eg. Cross(CLOSE, Mov(C,20,E))};
MoneyMgmtStop:= {this is your maximum loss, in points}; 
{DEFINE ENTRY PRICE, WITH EXIT BEING -ENTRY PRICE AND NO TRADE BEING 
0}
EntryPrice:= If(PREV <= 0,
{Trade entered today?}
If(LongEntry, CLOSE, 0),
{Trade entered before today. Stopped today?}
If(LOW <= PREV - MoneyMgmtStop, -PREV,
If(LOW <= HighestSince(1,PREV=0, HIGH) - 3 * ATR(10), -PREV,
If(LOW <= HighestSince(1,PREV=0, CLOSE) - 2.5 * ATR(10), -PREV, 
PREV))));

{EXIT IF ENTRY PRICE < 0 (MEANING EXIT)}
EntryPrice < 0

{SHORT EXIT}
ShortEntry:= {this your entry system, eg. Cross(Mov(C,20,E), CLOSE)};
MoneyMgmtStop:= {this is your maximum loss, in points};

{DEFINE ENTRY PRICE, WITH EXIT BEING -ENTRY PRICE AND NO TRADE BEING 
0}
EntryPrice:= If(PREV <= 0,
{Trade entered today?}
If(ShortEntry, CLOSE, 0),
{Trade entered before today. Stopped today?}
If(HIGH >= PREV + MoneyMgmtStop, -PREV,
If(HIGH >= LowestSince(1,PREV=0, LOW) + 3 * ATR(10), -PREV,
If(HIGH >= LowestSince(1,PREV=0, CLOSE) + 2.5 * ATR(10), -PREV,
PREV))));

{EXIT IF ENTRY PRICE < 0 (MEANING EXIT)}
EntryPrice < 0