程序化分组模型编写 (文华财经WH8赢智V8.2)

投资者咨询:程序化分组模型编写 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-11-21 13:38
 欧阳老师请去research@wenhua.com.cn 邮箱收下信件,谢谢。     
技术人员回复
日期:2018-11-21 14:07
收到您的邮件了,不过思路比较复杂

我们分析下,预计周五17点前给您回复

请耐心等待下
 
技术人员回复
日期:2018-11-27 10:35
将模型重新按照思路编写了下,暂时只写了AB组,closeout按照收盘编写,后续在补充做空,以及指令价执行方式

主要是为了确定编写思路,一步一步确认在进行完善,如果一次性完成中间是否有漏洞无法检测


并且在编写过程很多思路有些不清晰,所以需要实际加载测试

比如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
 如下在加载试下,保证在DT值编大上传时才取ss的

但是添加更多的限制条件后,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呢?
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
DRAWICON(LASTSIGGROUP=2,L,2);//B组开仓标记哭脸
SS:SS,LINETHICK4;
AUTOFILTER;

――――――――――――――――――

另外,对于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
 16年3月1号,,源代码我发你论坛邮箱,用刚刚发你的加载看看 
出现清仓信号是18-10-11
用胶指数3小时看
    &&DT>REF(DT,1)  这句我删除了的
技术人员回复
日期:2018-11-27 15:11
 编写条件中限制SS失效的条件是:

①当平仓后最新的DT值大于SS时  ②下一次满足开多A条件前出现过开空E或F信号

由于截图位置②都不满足,所以SS值依然按照有效处理了


目前是希望在增加一个SS失效条件吗?

③当再次满足AA开仓条件时,SS失效,后续有持仓情况下再次满足SS限定条件在取SS
投资者咨询:程序化分组模型编写 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-11-21 13:38

  
日期   17-8-24  上图还是用清仓条件
①当平仓后最新的DT值大于SS时 
按我的设想是最新的DT值大于SS时这个图的SS是失效的,不用判断有没出现平仓