November 14, 2007
Backtesting Example - NewHighs/NewLows
Q. Does anyone know how to buy tomorrow and sell the next day across your entire portfolio?
Basically, I want to:
1) Get the buy signal at the end of Day 1
2) Buy the stock on the opening of Day 2
3) Sell the stock on the opening of Day 3
A. There are multiple ways to do this in Amibroker. Below I give an example (using HHV to signal new 220 bar highs) of how this can be built into a portfolio type system.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | //Code by Ed Pottasch // if you want to buy and sell, with delay, inside a portfolio type system SetBarsRequired(10000,10000); SetOption("MaxOpenPositions", 10 ); SetOption("UsePrevBarEquityForPosSizing",True); SetOption("PriceBoundChecking", False); PositionSize = -10; SetTradeDelays(0,0,0,0); // delay of exit with respect to entry in bars sellDelay = Optimize("sellDelay", 1, 1, 50, 1); // buy signal when H exceeds H of past 220 bars Buy = H > Ref(HHV(H,220),-1); // entry at the open of the bar following the signal bar Buy = Ref(Buy,-1); BuyPrice = O; // remove excessive signals from initial signal Buy = ExRemSpan(Buy, sellDelay); // sell sellDelay bars after entry at the open Sell = BarsSince(Buy) == sellDelay; SellPrice = O; SetChartOptions(0, chartShowDates); GraphXSpace = 5; Plot(C,"C",1,64); PlotShapes(IIf(Buy,shapeUpArrow,0),colorWhite, layer = 0, yposition = BuyPrice, offset = 0 ); PlotShapes(IIf(Sell,shapeDownArrow,0),colorYellow, layer = 0, yposition = SellPrice, offset = 0 ); PositionScore = 1/Ref(RSI(sellDelay),-1); |
Comments and code by Edward Pottasch.
AmiBrokerYahooGroup message# “How to Buy Tomorrow and Sell the Next Day Using Your Whole Portfolio” http://finance.groups.yahoo.com/group/amibroker/message/116945
ATTACHED FILE:
Filed by brian_z at 10:38 pm under Backtester

