PureBytes Links
Trading Reference Links
|
Hi Graham,
For some reason, if I modify the "setpositionsize" in the code below, it changes absolutely nothing. And I am trying to set a sell price with its own rule once the firstprofit target has been reached (I don't want a second profit target). It doesn't work at all, unfortunately...
Thanks, Louis
2008/2/28, Graham <kavemanperth@xxxxxxxxx>:
SellPrice is just what it says it is, it defines what the trade will sell at. It uses Sell to determine which bar the sellprice array to use (in addition to the settradedelays function or in settings.
Using the example in the help files which your code is based on, it works fine for me
Try changing the report to Detailed Log in the AA settings to see exactly what is occurring bar by bar
-- Cheers Graham Kav AFL Writing Service http://www.aflwriting.com
Hi,
I posted a question yesterday or th day before, and maybe it was lost in all the emails, or whatever. So I post it again. If I can only understand this I am sure I can go a long way. Thanks!
* * *
I tried to build a simple system with a first profit target of 10% and
a scaling of position, followed by a sell signal issued by specific
indicators. The following code is dumb enough; it's only an example I
gave myself to try to learn
SetOption("UseCustomBacktestProc", False); //
SetOption("MaxOpenPositions", 3 ); SetOption("InitialEquity", 100000 );
SetOption("AllowPositionShrinking", True ); SetOption ("AllowSameBarExit", False);
SetOption ("ActivateStopsImmediately", False); SetOption ("MinShares", 100);
SetOption ("MinPosValue", 5000); SetOption ("PriceBoundChecking", True);
SetOption ("CommissionMode", 2); SetOption ("CommissionAmount", 25);
SetOption ("AccountMargin", 100); SetOption ("ReverseSignalForcesExit", True);
SetOption ("UsePrevBarEquityForPosSizing", True); SetOption ("PortfolioReportMode", 0);
Buy = RSI (14)<30 AND EMA (ADX (14),10)<20;
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;
CloseEMA = EMA(C,50); RSI14= RSI (14);
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;//Réduit position de %.
} if ( exit == 1
AND (Close[i]<CloseEma[i-1]
OR RSI14[i]>75
)
)
{ // second profit target hit - exit
exit = 2; SellPrice[ i ] = Open[ i ];
} 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 p rice
highsincebuy = 0; }
} } SetPositionSize( 50, spsPercentOfEquity );
SetPositionSize( 50, spsPercentOfPosition * ( Buy == sigScaleOut ) ); // scale out 50% of position///
Short=0; Cover=0;
Ok;
first I am not sure if my code makes sense. Because I tried to modify
the spspercentofposition (green) and whatever the number I put there it
changed nothing to the backtesting. I tried 20, 50, 70 (assuming it
should be a scaling out of 20%, 50% or 70%) and it changed nothing. So
I guess something is wrong.
Second, I am not sure about the utility of "sellprice" (blue).
Does it actually replace the "sell" command? I assumed so, but I am
not sure about this. When I write SellPrice[ i ] = Open[ i ]; does it actually mean that it will sell on the open? Simply?
The yellow part is what I added to the code. But ideally, here is
what I am trying to do: a system that would secure 33% of a position by
scaling out after a 10-20% gain, and then selling everything when
indicator is reached OR if the price goes down more than x% below the
price at which there was the scaling out. I think I would need
another variable, maybe a "sellprice2" or something to set the new
stop-loss.
I don't know if my question is clear, but I think that if I can
understand this part I can make it on my own... at least for some days!
;-P
Thanks,
Louis
__._,_
__._,_.___
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 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
__,_._,___
|