分享

外汇程序化交易之枢轴点

 dushikuaile 2020-05-19

枢轴点(Pivot Points)是一个非常单纯的阻力支撑体系,是一种经典的日内交易策略。

大概10年前由某个期货高手所发明,至今已广泛应用在股票、期货、国债、指数等高成交量的金融商品上。

经典的Pivot Point是7点系统,由7个价格组成。

计算原理:

轴心: Pivot Point = (High + Close + Low) / 3

阻力一: R1 = 2 * Pivot - Low

支撑一: S1 = 2 * Pivot - High

阻力二: R2 = Pivot + (R1 - S1)

支撑二: S2 = Pivot - (R1 - S1)

阻力三: R3 = High + 2 * (Pivot - Low)

支撑三: S3 = Low - 2 * (High - Pivot)

其中High为最高价,Low为最低价,Close是成交价。

枢轴点解释:

1. pivot是所谓的轴心,就是阻力系统的中心,R、S是阻力和支撑;

2. pivot有吸引作用,在没有大多头和大空头进场的情况下,价格是在R1和S1之间围绕轴心运动,但运动可能是没有规律的。有人专门做这个范围内的交易,称之为Floor Trader;

3. 在强烈的多头或空头的推动下,价格会突破S1-R1区域,此时形成趋势。但还是在正常的价格运动范围之内,伴随着强烈的方向感,多数时间是靠近R1、R2或者S1、S2运动,中间区域停留的时间不长;

4. R3、S3极端价格,在没有特殊利空或利好消息的情况下一般不会达到。

如果整个交易日内价格都在R1-S1的区域内移动,说明主要交易者为短线交易者,包括个人投资人,小基金等;

如果到了R2、S2区域,说明大的炒家出现了,此时也许已经在行情中,也许是行情的开始;

如果到了R3、S3区域,说明是强烈的趋势,这时候的参与者就远远不是几个基金,几个投资人能做到了。

EA的实现:

