我是 amibroker 的新手,上个月刚买的。我正在尝试做一个基本的 ORB 15 分钟突破。我们在 15 分钟的高点买入/在 15 分钟的低点做空(不等待蜡烛收盘)并在一天结束时退出头寸。即 15:15:00 。下面是我可以编写多少代码,但我似乎错过了一些东西,因为它没有给我正确的信号。同样,最先触发的也是buy.sell,直到一天结束。
N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorDefault ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();
_N(Title = StrFormat("{{NAME}} | {{INTERVAL}} | {{DATE}} | {{VALUES}}" ));
SetChartOptions(0,chartShowArrows|chartShowDates);
SetBarFillColor( IIf( C>=O, colorLime, colorRed ) );
Plot( Close, "Price", IIf( C >= O, colorLime, colorRed ), styleCandle );
//plotting of 15min high and low
tn = TimeNum();
orb_st = tn == 091500;
orb_end = tn == 091500;
signalstart = tn == 093000;
signalend = tn == 151000;
signalsquareoff = tn == 151500;
myH = ValueWhen(orb_end , HighestSince(orb_st, H));
myL = ValueWhen(orb_end, LowestSince(orb_st,L));
Plot(myH,"ORBH",colorYellow,styleDots);
Plot(myL,"ORBL",colorWhite,styleDots);
// buy/sell signal on break of 15min high and low
Buy = Cross(H,myH) AND tn < 151500;
Short = Cross(myL,L) AND tn < 151500;
Sell = TimeNum() == signalsquareoff;
Cover = TimeNum() == signalsquareoff;
// removing repeated signals
Buy = ExRem(Buy,Short);
Short = ExRem(Short,Buy);
// Plot Buy and Sell Signal Arrows
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40);
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);
PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);
// backtesting param for points based results
SetPositionSize(1,spsShares);
如果有人可以帮助我指出我在上述代码中犯的错误,那就太棒了。刚刚意识到除了官方的 amibroker 论坛之外,没有任何其他合适的资源可以进行讨论,像我这样的新手可以学习..
谢谢并恭祝安康。做傻事