投资者咨询:
[求助]趋势跟踪系统程序问题 (文华财经WH8赢智V8.2)来源:文华财经 日期:2018-5-11 16:00
你好,请帮忙写一个双均线的趋势跟踪系统,目前只能写到这一步了。
1. 入市:周K线,EMA5与EMA10金叉多,死叉空(指数,实时价)。 2. 手数:资金总权益风险暴露3%,初损1.5ATR,手数=M1*3%/(1.5ATR*UNIT),(ATR为日K线的值,周期14,下同)。 3. 止损:新仓初损1.5ATR,浮盈1.5ATR设置保本单。 4. 加仓:每上涨(下跌)1.5ATR加仓,手数为抵减权益额(可用资金)的3%风险暴露,加仓手数=M2*3%/(1.5ATR*UNIT),亦设置1.5ATR止损。 6. 出市:止损位,双均线出现金叉死叉,总回撤≥20%(任一触发均出市,市价单) 说明: M1为总权益额,M2为除保证金的可用资金;
目前会写的程序:
EMA5:EMA(CLOSE,5); //定义5周期EMA
EMA10:EMA(CLOSE,10);//定义10周期EMA
#IMPORT[DAY,1,ATR] AS VAR
ATR1:VAR.ATR; //周K线上调用日K线ATR,记为ATR1
K:=MONEY*0.03/(1.5*ATR1*UNIT);//开仓手数,总资金3%风险暴露,止损反向波动1.5日ATR
CROSSUP(EMA5,EMA10),BPK(K);
CROSSDOWN(EMA5,EMA10),SPK(K);
C<BKPRICE-REF(ATR1,BARSBK)*1.5,SP(BKVOL);//反向波动1.5ATR,全部止损
C>SKPRICE+REF(ATR1,BARSSK)*1.5,BP(SKVOL);
CHECKSIG(BPK,'A',0,'C',0,0);
CHECKSIG(SPK,'A',0,'C',0,0);
CHECKSIG(BP,'A',0,'C',0,0);
CHECKSIG(SP,'A',0,'C',0,0);
多谢。
参考:
EMA5:EMA(CLOSE,5); //定义5周期EMA
EMA10:EMA(CLOSE,10);//定义10周期EMA
#IMPORT[DAY,1,ATR] AS VAR
ATR1:VAR.ATR; //周K线上调用日K线ATR,记为ATR1
K:=MONEY*0.03/(1.5*ATR1*UNIT);//开仓手数,总资金3%风险暴露,止损反向波动1.5日ATR
KZ:=MONEYTOT/(1.5*ATR1*UNIT);
ZC:=BKVOL<KZ*0.7 || SKVOL<KZ*0.7;
CROSSUP(EMA5,EMA10)&&BKVOL=0,BK(K);
CROSSDOWN(EMA5,EMA10)&&SKVOL=0,SK(K);
C>BKPRICE+1.5*ATR1 &&ZC,BK(K);
C<SKPRICE-1.5*ATR1 &&ZC,SK(K);
CROSSUP(EMA5,EMA10),BP(SKVOL);
CROSSDOWN(EMA5,EMA10),SP(BKVOL);
(INITMONEY-MONEYTOT)/INITMONEY>0.2,CLOSEOUT;
C<BKPRICE-REF(ATR1,BARSBK)*1.5 ,SP(BKVOL);//反向波动1.5ATR,全部止损
C>SKPRICE+REF(ATR1,BARSSK)*1.5 ,BP(SKVOL);
MULTSIG(0,0,100,0);
投资者咨询:
[求助]趋势跟踪系统程序问题 (文华财经WH8赢智V8.2)来源:文华财经 日期:2018-5-11 16:00
加仓或止损的ATR1,是想取上一次开仓的值,不是现在的值。
谢谢
引用开仓ATR参考下面的修改,KZ取权益可开仓的总手数,ZC判断持仓小于70%
具体有您不熟悉的函数可以参考函数说明了解:
EMA5:EMA(CLOSE,5); //定义5周期EMA
EMA10:EMA(CLOSE,10);//定义10周期EMA
#IMPORT[DAY,1,ATR] AS VAR
ATR2:VAR.ATR; //周K线上调用日K线ATR,记为ATR1
ATR1:REF(ATR2,BARSLAST(CROSS(BKVOL+SKVOL,0.5)));
K:=MONEY*0.03/(1.5*ATR1*UNIT);//开仓手数,总资金3%风险暴露,止损反向波动1.5日ATR
KZ:=MONEYTOT/(1.5*ATR1*UNIT);
ZC:=BKVOL<KZ*0.7 || SKVOL<KZ*0.7;
CROSSUP(EMA5,EMA10)&&BKVOL=0,BK(K);
CROSSDOWN(EMA5,EMA10)&&SKVOL=0,SK(K);
C>BKPRICE+1.5*ATR1 &&ZC,BK(K);
C<SKPRICE-1.5*ATR1 &&ZC,SK(K);
CROSSUP(EMA5,EMA10),BP(SKVOL);
CROSSDOWN(EMA5,EMA10),SP(BKVOL);
(INITMONEY-MONEYTOT)/INITMONEY>0.2,CLOSEOUT;
C<BKPRICE-REF(ATR1,BARSBK)*1.5 ,SP(BKVOL);//反向波动1.5ATR,全部止损
C>SKPRICE+REF(ATR1,BARSSK)*1.5 ,BP(SKVOL);
MULTSIG(0,0,100,0);
投资者咨询:
[求助]趋势跟踪系统程序问题 (文华财经WH8赢智V8.2)来源:文华财经 日期:2018-5-11 16:00
你好,为解决均线交叉时,成交价大幅偏离均线交叉价。开多:EMA10-EMA5<=0.3*ATR1&&CLOSE-EMA10>=0.2*ATR1
止损,下跌1.5ATR1止损(ATR1为开仓时的日K线的值)
空开:EMA5-EMA10<=0.3*ATR1&&EMA10-CLOSE>=0.2*ATR1
EMA5:EMA(CLOSE,5); //定义5周期EMA
EMA10:EMA(CLOSE,10);//定义10周期EMA
#IMPORT[DAY,1,ATR] AS VAR
ATRK:VAR.ATR; //周K线日上调用K线ATR,记为ATRK
A:=IF(EMA5<=EMA10,IF(EMA10-EMA5<=0.3*ATRK&&CLOSE-EMA10>=0.2*ATRK,1,0),IF(EMA5-EMA10<=0.3*ATRK&&EMA10-CLOSE>=0.2*ATRK,2,0));
//判断入市信号,|EMA10-EMA5|<=0.3*ATRK&&|CLOSE-EMA10|>=0.2*ATRK
A=1,BPK(1); //如果返回1,多开
CLOSE<BKPRICE-REF(ATRK,BARSBK)*1.5,SP(1);//多开后下跌1.5ATR1,止损
MULTSIG(0,0,60,0);
A=2,SPK(1); //如果返回2,空开
CLOSE>SKPRICE+REF(ATRK,BARSSK)*1.5,BP(1);//空开后上涨1.5ATR1,止损
运行结果入市信号正常,但止损我的想法执没有按照行,帮我看看程序那个地方有问题??
谢谢
投资者咨询:
[求助]趋势跟踪系统程序问题 (文华财经WH8赢智V8.2)来源:文华财经 日期:2018-5-11 16:00
是在指数的周K线上测试。
投资者咨询:
[求助]趋势跟踪系统程序问题 (文华财经WH8赢智V8.2)来源:文华财经 日期:2018-5-11 16:00
你好,IF语句没有写成功,我改用的if then语句,现在大部分是正确的,但有少数的几个信号止损不对。请帮我查看一下。EMA5:EMA(CLOSE,5); //定义5周期EMA
EMA10:EMA(CLOSE,10);//定义10周期EMA
#IMPORT[DAY,1,ATR] AS VAR
ATRK:VAR.ATR; //周K线日上调用K线ATR,记为ATRK
IF EMA5<=EMA10 THEN
BEGIN
IF EMA10-EMA5<=N*ATRK&&CLOSE-EMA10>=P*ATRK THEN
A:=1;
ELSE
A:=0;
END
ELSE
BEGIN
IF EMA5-EMA10<=N*ATRK&&EMA10-CLOSE>=P*ATRK THEN
A:=2;
ELSE
A:=0;
END
A=1,BPK(1); //如果返回1,多开
CLOSE<BKPRICE-REF(ATRK,BARSBK)*1.5,SP(1);//多开后下跌1.5ATRK,止损
MULTSIG(0,0,60,10);
A=2,SPK(1); //如果返回2,空开
CLOSE>SKPRICE+REF(ATRK,BARSSK)*1.5,BP(1);//空开后上涨1.5ATRK,止损
谢谢
下午相关同事上班后给您回复
投资者咨询:
[求助]趋势跟踪系统程序问题 (文华财经WH8赢智V8.2)来源:文华财经 日期:2018-5-11 16:00
哭了,怎么没人回答?我要单独发帖吗?