国外策略库.docx
《国外策略库.docx》由会员分享,可在线阅读,更多相关《国外策略库.docx(34页珍藏版)》请在冰豆网上搜索。
国外策略库
国外经典策略库
(1)基于ADX及EMA的交易系统
/*策略说明:
基于ADX及EMA进行判断
系统要素:
1.计算30根k线最高价和最低价的EMA价差
2.计算12根k线的ADX
入场条件:
满足上根K线的收盘价收于EMA30之上,且ADX向上的条件在EntryBarBAR内该条件成立
当前价小于等于SellSetup,做空,当条件满足超过EntryBarBAR后,取消入场
当前价大于等于BuySetup,做多,当条件满足超过EntryBarBAR后,取消入场
出场条件:
多:
当前价格下破30根K线最高价的EMA
空:
当前价格上穿30根K线最低价的EMA
*/
参数:
N:
110014DMI的N值
M:
1306ADX均线周期,DMI的M值
AVGLEN:
105030最高最低价的EMA周期数
ENTRYBAR:
152保持BuySetup触发BAR数
TR:
=SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N);RangeLeader是个当前K线的中点在之前K线的最高点上,且当前K线的振幅大于之前K线的振幅的K线
2.计算高点和低点的移动平均线
入场条件:
1、上根K线为RangeLead,并且上一根收盘价大于N周期前高点的MA,当前无多仓,则开多仓
2、上根K线为RangeLead,并且上一根收盘价小于N周期前低点的MA,当前无空仓,则开空仓
出场条件:
1.开仓后,5个K线内用中轨止损,5个K线后用外轨止损
*/
参数:
ABSDISP:
1105高低点均线前移周期
AVGLEN:
15020高低点均线计算周期
EXITBAR:
1105止损周期参数,该周期以前中轨止损,以后外轨止损
RANGE1:
=HIGH-LOW;
UPPERAVG:
=MA(REF(HIGH,ABSDISP),AVGLEN);平移的boll通道
入场条件:
1、关键价格突破通道上轨,则开多仓
2、关键价格突破通道下轨,则开空仓
出场条件:
1、关键价格突破通道上轨,则平空仓
2、关键价格突破通道下轨,则平多仓
*/
参数:
SDLEN:
12012boll标准差周期参数
AVGLEN:
1103boll均线周期参数
SDEV:
1102boll通道倍数参数
DISP:
12016boll平移参数
将移动平均K线向后平移一定BAR数即为置换均线
2.相隔一定BAR数的收盘价二次穿越置换均线
3.二次穿越完成时那根BAR的高点(或低点)作为突破进场价
4.完成二次穿越的一定BAR数内突破
入场条件:
1.有效期内价格向上突破设定进场价做多
2.有效期内价格向下突破设定进场价做空
出场条件:
1.价格反向穿越均线后止损
2.基于N根K线的高低点的跟踪止损
*/
参数:
AVGLENGTH:
1105均线周期
AVGDISPLACE:
1105置换均线向后平移Bar数
VALIDBARS2:
1105开仓先决条件之二(上穿后再下穿)条件值保持有效的BAR数
VALIDBARS1:
1105开仓先决条件之一(收盘价上穿DMA均线)条件值保持有效的BAR数
VALIDBARS3:
1105开仓先决条件(上穿再下穿再上穿)条件值保持有效的BAR数
TRAILSBARS:
1105多少根BAR的最低价作为跟踪止损价
根据价格与快速均线和慢速均线的关系来判断大的趋势,价格在上为多头趋势,在下为空头趋势
2.根据2根K线收盘位置构成的形态来判断小趋势,第一根收盘靠近低点第二根收盘靠近高点为上涨趋势,否则为下跌趋势
3.最近2根K线的高低点形成的通道
入场条件:
1.大趋势为多头趋势,且K线形态也为多头趋势时,突破通道高点做多
2.大趋势为空头趋势,且K线形态也为空头趋势时,突破通道低点做空
出场条件:
1.开多以开仓BAR的最近N根BAR的低点作为止损价
开空以开仓BAR的最近N根BAR的高点作为止损价
2.盈利超过止损额的一定倍数止盈
*/
参数:
FASTLENGTH:
1108快速均线周期
SLOWLENGTH:
110040慢速均线周期
RISKLENGTH:
1102止损通道的周期数
PROFITFACTOR:
1102止盈相对止损的倍数
用MACD慢线在零轴上判断趋势
2.在多头趋势中以收盘价和波动率构成入场出场通道
空:
1.用MACD慢线在零轴下判断趋势
2.在空头趋势中以收盘价和波动率构成入场出场通道
入场条件:
1.价格高于MACD慢线上穿零轴的当前价格和波动率组成的通道上轨,做多
2.价格低于MACD慢线下穿零轴的当前价格和波动率组成的通道下轨,做空
出场条件:
多:
1.macd慢线在零轴下
2.价格低于MACD慢线上穿零轴的当前价格和波动率组成的通道下轨
3.价格低于多头趋势形成时的最低价格出场
空:
1.macd慢线在零轴上
2.价格高于MACD慢线下穿零轴的当前价格和波动率组成的通道上轨
3.价格高于空头趋势形成时的最高价格出场
*/
参数:
FASTMA:
1104macd短周期值
SLOWMA:
12010macd长周期值
AVGMA:
12016MACD慢线周期值
ATRLEN:
110010atr周期值
EATRPCNT:
1101入场通道波动率过滤数值
XATRPCNT:
1101出场通道波动率过滤数值
MACDLINE:
=EMA(CLOSE,FASTMA)-EMA(CLOSE,SLOWMA);算价格通道
2.收盘价加上ATR的一定倍数作为进场价
入场条件:
多:
1.上一根Bar创新高
2.当前Bar最高价突破上一根Bar收盘价加上ATR的一定倍数
空:
1.上一根Bar创新低
2.当前Bar最低价突破上一根Bar收盘价减去ATR的一定倍数
出场条件:
多:
1.记录多头进场后的跟踪止损价
2.价格向下突破跟踪止损价多头出场
空:
1.记录空头进场后的跟踪止损价
2.价格向上突破跟踪止损价空头出场
*/
参数:
LENGTH:
110010用于计算ATR和新低价的Bar数
TRIGGER:
01用于计算空头进场价的驱动系数
FIRST:
1105用于计算在进场Bar设置止损价的系数
ACCELER:
01抛物线的加速系数
如果1号k线收盘价高于3号k线最高点,开始设置做多交易区域,上轨为3号K线高点,下轨为标号为1起CancelFlagN根K线的低点
如果标号为0的K线收盘价在上下轨之间,则做多区域设置成功,如果收盘价低于下轨则区域设置取消
2.如果1号k线收盘价低于3号k线最低点,开始设置做空交易区域,下轨为3号K线低点,上轨为标号为1起CancelFlagN根K线的高点
如果标号为0的K线收盘价在上下轨之间,则做空区域设置成功,如果收盘价高于上轨则区域设置取消
入场条件:
1.做多区域设置成功时,当前k线高于标号为0的K线高点时入场做多
2.做空区域设置成功时,当前k线低于标号为0的K线低点时入场做空
出场条件:
1.基于ATR的保护性止损
2.基于ATR的盈亏平衡止损
3.基于ATR的盈利止盈
*/
参数:
ATRLENGTH:
110010ATR的值
CANCELFLAGN:
1105用于计算取消区域成功设置标志的上下轨的N值
PROTECT:
01保护性止损的ATR乘数
PROFITTARGET:
1105盈利止盈的ATR乘数
BREAK:
0103盈亏平衡止损的ATR乘数
计算50根k线最高价的区间
2.计算30根k线最低价的区间
入场条件:
多:
1.价格高于50根K线最高价的区间入场
空:
1.价格低于50根K线最低价的区间入场
出场条件:
多:
1.当前价格低于30根K线最低价的区间出场
2.当前价格低于入场价一定ATR波动率幅度出场
空:
1.当前价格高于30根K线最高价的区间出场
2.当前价格高于入场价一定ATR波动率幅度出场
*/
参数:
ATRVAL:
110010波动率参数
LENGTH1:
110050长周期区间参数
LENGTH2:
110030短周期区间参数
IPS:
1104保护止损波动率参数
计算关键价格的凯特纳通道
2.价格突破凯特纳通道后,设定入场触发单
入场条件:
1、价格突破凯特纳通道后,在当根K线高点之上N倍通道幅度,设定多头触发单,此开仓点将挂单X根k线
2、价格突破凯特纳通道后,在当根K线低点之下N倍通道幅度,设定空头触发单,此开仓点将挂单X根k线
出场条件:
1.价格下穿轨道中轨时平仓
2.价格小于N周期低点平仓
*/
参数:
LENGTH:
110010均线参数
CONSTT:
15通道倍数
CHANPCNT:
01入场参数
STOPN:
1104低点止损参数
BUYN:
1105入场触发条件有效K线周期
SELLN:
1105入场触发条件有效K线周期
当价格死叉均线时,上根k线的低点为支撑线初始化,当价格金叉均线时,上根k线的高点为阻力线初始化
2.当价格低于均线时不断更新支撑线,当价格高于均线时不断更新阻力线
3.当价格金叉均线又死叉均线时记录上根阻力线作为做多的价格线,当价格死叉均线又金叉均线时记录上根支撑线作为做空的价格线
入场条件:
1.当价格高于做多的价格线时做多
2.当价格低于做空的价格线时做空
出场条件:
1.基于ATR的保护性止损
2.基于ATR的跟踪止损
*/
参数:
MALENGTH:
110010均线值
ATRLENGTH:
15ATR的值
PROTECT:
01保护性止损的ATR乘数
TRAIL:
110跟踪止损的ATR乘数
价格死叉均线时,上根K线的低点为支撑线初始化,当价格金叉均线时,上根K线的高点为阻力线初始化
价格低于均线时不断更新支撑线,当价格高于均线时不断更新阻力线
价格金叉均线又死叉均线时记录上根阻力线作为做多的价格线
CROSSFLAGFORL:
=CROSSDOWN(C,MA1);
CROSSFLAGFORS:
=CROSSUP(C,MA1);
SUPPORTFLAG:
=LOOP2(CROSSFLAGFORL=1,1,LOOP2(CROSSFLAGFORS=1&&REF(SUPPORTFLAG,1)=1,0,1));
RESISTANCEFLAG:
=LOOP2(CROSSFLAGFORL=1&&REF(RESISTANCEFLAG,1)=1,0,LOOP2(CROSSFLAGFORS=1,1,0));
RESISTANCELINE:
=LOOP2((CROSSFLAGFORS=1&&REF(SUPPORTFLAG,1)=1&&REF(RESISTANCEFLAG,2)=0)||(C>MA1&&HIGH>REF(RESISTANCELINE,1)),HIGH,NULL);
ENTRYPRICEL:
=LOOP2(CROSSFLAGFORL=1&&REF(RESISTANCEFLAG,1)=1&&REF(SUPPORTFLAG,2)=0,REF(RESISTANCELINE,1),NULL);
SUPPORTLINE:
=LOOP2((CROSSFLAGFORL=1&&REF(RESISTANCEFLAG,1)=1&&REF(SUPPORTFLAG,2)=0)||(C以快速均线与慢速均线的交叉初步判断趋势
2.均线交叉后以最近几根K线的高低点加上一定幅度设定为突破通道
3.均线交叉后一定K线根数内突破通道则趋势有效,否则等待下次趋势
入场条件:
1.当价格向上突破通道时做多
2.当价格向下突破通道时做空
出场条件:
1.趋势反转突破时平仓
2.基于周期高低点的跟踪止损
再入场条件:
1.未发生趋势反转
2.跟踪止损后一定K线根数内突破止损时N根K线的高低点时再进场
*/
参数:
FASTLEN:
1109快速均线周期数
SLOWLEN:
110018慢速均线周期数
CHLEN:
110012通道突破的周期数
EXTRAPER:
11000300通道突破的幅度(万分比),如:
300=3%
TRAILBAR:
1108通道突破的幅度(万分比),如:
300=3%
REENTRY:
110010再进场通道突破的周期数
FASTMA:
MA(CLOSE,FASTLEN);
SLOWMA:
MA(CLOSE,SLOWLEN);
平移后的高低点通道
2.atr止损
入场条件:
1.当高点上穿平移通道高点时,开多仓
2.当低点下穿平移通道低点时,开空仓
出场条件:
跟踪止盈
2.通道止损
*/
参数:
CHANLENGTH:
110020通道计算周期
CHANDELAY:
110015通道平移周期
ATRLENGTH:
110010ATR计算周期
TRAILINGATRS:
1103ATR跟踪止损倍数
计算波动加权WOBV,根据WOBV预期均值关系,设定触发条件单
入场条件:
1.当WOBV上穿它的MA时,在当根K线高点建立做多触发单
2.当WOBV下穿它的MA时,在当根K线低点建立做空触发单
出场条件:
1.当WOBV上穿它的MA时,次根K线开盘平空仓
2.当WOBV下穿它的MA时,次根K线开盘平多仓
*/
参数:
AVGLENGTH:
110025计算WOBV的ma周期值
10个开盘价的指数移动平均与10个收盘价的指数移动平均之差若上穿零轴定义为上升趋势,上升趋势定义满足后将上穿K线的最高价加上10周期的ATR的一半作为多头入场触发价,同时将上穿K线的最低价减去10周期的ATR的一半作为多头平仓触发价;
2.10个开盘价的指数移动平均与10个收盘价的指数移动平均之差若下穿零轴定义为下降趋势,下降趋势定义满足后将下穿K线的最低价减去10周期的ATR的一半作为空头入场触发价,同时将下穿K线的最高价加上10周期的ATR的一半作为空头平仓触发价;
入场条件:
1.10个开盘价的指数移动平均大于10个收盘价的指数移动平均并且向上突破了多头触发价则进场做多;
2.10个开盘价的指数移动平均小于10个收盘价的指数移动平均并且向下突破了空头触发价则进场做空;
出场条件:
1.跌破多头平仓触发价或者转为下降趋势多头平仓;
2.突破空头平仓触发价或者转为上升趋势空头平仓;
*/
参数:
CLOSELEN:
110010用于计算收盘价指数移动平均的周期
OPENLEN:
110010用于计算开盘价指数移动平均的周期
K线的加权均值=(最高价+最低价+2*收盘价)/4
2.支撑线=K线加权均值-(最高价-K线加权均值)
3.阻力线=K线加权均值+(K线加权均值-最低价)
入场条件:
1.当价格向上突破阻力线做多
2.当价格向下突破支撑线做空
出场条件:
1.趋势反转即反向突破时出场
2.基于ATR的一定倍数的止盈
*/
参数:
ATRLENGTH:
110010ATR周期
ATRS:
1103几倍ATR止盈
统将当前价格和MA之差定义为DRD
2.计算RDV:
N天DRD的加和除以DRD绝对值的加和
入场条件:
1.设置ETLong为入市阈值,如果RDV>ETLong,则入场做多
2.设置ETShort为入市阈值,如果RDV出场条件:
1.如果RDV下穿0,多头平仓
2.如果RDV上穿0,空头平仓
*/
参数:
RMALEN:
110015
ETLONG:
1105根据N根K线的收盘价相对前一根K线的涨跌计算出市场强弱指标
2.最近9根K线的动量变化趋势
3.最近N根K线的高低点形成的通道
入场条件:
1.市场强弱指标为多头,且市场动量由空转多时,突破通道高点做多
2.市场强弱指标为空头,且市场动量由多转空时,突破通道低点做空
出场条件:
1.开多以开仓BAR的最近N根BAR的低点作为止损价
开空以开仓BAR的最近N根BAR的高点作为止损价
2.盈利超过止损额的一定倍数止盈
3.出现反向信号止损
*/
参数:
LENGTH:
1105强弱指标和通道计算的周期值
STOP_LEN:
1105止损通道的周期值
PROFITFACTOR:
0103止盈相对止损的倍数
ENTRYS:
010095强弱指标的进场值
1根长期均线进行趋势判断
2.2根较短均线值之差揭示的动能变化为交易提供基础
入场条件:
1.当价格高于长期均线且动能相对之前变强时做多
2.当价格低于长期均线且动能相对之前变弱时做空
出场条件:
1.当动能减弱时,价格低于ExitStopN根K线低点多头平仓
2.当动能增强时,价格高于ExitStopN根K线高点空头平仓
*/
参数:
TRENDMAL:
110050显示趋势的均线值
EXITSTOPN:
1103求高低点的bar数值
SLOWLENGTH:
010020动能计算中的慢均线值
FASTLENGTH:
010050动能计算中的快均线值
算三条指数移动平均线(Avg1,Avg2,Avg3);
2.通过指数移动平均线的组合来判断趋势
入场条件:
1.当Avg1向上穿过Avg2并且Avg2大于Avg3时,在下一根k线开盘处买入
2.当Avg1向下穿过Avg2并且Avg2小于Avg3时,在下一根k线开盘处卖出
出场条件:
下穿Avg2多头出场
2.跟踪止损
*/
参数:
AVGLEN1:
11006
AVGLEN2:
110012
AVGLEN3:
110028
RLENGTH:
11004
始止损
2.跟踪止损(盈利峰值价回落ATR的一定倍数)
3.收盘价创7周期低点,且K线中点低于前K线最低价多头出场
3.收盘价创7周期高点,且K线中点高于前K线最高价空头出场
*/
参数:
RANGELEN:
11007
ATRLEN:
11002
RNGPCNT:
11000200
DMI指标中的ADX指数
2.ConsecBars根阴线(收盘低于前根即可)或ConsecBars根阳线(收盘高于前根即可)
入场条件:
当ADX指数低于25且低于ADXLowThanBefore天前的值时
1.如果出现连续ConsecBars根阴线(收盘低于前根即可),则在下根k线开盘做多
2.如果出现连续ConsecBars根阳线(收盘高于前根即可),则在下根k线开盘做空
出场条件:
1.基于ATR的保护性止损
2.入场ProactiveStopBars根K线后的主动性平仓
*/
参数:
DMI_N:
110014当当前收盘价格大于之前LookBack根K线内某一根k线的收盘价时记+1分,否则记-1分,加总这些分数以获得当前K线的得分
2.对k线的打分计算一条均线
3.对k线的收盘计算一条均线
入场条件:
1.当价格高于收盘价均线,且打分也高于打分均线时的入场做多
2.当价格低于收盘价均线,且打分也低于打分均线时的入场做空
出场条件:
1.基于ATR的保护性止损
2.基于ATR的跟踪止损
3.基于ATR的盈亏平衡止损
*/
参数:
LOOKBACK:
110010价格高于UWM上穿零轴时价格通道,且在SetupLen的BAR数目内,做多
多头出场条件:
1.空头势多单出场
空头入场条件:
1.价格低于UWM下穿零轴时价格通道,在SetupLen的BAR数目内,做空
空头出场条件:
1.多头势空单出场
*/
参数:
MOMLEN:
11005//UWM参数
AVGLEN:
110020//UWM参数
ATRLEN:
11005//ATR参数
ATRPCNT:
01//入场价格波动率参数
SETUPLEN:
1105//条件持续有效K线数
MOMVALUE:
=C-REF(C,MOMLEN);
VWM:
=EMA(VOL*MOMVALUE,AVGLEN);//定义UWM
TRUEHIGH1:
=IF(HIGH>REF(C,1),HIGH,REF(C,1));
TRUELOW1:
=IF(LOW<=REF(C,1),LOW,REF(C,1));
TRUERANGE1:
=IF(ISLASTBAR,H-L,TRUEHIGH1-TRUELOW1);
AATR:
=MA(TRUERANGE1,ATRLEN);//ATR
BULLSETUP:
=CROSSUP(VWM,0);//UWM上穿零轴定义多头势
BEARSETUP:
=CROSSDOWN(VWM,0);//UWM下穿零轴定义空头势
LSETUP:
=LOOP2(BARPOS=1||BULLSETUP,0,REF(LSETUP,1)+1);//多头势开始计数并记录当前价格
LEPRICE:
=VALUEWHEN(BULLSETUP,C);
SSETUP:
=LOOP2(BARPOS=1||BEARSETUP,0,REF(SSETUP,1)+1);//空头势开始计数并记录当前价格
SEPRICE:
=VALUEWHEN(BEARSETUP,C);
//系统入场
//当多头势满足并且在SETUPLEN的BAR数目内,当价格达到入场价格后,做多
BARPOS>AVGLEN&&BKVOL=0&&SKVOL=0&&HIGH>=REF(LEPRICE,1)+(ATRPCNT*REF(AATR,1))&&REF(LSETUP,1)<=SETUPLEN&&LSETUP>=1&&VOL>0,BK;
SETSIGPRICETYPE(BK,MAX(OPEN,REF(LEPRICE,1)+(ATRPCNT*REF(AATR,1))));
//系统出场
BKVOL>0&&BARSBK>0&&VOL>0&&REF(BEARSETUP,1)=1,SP;
SETSIGPRICETYPE(SP,OPEN);
//系统入场
//当空头势满足并且在SETUPLEN的BAR数目内,当价格达到入场价格后,做空
BARPOS>AVGLEN&&BKVOL=0&&SKVOL=0&&L<=REF(SEPRICE,1)-(ATRPCNT*REF(AATR,1))&&REF(SSETUP,1)<=SETUPLEN&&SSETUP>=1&&VOL>0,SK;
SETSIGPRICETYPE(BK,MIN(OPEN,REF(SEPRICE,1)-(ATRPCNT*REF(AATR,1))));
AUTOFILTER;