⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rectangle entry points.afl

📁 一个更精度的平滑涵数, 可用于股票交易系统.用于Amibroker 平台
💻 AFL
字号:
//------------------------------------------------------------------------------
//
//  Formula Name:    Rectangle entry points
//  Author/Uploader: Ed 
//  E-mail:          empottasch@home.nl
//  Date/Time Added: 2004-11-14 15:28:38
//  Origin:          from "Professional Stock Trading, by Conway / Behle, 2003
//  Keywords:        Rectangle Geometric trading entry long short
//  Level:           semi-advanced
//  Flags:           indicator
//  Formula URL:     http://www.amibroker.com/library/formula.php?id=401
//  Details URL:     http://www.amibroker.com/library/detail.php?id=401
//
//------------------------------------------------------------------------------
//
//  Rectangles give amazing entry positions so it seems. Trick is what to do
//  with them. That .... I leave for yourself to find out (I did not work this
//  out myself yet as well). The system is documented starting in Chapter 5 of
//  Conway's book. Trick as with any system is where do you get in and where do
//  you get out. This is essential for a system to work. The code I give here
//  just locates the entries.
//
//------------------------------------------------------------------------------

/*

Rectangle System Development

after: "Professional Stock Trading", M. Conway / A. Behle, 2003, pages 106, 107, 108

Edward Pottasch, nov 2004

*/

RectangleLength = 4;
RangeLength = RectangleLength * 3;
RangeFactor = 1.0;
RangeRatioLimit = 0.3;
AtrPeriod = RangeLength;

// rectangle
hg = HHV(H,RectangleLength);
lw = LLV(L,RectangleLength);
HeightRectangle = hg - lw;

// preceding range
hgp = Ref(HHV(H,RangeLength),RectangleLength * -1);
lwp = Ref(LLV(L,RangeLength),RectangleLength * -1);
HeightRangeLength = hgp - lwp;

// aspect ratio
ar = HeightRectangle / HeightRangeLength;

// ATR
at = ATR(AtrPeriod);

// decide if it is a rectangle
yon = IIF(ar < RangeRatioLimit AND HeightRectangle < at * RangeFactor, 1, 0);

// breakout level
long_breakout_level = IIF(yon,yon * hg,null);
short_breakout_level = IIF(yon,yon * lw,null);

// decide about direction
Buy = IIF(H > Ref(long_breakout_level,-1),1,0);
BuyPrice = IIF(O > Ref(long_breakout_level,-1), O, Ref(long_breakout_level,-1));
Short = IIF(L < Ref(short_breakout_level,-1),1,0);
ShortPrice = IIF(O < Ref(short_breakout_level,-1), O, Ref(short_breakout_level,-1));

Plot(C,"",colorwhite,64);
Plot(ref(hg,-1),"Long breakout level",colorblue,1);
Plot(ref(lw,-1),"Short breakout level",coloryellow,1);

PlotShapes(IIf(yon,shapeCircle,0),colorWhite, layer = 0, yposition = O, offset = 0 );

PlotShapes(IIf(Buy,shapeUpArrow,0),colorWhite, layer = 0, yposition = BuyPrice, offset = 0 );
PlotShapes(IIf(Short,shapeHollowDownArrow,0),colorLightBlue, layer = 0, yposition = ShortPrice, offset = 0 );

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -