公式理解的问题 (文华财经WH8赢智V8.2)

投资者咨询:公式理解的问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-30 10:22
 K1:=0.5;
K2:=0.5;
MDAY:=1;
NDAY:=1;
I_OFFSET:=MINPRICE;  
HH1:=HHV(H,MDAY);
HC1:=HHV(C,MDAY);
LL1:=LLV(L,MDAY);
LC1:=LLV(C,MDAY);
HH2:=HHV(H,NDAY);
HC2:=HHV(C,NDAY);
LL2:=LLV(L,NDAY);
LC2:=LLV(C,NDAY);
SELLRANGE:=MAX(HH1 - LC1,HC1 - LL1);
BUYRANGE:=MAX(HH2 - LC2,HC2 - LL2);
BUYTRIG:=K1*BUYRANGE;
SELLTRIG:=K2*SELLRANGE;
BUYPOSITION1:VALUEWHEN(DAYBARPOS=1,OPEN)+BUYTRIG;//上轨
SELLPOSITION1:VALUEWHEN(DAYBARPOS=1,OPEN)-SELLTRIG;//下轨
CROSS(H,BUYPOSITION1),BPK;
CROSSDOWN(L,SELLPOSITION1),SPK;
SELLPRICE:=MIN(OPEN,SELLPOSITION1)-I_OFFSET;
BUYPRICE:=MIN(OPEN,BUYPOSITION1)-I_OFFSET;
SETSIGPRICETYPE(BPK,BUYPRICE);
SETSIGPRICETYPE(SPK,SELLPRICE);
AUTOFILTER;

老师您好,这是本论坛搜索到的dual_thrust的源码,我有几个问题想问一下

1.开头的K1,K2,MDAY,NDAY是不是参数,可以在右边的参数列表里面设置,修改数字?

2.SELLPRICE:=MIN(OPEN,SELLPOSITION1)-I_OFFSET;//取开盘价和下轨比较后的最小值再减去一个最小变动价位
BUYPRICE:=MIN(OPEN,BUYPOSITION1)-I_OFFSET;//取开盘价和上轨比较后的最小值再减去一个最小变动价位

注释是我自己加上的,我不太明白这两句话的意思,既然这个策略是在开盘价的基础上计算上下轨,那为什么要再比较一次开盘价和上下轨的值,而且还要再减去一个最小变动价位呢?
技术人员回复
日期:2018-5-30 10:42
 1、是的

可以在右边的参数列表里面设置,修改数字

2、您的理解是对的

不同交易者思路是不同的,所以我们也不知道这个取值的目的是什么的

只能给您从源码上进行分析下
投资者咨询:公式理解的问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-30 10:22
 好的,我还想问下,因为原版的系统价格是击穿上下轨就以上下轨的价格开仓,但是在软甲里面运行一下发现,实际是以收盘价开仓的,请问这个怎么修改啊?
技术人员回复
日期:2018-5-30 13:19
指定价格委托不支持回测的,所以都是按照收盘价回测

您加入模组中进行模拟实盘,就会按照您设置的价格委托了

模组加载:软件右上角》帮助》软件说明书》程序化交易基本流程》三(二)模组,您试下


投资者咨询:公式理解的问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-30 10:22
 我用收盘价回测,但是用触发价格模拟交易,那回测出来的数据没有意义啊,除非我也是用收盘价交易,但是这就和原版系统不同了,这个没有办法解决么?
技术人员回复
日期:2018-5-30 18:41
请您参考4楼回复理解一下,收盘价模型主图回测时都是以收盘价计算的

或者您可以参考一下方式,通过指令价模型回测是以盘中最新价计算:

 K1:=0.5;
K2:=0.5;
MDAY:=1;
NDAY:=1;
I_OFFSET:=MINPRICE;  
HH1:=HHV(H,MDAY);
HC1:=HHV(C,MDAY);
LL1:=LLV(L,MDAY);
LC1:=LLV(C,MDAY);
HH2:=HHV(H,NDAY);
HC2:=HHV(C,NDAY);
LL2:=LLV(L,NDAY);
LC2:=LLV(C,NDAY);
SELLRANGE:=MAX(HH1 - LC1,HC1 - LL1);
BUYRANGE:=MAX(HH2 - LC2,HC2 - LL2);
BUYTRIG:=K1*BUYRANGE;
SELLTRIG:=K2*SELLRANGE;
BUYPOSITION1:VALUEWHEN(DAYBARPOS=1,OPEN)+BUYTRIG;//上轨
SELLPOSITION1:VALUEWHEN(DAYBARPOS=1,OPEN)-SELLTRIG;//下轨
REF(CROSS(H,BUYPOSITION1),1),BPK;
REF(CROSSDOWN(L,SELLPOSITION1),1),SPK;
SELLPRICE:=MIN(OPEN,SELLPOSITION1)-I_OFFSET;
BUYPRICE:=MIN(OPEN,BUYPOSITION1)-I_OFFSET;
SETSIGPRICETYPE(BPK,BUYPRICE);
SETSIGPRICETYPE(SPK,SELLPRICE);
MULTSIG(0,0,1,0);
AUTOFILTER;

