PureBytes Links
Trading Reference Links
|
I have spent several hours trying to implement the Scale-out strategy
using futures contracts. I have finally come to the conclusion that
the example in the help file does not create a true scale out system.
Here's what I found:
On the bar where a scale out is triggered, instead of reporting the
target price that triggered the scale out, the back tester actually
reports the open or close of that bar. (depending upon what settings
are used in the trades tab). This does not match a real trading
environment where you would place sell limit orders at your various
targets and wait for the price to hit them.
I have spent many frustrated hours trying to get it to show the actual
target price as the exit price in the back tester but so far this
alludes me.
Here's an example of what I am trading in real life but so far cannot
write code to duplicate in the back tester:
Enter long 3 contracts.
Stop loss set at buy price minus 1.25 points
Target one set to buy price plus 1.25 points
Target two set to buy price plus 2.5 points
Remaining contract exits when close crosses below EMA(C, 20).
The code below is what I have accumulated so far:
Buy = <<Insert favorite buy signal here>>;
Sell = 0;
SystemExit = Cross(EMA(C, 20), Close);
// 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 = 1.25; // profit
SecondProfitTarget = 2.5; // in points
TrailingStop = 1.25; // also in points
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 <= 2 AND
SystemExit[i] )
{
//system exit hit - exit any remaining contracts
SellPrice[i] = Close[i];
exit = 3;
}
if( exit == 0 AND
High[ i ] >= FirstProfitTarget + priceatbuy )
{
// first profit target hit - scale-out
exit = 1;
Buy[ i ] = sigScaleOut;
}
if( exit == 0 AND
High[ i ] >= SecondProfitTarget + priceatbuy )
{
// second profit target hit - exit
exit = 2;
Buy[ i ] = sigScaleOut;
//SellPrice[ i ] = Max( Open[ i ], SecondProfitTarget + priceatbuy );
}
if( Low[ i ] <= priceatbuy - TrailingStop )
{
// trailing stop hit - exit
exit = 3;
SellPrice[ i ] = Min( Open[ i ], priceatbuy - TrailingStop );
}
if( exit >= 3 )
{
Buy[ i ] = 0;
Sell[ i ] = exit + 1; // mark appropriate exit code
exit = 0;
priceatbuy = 0; // reset price
highsincebuy = 0;
}
}
}
SetPositionSize( 15, spsPercentOfEquity ); //Equity is set at 10,000.00
SetPositionSize( 1/3, spsPercentOfPosition * ( Buy == sigScaleOut ) );
// scale out 50% of position
------------------------------------
**** IMPORTANT ****
This group is for the discussion between users only.
This is *NOT* technical support channel.
*********************
TO GET TECHNICAL SUPPORT from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
*********************
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
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/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/amibroker/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:amibroker-digest@xxxxxxxxxxxxxxx
mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx
<*> 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/
|