PureBytes Links
Trading Reference Links
|
From the amibroker guideline, it gives an example of the scaleout code. Can anyone please explain this code for me "Sell[ i ] = exit + 1;". Although commented, I don't quite understand the meaning of "// mark appropriate exit code". As far as I know, the sell function is executed according to either 1(true) or 0(false). How does this code work to only sell when the exit is => 2 which is when secondprofit target (exit code=2) and trailing stop (exit code=3) are crossed.
---------------------------------------------------------------------------------------------------- Example 4: partial exit (scaling out) on profit target stops Example of code that exits 50% on first profit target, 50% on next profit target and everything at trailing stop:
Buy = Cross( MA( C, 10 ), MA( C, 50 ) ); Sell = 0;
// the system will exit // 50% of position if FIRST PROFIT TARGET stop is hit // 50% of position is SECOND PROFIT TARGET stop is hit // 100% of position if TRAILING STOP is hit
FirstProfitTarget = 10; // profit SecondProfitTarget = 20; // in percent TrailingStop = 10; // also in percent
priceatbuy=0; highsincebuy = 0;
exit = 0;
for( i = 0; i < BarCount; i++ ) { if( priceatbuy == 0 AND Buy[ i ] ) { priceatbuy = BuyPrice[ i ]; }
if( priceatbuy > 0 ) { highsincebuy = Max( High[ i ], highsincebuy );
if( exit == 0 AND High[ i ] >= ( 1 + FirstProfitTarget * 0.01 ) * priceatbuy ) { // first profit target hit - scale-out exit = 1; Buy[ i ] = sigScaleOut; }
if( exit == 1 AND High[ i ] >= ( 1 + SecondProfitTarget * 0.01 ) * priceatbuy ) { // second profit target hit - exit exit = 2; SellPrice[ i ] = Max( Open[ i ], ( 1 + SecondProfitTarget * 0.01 ) * priceatbuy ); }
if( Low[ i ] <= ( 1 - TrailingStop * 0.01 ) * highsincebuy ) { // trailing stop hit - exit exit = 3; SellPrice[ i ] = Min( Open[ i ], ( 1 - TrailingStop * 0.01 ) * highsincebuy ); }
if( exit >= 2 ) { Buy[ i ] = 0; Sell[ i ] = exit + 1; // mark appropriate exit code exit = 0; priceatbuy = 0; // reset price highsincebuy = 0; } } }
SetPositionSize( 50, spsPercentOfEquity ); SetPositionSize( 50, spsPercentOfPosition * ( Buy == sigScaleOut ) ); // scale out 50% of position
__._,_.___
**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.
TO GET TECHNICAL SUPPORT send an e-mail directly to
SUPPORT {at} amibroker.com
TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
__,_._,___
|