国外经典策略库1

来源:互联网 发布:第五代网络播放机骗局 编辑:程序博客网 时间:2024/05/17 04:30

国外经典策略库
(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: 1 100 14 DMI的N值
M: 1 30 6 ADX均线周期 ,DMI的M值
AVGLEN: 10 50 30 最高最低价的EMA周期数
ENTRYBAR: 1 5 2 保持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:=C

0 0