投资者咨询:公式理解的问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-30 10:22
 我没有太明白,按照图中的显示,大阴线击穿下轨后没有开仓,在收盘价开仓,这样错过了价格,也造成了信号和回测失真,不能在穿越下轨时的价位出现信号么?
指令价模型回测是以盘中最新价计算这句话没有看懂

图片点击可在新窗口打开查看
技术人员回复
日期:2018-5-30 21:54
 可以在满足条件位置出信号的,但是模型也是在第二根开仓的所以6楼在第二根进行判断

在下穿当根出现号参考,回测时是以当时盘中对应的最新价计算的:

 K1:=0.5;
K2:=0.5;
MDAY:=1;
NDAY:=1;
I_OFFSET:=MINPRICE;  
HH1:=HHV(H,MDAY);
HC1:=HHV(C,MDAY);
LL1:=LLV(L,MDAY);
LC1:=LLV(C,MDAY);
HH2:=HHV(H,NDAY);
HC2:=HHV(C,NDAY);
LL2:=LLV(L,NDAY);
LC2:=LLV(C,NDAY);
SELLRANGE:=MAX(HH1 - LC1,HC1 - LL1);
BUYRANGE:=MAX(HH2 - LC2,HC2 - LL2);
BUYTRIG:=K1*BUYRANGE;
SELLTRIG:=K2*SELLRANGE;
BUYPOSITION1:VALUEWHEN(DAYBARPOS=1,OPEN)+BUYTRIG;//上轨
SELLPOSITION1:VALUEWHEN(DAYBARPOS=1,OPEN)-SELLTRIG;//下轨
CROSS(H,BUYPOSITION1),BPK;
CROSSDOWN(L,SELLPOSITION1),SPK;
SELLPRICE:=MIN(OPEN,SELLPOSITION1)-I_OFFSET;
BUYPRICE:=MIN(OPEN,BUYPOSITION1)-I_OFFSET;
SETSIGPRICETYPE(BPK,BUYPRICE);
SETSIGPRICETYPE(SPK,SELLPRICE);
MULTSIG(0,0,1,0);
AUTOFILTER;
投资者咨询:公式理解的问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-30 10:22
 那我想这个交易系统的源码变成日内交易的,请问怎么改啊?
技术人员回复
日期:2018-5-31 8:42
 请参考:

 K1:=0.5;
K2:=0.5;
MDAY:=1;
NDAY:=1;
I_OFFSET:=MINPRICE;  
HH1:=HHV(H,MDAY);
HC1:=HHV(C,MDAY);
LL1:=LLV(L,MDAY);
LC1:=LLV(C,MDAY);
HH2:=HHV(H,NDAY);
HC2:=HHV(C,NDAY);
LL2:=LLV(L,NDAY);
LC2:=LLV(C,NDAY);
SELLRANGE:=MAX(HH1 - LC1,HC1 - LL1);
BUYRANGE:=MAX(HH2 - LC2,HC2 - LL2);
BUYTRIG:=K1*BUYRANGE;
SELLTRIG:=K2*SELLRANGE;
BUYPOSITION1:VALUEWHEN(DAYBARPOS=1,OPEN)+BUYTRIG;//上轨
SELLPOSITION1:VALUEWHEN(DAYBARPOS=1,OPEN)-SELLTRIG;//下轨
CROSS(H,BUYPOSITION1),BPK;
CROSSDOWN(L,SELLPOSITION1),SPK;
SELLPRICE:=MIN(OPEN,SELLPOSITION1)-I_OFFSET;
BUYPRICE:=MIN(OPEN,BUYPOSITION1)-I_OFFSET;
SETSIGPRICETYPE(BPK,BUYPRICE);
SETSIGPRICETYPE(SPK,SELLPRICE);
CLOSEMINUTE1<=1;
MULTSIG(0,0,1,0);
AUTOFILTER;