Hi All,
I'm new to AmiBroker, but it does seem to be a very useful backtesting package.
While writing a backtesting script, I hit a snag on how to identify when the
last period the system had a SELL in. I also am not sure if the code I pulled
in for activating a Stop Loss is correct.
Can someone give me a link to something that's been written already to fill in
"lastSellPeriod" and possibly a review if I did the "ApplyStop" correctly to
stop out at the price in the stopLoss variable? (All other comments on my code
welcome as well :)
Thanks,
Michael
Code so far :
/*-------------------------------------
Buy = Buy when price has showed upward momentum by moving from flagPrice to
BuyPrice.
Sell = Sell at SellPrice.
StopLoss = Sell at stopLoss price.
Notes:
Fixed trigger price(s), therefor only one trade open at any one time.
-------------------------------------*/
flagPrice = 14.70;
BuyPrice = 15;
SellPrice = 15.3;
stopLoss = 14.70;
// RoundLotSize = 1;
// SetOption( field, value );
SetOption("InitialEquity", 100000 );
SetOption("ActivateStopsImmediately", True );
SetOption( "AllowSameBarExit", True );
SetOption("CommissionMode", 3 );
SetOption("CommissionAmount", .005);
SetOption("GenerateReport", 1 );
SetOption( "ReverseSignalForcesExit", False );
SetOption( "SeparateLongShortRank", True );
SetOption( "RefreshWhenCompleted", True );
SetOption( "RequireDeclarations", False );
SetPositionSize( 10000, spsValue );
// ApplyStop( stopTypeLoss, stopModePercent, 10, True );
ApplyStop(stopTypeLoss,stopModePoint,stopLoss,ExitAtStop = 1,Volatile = False,
ReentryDelay = 1 );
lastSellPeriod = ????????;
lastLow = LLV( Low, lastSellPeriod );
okayToBuy = IIf(lastLow < flagPrice, TRUE, FALSE)
Buy = okayToBuy AND High > BuyPrice;
Sell = Cross( High, SellPrice);
/* ExRem is one method to remove surplus trade signals */
Buy = ExRem(Buy, Sell);
Sell = ExRem(Sell, Buy);