国外策略库.docx

上传人:b****7 文档编号:23936207 上传时间:2023-05-22 格式:DOCX 页数:81 大小:39.25KB
下载 相关 举报
国外策略库.docx_第1页
第1页 / 共81页
国外策略库.docx_第2页
第2页 / 共81页
国外策略库.docx_第3页
第3页 / 共81页
国外策略库.docx_第4页
第4页 / 共81页
国外策略库.docx_第5页
第5页 / 共81页
点击查看更多>>
下载资源
资源描述

国外策略库.docx

《国外策略库.docx》由会员分享,可在线阅读,更多相关《国外策略库.docx(81页珍藏版)》请在冰豆网上搜索。

国外策略库.docx

国外策略库

国外经典策略库

(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);//收盘价与最低价做差,最高价与前一周期收盘价做差,最低价与前一周期收盘价作差,在上述三个数据中取绝对值最大者,对该最大值做N周期累加求和。

HD:

=HIGH-REF(HIGH,1);//最高价与前一周期最高价做差

LD:

=REF(LOW,1)-LOW;//前一周期最低价与最低价做差

DMP:

=SUM(IFELSE(HD>0&&HD>LD,HD,0),N);//如果HD>0并且HD>LD,取HD否则取0,对取值做N周期累加求和。

DMM:

=SUM(IFELSE(LD>0&&LD>HD,LD,0),N);//如果LD>0并且LD>HD,取LD否则取0,对取值做N周期累加求和。

PDI:

DMP*100/TR;

MDI:

DMM*100/TR;

ADX:

MA(ABS(MDI-PDI)/(MDI+PDI)*100,M);//MDI与PDI差的绝对值与(MDI+PDI)*100做比值,取该比值的M个周期均值。

ADXR:

(ADX+REF(ADX,M))/2;

UPPERMA:

=EMA(HIGH,AVGLEN);//计算30根K线最高价的EMA

LOWERMA:

=EMA(LOW,AVGLEN);//计算30根K线最低价的EMA

CHANSPREAD:

=(UPPERMA-LOWERMA)/2;//通过EMA计算出噪音通道宽度

BUYSETUP:

=C>UPPERMA&&ADX>REF(ADX,1);//当ADX向上且当前价大于30根K线最高价的EMA满足买入准备条件

BUYTARGET:

=C+CHANSPREAD;//满足买入准备条件时,用前BAR价格计算出多头触发价

MROBS:

=BARSLAST(BUYSETUP);//上次满足买入准备条件距离当前BAR的数目

MROBS<=ENTRYBAR&&BKVOL=0&&SKVOL=0&&BARPOS>100&&H>BUYTARGET&&VOL>0,BK;//系统入场

SETSIGPRICETYPE(BK,MAX(OPEN,REF(BUYTARGET,1)));

BKVOL>0&&BARSBK>0&&VOL>0&&LOW<=UPPERMA-MINPRICE,SP;//系统出场

SETSIGPRICETYPE(SP,MIN(OPEN,REF(UPPERMA,1)-MINPRICE));

SELLSETUP:

=CREF(ADX,1);//当ADX向上且当前价下于30根K线最低价的EMA满足卖出准备条件

SELLTARGET:

=C-CHANSPREAD;//满足卖出准备条件时,用前BAR价格计算出空头触发价

MROSS:

=BARSLAST(SELLSETUP);//上次满足卖出准备条件距离当前BAR的数目

MROSS<=ENTRYBAR&&BKVOL=0&&SKVOL=0&&BARPOS>100&&LOW<=SELLTARGET&&VOL>0,SK;

SETSIGPRICETYPE(SK,MIN(OPEN,REF(SELLTARGET,1)));

SKVOL>0&&BARSSK>0&&VOL>0&&HIGH>=LOWERMA+MINPRICE,BP;

SETSIGPRICETYPE(BP,MAX(OPEN,REF(LOWERMA,1)+MINPRICE));

AUTOFILTER;

(2)基于平移的高低点均值通道与K线中值突破的系统

/*策略说明:

基于平移的高点和低点均线通道与K线中值突破进行判断

系统要素:

1.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);//计算N周期前高点的MA,N=参数ABSDISP

LOWERAVG:

=MA(REF(LOW,ABSDISP),AVGLEN);//计算N周期前低点的MA,N=参数ABSDISP

MEDIANPRICE:

=(HIGH+LOW)*0.5;//计算K线中点

EXITAVG:

=MA(REF(MEDIANPRICE,ABSDISP),AVGLEN);//计算N周期前K线中点的MA,N=参数ABSDISP

RANGELEADB:

=MEDIANPRICE>REF(H,1)&&RANGE1>REF(RANGE1,1);//当K线中点大于前一根K线高点并且振幅〉上一根振幅时,RANGELEADB返回1

//系统入场

BKVOL=0&&SKVOL=0&&REF(RANGELEADB,1)=1&&REF(C,1)>REF(UPPERAVG,1),BK;//上根K线RANGELEADB返回1,并且上一根收盘价大于N周期前高点的MA,当前无多仓,则开多仓

SETSIGPRICETYPE(BK,OPEN);

BKVOL=0&&SKVOL=0&&REF(RANGELEADB,1)=1&&REF(C,1)

SETSIGPRICETYPE(SK,OPEN);

//系统出场

BKVOL>0&&BARSBK>0&&BARSBK<=EXITBAR&&LOW

SETSIGPRICETYPE(SP,MIN(OPEN,EXITAVG));

BKVOL>0&&BARSBK>0&&BARSBK>EXITBAR&&LOW<=UPPERAVG-MINPRICE,SP;

//SETSIGPRICETYPE(SP,MIN(OPEN,UPPERAVG-MINPRICE));

SKVOL>0&&BARSSK>0&&BARSSK<=EXITBAR&&H>=EXITAVG,BP;//开仓后N根K线内用中轨止损,N根K线后用上轨止损,N=参数EXITBAR

SETSIGPRICETYPE(BP,MAX(OPEN,EXITAVG));

SKVOL>0&&BARSSK>0&&BARSSK>EXITBAR&&HIGH>=LOWERAVG+MINPRICE,BP;

//SETSIGPRICETYPE(BP,MAX(OPEN,LOWERAVG+MINPRICE));

AUTOFILTER;

(3)基于平移布林通道的系统

/*策略说明:

基于平移的boll通道突破系统

系统要素:

1.平移的boll通道

入场条件:

1、关键价格突破通道上轨,则开多仓

2、关键价格突破通道下轨,则开空仓

出场条件:

1、关键价格突破通道上轨,则平空仓

2、关键价格突破通道下轨,则平多仓

*/

参数:

SDLEN:

12012boll标准差周期参数

AVGLEN:

1103boll均线周期参数

SDEV:

1102boll通道倍数参数

DISP:

12016boll平移参数

//平移BOLL通道计算

AVGVAL:

=MA(C,AVGLEN);

SDMULT:

=STD(C,SDLEN)*SDEV;

DISPTOP:

=REF(AVGVAL,DISP)+SDMULT;

DISPBOTTOM:

=REF(AVGVAL,DISP)-SDMULT;

//系统入场

BKVOL=0&&SKVOL=0&&HIGH>=REF(DISPTOP,1),BK;

SETSIGPRICETYPE(BK,MAX(OPEN,REF(DISPTOP,1)));

BKVOL=0&&SKVOL=0&&LOW<=REF(DISPBOTTOM,1),SK;

SETSIGPRICETYPE(SK,MIN(OPEN,REF(DISPBOTTOM,1)));

//系统出场

BKVOL>0&&BARSBK>0&&LOW<=REF(DISPBOTTOM,1),SP;

SETSIGPRICETYPE(SP,MIN(OPEN,REF(DISPBOTTOM,1)));

SKVOL>0&&BARSSK>0&&HIGH>=REF(DISPTOP,1),BP;

SETSIGPRICETYPE(BP,MAX(OPEN,REF(DISPTOP,1)));

AUTOFILTER;

(4)基于置换均线的二次穿越突破系统

