投资者咨询:程序化分组模型编写 (文华财经WH8赢智V8.2)
来源:文华财经 日期:2018-11-21 13:38
欧阳老师请去research@wenhua.com.cn 邮箱收下信件,谢谢。
技术人员回复
日期:2018-11-21 14:07
技术人员回复
日期:2018-11-27 10:35
比如SS取值的方法,目前是按照我们的理解编写的不知道是否可以满足您的需求
VARIABLE:SS:=0;
YHD:=***,RGB(0,128,255);
#IMPORT [DAY,1,ZQ] AS VARMA20//调用日线20天
DA:=***,COLORGRAY;
H1:=***;
L1:=***;
DT:***,COLORMAGENTA;
KT:=***,COLORGREEN;
YH:=***,RGB(0,128,255);//指标的:=按照标红的源码进行修改,方便编写测试时检测SS值
//////////////多头///////////////多头////////////////多头///////////////多头/////////////////
AA:C>DT&&C>DA&&C>YHD&&C>YH&&YHD>YH;//A多单开仓条件
AA,BK('A');
T1:=LASTSIGGROUP=1&&BKVOL>0&&C>DT&&C>YH&&DT>YH&&KT>YH&&CROSSUP(KT,DT);
IF T1 THEN
SS:=DT;//持有多A后出现KT上穿DT,取此时的DT值为SS
IF DT<SS&&T1=0 THEN
SS:=SS;//当DT值小于SS时,SS值有效
IF BKVOL=0&&DT>SS || LASTSIGGROUP>2 THEN
SS:=NULL;//当最新的DT值大于SS时,或者下一次满足开多A条件前出现过开空E或F信号,SS条件失效
DRAWICON(T1,H,1);
DT>YH&&CROSSDOWN(C,DT)&&ISNULL(SS)=1,SP('A');//①当DT大于YH时, C小于DT,收盘价平A
DT<YH&&CROSSDOWN(C,YH)&&ISNULL(SS)=1,SP('A');//②当DT小于YH时,C小于YH,收盘价平A
SS>YH&&CROSSDOWN(C,SS)&&ISNULL(SS)=0&&BKVOL>0,CLOSEOUT;//③DT>YH&&C<SS,指令价SS平A***出现SS后,是否用SS代替DT呢?
SS<YH&&CROSSDOWN(C,YH)&&ISNULL(SS)=0&&BKVOL>0,CLOSEOUT;//④DT<YH&&C<YH,指令价YH平A
DZ:(SS+YH)/2,RGB(128,128,0);//取DT+YH的2分之一的值
C<DZ&&C>YH&&LASTSIGGROUP=1,BK('B');//KT上穿DT后接多
ISNULL(SS)=1&&CROSS(DT,YH)&&C<DT,SP('B');//①最新DT值大于SS(SS为空值),收盘价小于DT平B
DT<=SS&&CROSS(DT,YH)&&C<DT,SP('B');//平掉接的多头B
SS:SS,LINETHICK4;
AUTOFILTER;
投资者咨询:程序化分组模型编写 (文华财经WH8赢智V8.2)
来源:文华财经 日期:2018-11-21 13:38
老师辛苦了,意思接近了但是还有地方不对
如最后一个平仓信号,DT已经大于SS值了,按我的设想是SS值失效了,
17-12-15 10:00 这根CROSS也算成立的吗?它是KT值不变,DT值变小上穿的
技术人员回复
日期:2018-11-27 14:01
但是添加更多的限制条件后,SS就极少有k线满足条件了
VARIABLE:SS:=0;
YHD:=***,RGB(0,128,255);
#IMPORT [DAY,1,ZQ] AS VARMA20//调用日线20天
DA:=***,COLORGRAY;
H1:=***;
L1:=***;
DT:***,COLORMAGENTA;
KT:=***,COLORGREEN;
YH:=***,RGB(0,128,255);
//////////////多头///////////////多头////////////////多头///////////////多头/////////////////
AA:C>DT&&C>DA&&C>YHD&&C>YH&&YHD>YH;//A多单开仓条件
AA,BK('A');
T1:=LASTSIGGROUP=1&&BKVOL>0&&C>DT&&C>YH&&DT>YH&&KT>YH&&DT>REF(DT,1)&&CROSSUP(KT,DT);
IF T1 THEN
SS:=DT;//持有多A后出现KT上穿DT,取此时的DT值为SS
IF DT<SS&&T1=0 THEN
SS:=SS;//当DT值小于SS时,SS值有效
IF BKVOL=0&&DT>SS || LASTSIGGROUP>2 THEN
SS:=NULL;//当最新的DT值大于SS时,或者下一次满足开多A条件前出现过开空E或F信号,SS条件失效
DRAWICON(T1,H,1);
DT>YH&&CROSSDOWN(C,DT)&&ISNULL(SS)=1,SP('A');//①当DT大于YH时, C小于DT,收盘价平A
DT<YH&&CROSSDOWN(C,YH)&&ISNULL(SS)=1,SP('A');//②当DT小于YH时,C小于YH,收盘价平A
SS>YH&&CROSSDOWN(C,SS)&&ISNULL(SS)=0&&BKVOL>0,CLOSEOUT;//③DT>YH&&C<SS,指令价SS平A***出现SS后,是否用SS代替DT呢?
DZ:(SS+YH)/2,RGB(128,128,0);//取DT+YH的2分之一的值
C<DZ&&C>YH&&LASTSIGGROUP=1,BK('B');//KT上穿DT后接多
ISNULL(SS)=1&&CROSS(DT,YH)&&C<DT,SP('B');//①最新DT值大于SS(SS为空值),收盘价小于DT平B
DRAWICON(LASTSIGGROUP=2,L,2);//B组开仓标记哭脸
SS:SS,LINETHICK4;
另外,对于SS取值当a组平仓之后最新DT值大于SS,SS就失效
大部分情况下平仓之后就失效,b组没有开仓。如上模型加载在橡胶3小时上,没有B满足条件,标记显示出哭脸
您可以看下这个条件是否在进行修改下
投资者咨询:程序化分组模型编写 (文华财经WH8赢智V8.2)
来源:文华财经 日期:2018-11-21 13:38
我不太明白,SS:=NULL;//当最新的DT值大于SS时,或者下一次满足开多A条件前出现过开空E或F信号,SS条件失效
有这句命令,最后一个信号为什么会是用SS>YH&&CROSSDOWN(C,SS)&&ISNULL(SS)=0&&BKVOL>0,CLOSEOUT;//这句平仓
上一个笑脸不是在9-24号吗?技术人员回复
日期:2018-11-27 14:51
投资者咨询:程序化分组模型编写 (文华财经WH8赢智V8.2)
来源:文华财经 日期:2018-11-21 13:38
技术人员回复
日期:2018-11-27 15:11
投资者咨询:程序化分组模型编写 (文华财经WH8赢智V8.2)
来源:文华财经 日期:2018-11-21 13:38