//--+-----+--+---------+---------+-+---+-+---+--+-----+--+------+---------+-+---+-+---+--+-----+--+--------+---------+-+---+-+---+--+-----+--+------+---------+-+---+-+---//ePivotPoint.mq4//--+-----+--+------+-----------+-+---+-+---+--+-----+--+------+---------+-+---+-+---+--+-----+--+------+---------+-+---+-+---+--+-----+--+--------+---------+-+---+-+---#property version '1.00'#property strict//--+-----+--+------+---------+-+---+-+---+--+-----+--+------+-----------+-+---+-+---+--+-----+----+------+-----------+-+---+-+---+--+-----+--+------+---------+-+---+-+---enum eTimeFrame{M1=1,M5=5,M15=15,M30=30,H1=60,H4=240,D1=1440};extern eTimeFrame pTimeFrame=1440;//时间周期extern int pCount=1;//要计算的周期数extern int pShift=0;//偏移量//--+-----+--+------+-----------+-+---+-+---+--+-----+--+------+---------+-+---+-+---+--+-----+--+------+---------+-+---+-+-----+--+-----+--+--------+---------+-+---+-+---int OnInit(){ ChartInit(); return(INIT_SUCCEEDED);}//--+--------+--+------+---------+-+---+-+---+--+-----+--+------+---------+-+---+-+---+--+-----+--+------+---------+-+---+-+-----+--+-----+--+--------+---------+-+---+-+---void OnDeinit(const int reason){}//--+-----+--+------+---------+-+---+-+---+--+-----+--+------+-----------+-+---+-+---+--+-----+--+--------+---------+-+---+-+---+--+-----+--+------+---------+-+---+-+-----void OnTick(){ double xR3,xR2,xR1,xP,xS1,xS2,xS3; GetPivotPoint(Symbol(),xR3,xR2,xR1,xP,xS1,xS2,xS3,pTimeFrame,pCount,pShift); CreateLine('PivotPoint',xP,Red); CreateLine('R3',xR3,White); CreateLine('R2',xR2,Yellow); CreateLine('R1',xR1,Aqua); CreateLine('S1',xS1,Aqua); CreateLine('S2',xS2,Yellow); CreateLine('S3',xS3,White);}//--+-----+----+------+---------+-+---+-+---+--+-----+--+------+---------+-+---+-+---+--+-----+-----+------+-----------+-+---+-+---+--+-----+--+------+---------+-+---+-+---void GetPivotPoint(string xSymbol,double &xR3,double &xR2,double &xR1,double &xP,double &xS1,double &xS2,double &xS3,int xTimeFrame=1440,int xCount=1,int xShift=0){/*枢轴点*/ double xH=iHigh(xSymbol,xTimeFrame,iHighest(xSymbol,xTimeFrame,MODE_HIGH,xCount,xShift+1)); double xL=iLow(xSymbol,xTimeFrame,iLowest(xSymbol,xTimeFrame,MODE_LOW,xCount,xShift+1)); double xC=iClose(xSymbol,xTimeFrame,xShift+1); xP=(xH+xL+xC)/3; xR1=2*xP-xL; xS1=2*xP-xH; xR2=xP+(xR1-xS1); xS2=xP-(xR1-xS1); xR3=xH+2*(xP-xL); xS3=xL-2*(xH-xP);}//--+-----+----+------+---------+-+---+-+---+--+-----+--+------+---------+-+---+-+---+--+-----+----+------+---------+-+---+-+---+--+-----+--+------+---------+-+---+-+-----void CreateLine(string xObjectName,double xPrice,color xColor=Red,string xFont='微软雅黑',int xFontSize=10){ ObjectDelete(0,xObjectName); ObjectCreate(0,xObjectName,OBJ_HLINE,0,0,xPrice); ObjectSetInteger(0, xObjectName, OBJPROP_COLOR, xColor); string xLabelName=xObjectName+'_Text'; ObjectDelete(0,xLabelName); ObjectCreate(0,xLabelName,OBJ_TEXT,0,iTime(Symbol(),Period(),10),xPrice); int xDigits=StrToInteger(DoubleToStr(MarketInfo(Symbol(),MODE_DIGITS),0)); ObjectSetString(0,xLabelName,OBJPROP_TEXT,xObjectName+'('+DoubleToStr(xPrice,xDigits)+')'); ObjectSetString(0,xLabelName,OBJPROP_FONT,xFont); ObjectSetInteger(0,xLabelName,OBJPROP_FONTSIZE,xFontSize); ObjectSetInteger(0,xLabelName,OBJPROP_COLOR,xColor);}//--+-----+-----+------+---------+-+---+-+---+--+-----+--+------+---------+-+---+-+---+----+-----+--+------+---------+-+---+-+---+--+-----+--+------+---------+-+---+-+-----void ChartInit(){ ObjectsDeleteAll(0,0,-1); ChartSetInteger(0,CHART_MODE,CHART_LINE); ChartSetInteger(0,CHART_SHOW_GRID,false);}
外汇程序化交易之枢轴点

枢轴点的应用:

应用1:判断市场趋势

若枢轴点向上突破,则判断市场上涨; 若枢轴点向下突破,则判断市场下跌。 需注意的是,这是一个短期的趋势判断方法,只对当前周期交易有效,下一周期枢轴点需重新计算。

应用2:入场出场信号

若突破阻力位,则入场买多,设支撑位为出场点,突破支撑位则止损; 若跌破支撑位,则入场买空,设阻力位为出场点,突破阻力位则止损。

枢轴点的延伸:

Woodie's枢轴点

Woodie's枢轴点与传统枢轴点类似,但计算方式略有不同,更注重先前时段的收盘价。计算规则如下:

P = (H+L+2×C)/4

R1 = (2×P)−L

R2 = P+H−L

S1 = (2×P)−H

S2 = P−H+L

Camarilla枢轴点

Camarilla枢轴点的支撑和阻力共包含八个水平。计算规则如下:

R4 = (H−L)×1.1/2+C

R3 = (H−L)×1.1/4+C

R2 = (H−L)×1.1/6+C

R1 = (H−L)×1.1/12+C

S1 = C−(H−L)×1.1/12

S2 = C−(H−L)×1.1/6

S3 = C−(H−L)×1.1/4

S4 = C−(H−L)×1.1/2

DeMark's枢轴点

Tom DeMark's枢轴点是一种流行的预测未来趋势的方法。DeMark's枢轴点不能算严格意义上的枢轴点,而是预测时段高低位的方法。计算规则如下:

如果收盘价 < 开盘价,那么 X = H+2×L+C

如果收盘价 > 开盘价,那么 X = 2×H+L+C

如果收盘价 = 开盘价,那么 X = H+L+2×C

新高位= X/2-L

新低位= X/2-H

arrow

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多