/*策略说明:

本策略是基于置换均线的二次穿越突破系统

系统要素:

1.将移动平均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的最低价作为跟踪止损价

//计算置换均线

MA1:

=MA(CLOSE,AVGLENGTH);

DMA1:

=REF(MA1,AVGDISPLACE);

//判断收盘价是否穿越置换均线

CONCROSSOVER:

=CROSSUP(CLOSE,DMA1);

CONCROSSUNDER:

=CROSSDOWN(CLOSE,DMA1);

//计算最近的一次下穿发生的BAR离当前BAR的根数

BARSLASTCRSUND:

=BARSLAST(CONCROSSUNDER=1);

//计算最近的两次上穿发生的BAR离当前BAR的根数

BARSSECCRSOVR:

=BARSLAST(CONCROSSOVER=1);

BARSFSTCRSOVR:

=BARSSECCRSOVR+REF(BARSLAST(CONCROSSOVER=1),BARSSECCRSOVR);

//计算最近的一次上穿发生的BAR离当前BAR的根数

BARSLASTCRSOVR:

=BARSLAST(CONCROSSOVER=1);

//计算最近的两次下穿发生的BAR离当前BAR的根数

BARSSECCRSUND:

=BARSLAST(CONCROSSUNDER=1);

BARSFSTCRSUND:

=BARSSECCRSUND+REF(BARSLAST(CONCROSSUNDER=1),BARSSECCRSUND);

//设置开仓标志

TJ:

=CONCROSSOVER&&(BARSLASTCRSUND-BARSSECCRSOVR)<=VALIDBARS2&&BARSFSTCRSOVR-BARSLASTCRSUND<=VALIDBARS1;

ENTRYPOINT:

=HIGH+MINPRICE;

TJ1:

=CONCROSSUNDER&&(BARSLASTCRSOVR-BARSSECCRSUND)<=VALIDBARS2&&BARSFSTCRSUND-BARSLASTCRSOVR<=VALIDBARS1;

ENTRYPOINT1:

=LOW-MINPRICE;

//开仓

TJ&&BKVOL=0&&SKVOL=0&&0<=VALIDBARS3&&HIGH>=ENTRYPOINT&&VOL>0,BK;

SETSIGPRICETYPE(BK,MAX(OPEN,ENTRYPOINT));

TJ1&&BKVOL=0&&SKVOL=0&&0<=VALIDBARS3&&LOW<=ENTRYPOINT1&&VOL>0,SK;

SETSIGPRICETYPE(SK,MIN(OPEN,ENTRYPOINT1));

//止损价格计算

REVERSALPRICE:

=REF(DMA1,1)-MINPRICE;

TRAILSTOPPRICE:

=LLV(REF(LOW,1),TRAILSBARS);

REVERSALPRICE1:

=REF(DMA1,1)+MINPRICE;

TRAILSTOPPRICE1:

=HHV(REF(H,1),TRAILSBARS);

//平仓

BKVOL>0&&BARSBK>0&&VOL>0&&LOW<=MAX(REVERSALPRICE,TRAILSTOPPRICE),SP;

SETSIGPRICETYPE(SP,MIN(OPEN,MAX(REVERSALPRICE,TRAILSTOPPRICE)));

SKVOL>0&&BARSSK>0&&VOL>0&&H>=MIN(REVERSALPRICE1,TRAILSTOPPRICE1),BP;

SETSIGPRICETYPE(BP,MIN(REVERSALPRICE1,TRAILSTOPPRICE1));

AUTOFILTER;

(5)基于均线和形态的高低点突破系统多

/*策略说明:

本策略是基于均线和K线形态的高低点突破系统

系统要素:

1.根据价格与快速均线和慢速均线的关系来判断大的趋势,价格在上为多头趋势,在下为空头趋势

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止盈相对止损的倍数

//计算及输出均线指标

MA_FAST:

=MA(CLOSE,FASTLENGTH);

MA_SLOW:

=MA(CLOSE,SLOWLENGTH);

//每根K线的波动范围

RANGE1:

=HIGH-LOW;

//K线形态判断的2个条件

CONDITION1:

=CLOSE<=LOW+0.25*RANGE1;

CONDITION2:

=CLOSE>=HIGH-0.25*RANGE1;

CONDITION11:

=CLOSE>=HIGH-0.25*RANGE1;

CONDITION21:

=CLOSE<=LOW+0.25*RANGE1;

//计算周期的高低点

HH:

=HHV(HIGH,2);

LL:

=LLV(LOW,RISKLENGTH);

LL1:

=LLV(LOW,2);

HH1:

=HHV(HIGH,RISKLENGTH);

//开仓

BKVOL=0&&SKVOL=0&&REF(CONDITION1,2)=1&&REF(CONDITION2,1)=1&&REF(C,1)>REF(MA_FAST,1)&&REF(C,1)>REF(MA_SLOW,1)&&VOL>0&&HIGH>=REF(HH,1)+MINPRICE,BK;

SETSIGPRICETYPE(BK,MAX(OPEN,REF(HH,1)+MINPRICE));

LONGRISK:

=REF(LL,1)-MINPRICE;

BKVOL=0&&SKVOL=0&&REF(CONDITION11,2)=1&&REF(CONDITION21,1)=1&&REF(C,1)0&&LOW

SETSIGPRICETYPE(SK,MIN(OPEN,REF(LL1,1)-MINPRICE));

SHORTRISK:

=REF(HH1,1)+MINPRICE;

//平仓

BKVOL>0&&BARSBK>0&&VOL>0&&HIGH>BKPRICE+PROFITFACTOR*(BKPRICE-LONGRISK),SP;//止盈

SETSIGPRICETYPE(SP,MAX(OPEN,BKPRICE+PROFITFACTOR*(BKPRICE-LONGRISK)));

BKVOL>0&&BARSBK>0&&VOL>0&&LOW<=LONGRISK,SP;//止损

SETSIGPRICETYPE(SP,MIN(OPEN,LONGRISK));

SKVOL>0&&BARSSK>0&&VOL>0&&LOW<=SKPRICE-PROFITFACTOR*(SHORTRISK-SKPRICE),BP;//止盈

SETSIGPRICETYPE(BP,MIN(OPEN,SKPRICE-PROFITFACTOR*(SHORTRISK-SKPRICE)));

SKVOL>0&&BARSSK>0&&VOL>0&&HIGH>=SHORTRISK,BP;//止损

SETSIGPRICETYPE(BP,MAX(OPEN,SHORTRISK));

AUTOFILTER;

(6)基于MACD判断的交易系统

/*策略说明:

基于MACD在价格回撤时进行判断的交易系统

系统要素:

多:

1.用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);//计算MACD快线

SIGNALLINE:

=EMA(MACDLINE,AVGMA);//计算MACD慢线

TRUEHIGH:

=IF(HIGH>REF(C,1),HIGH,REF(C,1));

TRUELOW:

=IF(LOW<=REF(C,1),LOW,REF(C,1));

TRUERANGE:

=IF(ISLASTBAR,H-L,TRUEHIGH-TRUELOW);

AATR:

=MA(TRUERANGE,ATRLEN);//计算ATR波动率

ZEROLINE:

=0;//零轴

CON1:

=CROSSUP(SIGNALLINE,ZEROLINE);//慢线上穿零轴

CON2:

=CROSSDOWN(SIGNALLINE,ZEROLINE);//慢线下穿零轴

UPTREND:

=IF(CON1||NOT(CON2),1,0);

SIGNALFLAG:

=IF(BKVOL>0||NOT(CON1)||NOT(CON2),1,0);

DNTREND:

=IF(NOT(CON1)||CON2,1,0);

BUYSETUP:

=IF(BKVOL=0||NOT(CON2)||UPTREND=1&&SIGNALFLAG=0,1,0);

CTRENDLOW:

=VALUEWHEN((UPTREND=1&&SIGNALFLAG=0)||(UPTREND=1&&MACDLINE

UPPERBAND:

=VALUEWHEN(REF(BUYSETUP,1)=1&&REF(BUYSETUP,2)=0,REF(C,1)+(EATRPCNT*REF(AATR,1)));

EXITBAND:

=VALUEWHEN(REF(BUYSETUP,1)=1&&REF(BUYSETUP,2)=0,REF(CLOSE,1)-(XATRPCNT*REF(AATR,1)));

SIGNALFLAG1:

=IF(SKVOL>0||NOT(CON1)||NOT(CON2),1,0);

SELLSETUP:

=IF(SKVOL=0||NOT(CON1)||DNTREND=1&&SIGNALFLAG1=0,1,0);

CTRENDHIGH:

=VALUEWHEN((DNTREND=1&&SIGNALFLAG1=0)||(DNTREND=1&&MACDLINE>SIGNALLINE&&HIGH>LOOP2(CTRENDHIGH=NULL,NULL,REF(CTRENDHIGH,1))),HIGH);//满足入场条件设定入场价格以及出场价格

LOWERBAND:

=VALUEWHEN(REF(SELLSETUP,1)=1&&R

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 书信模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1