以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 错在哪里 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=180980) |
-- 作者:tonyzhu -- 发布时间:2020/7/1 23:31:58 -- 错在哪里 KK:=DK<=10&&F<S&&F>50&&S>50&&BC>50; //开空条件 PK:=(ENTERPRICE-C)>=50*MINDIFF; //平空条件 IF PK AND HOLDING>0 THEN SELLSHORT(1,1,MARKET) ; //平仓 IF KK AND HOLDING=0 AND NUM<CS THEN //开仓 BEGIN BUYSHORT(1,1,MARKET); NUM:=NUM+1; END IF TIME=CLOSETIME(0) THEN NUM:=0; // CLOSETIME(0)是取商品期货最后一节的交易时间,收盘的同时,NUM赋值为0。 以上公式错在哪里?符合条件没有开仓。公式思路:当符合开空条件时开空,盈利50点平仓。
|
-- 作者:wenarm -- 发布时间:2020/7/2 5:58:12 -- 请表述清楚你的具体问题,以及贴出完整的代码。 [此贴子已经被作者于2020/7/2 6:05:02编辑过]
|
-- 作者:tonyzhu -- 发布时间:2020/7/2 8:41:14 -- VARIABLE:NUM=0; // 全局变量,来控制当天交易次数 CS:=1; //限定一天最多交易1次 中间代码太多,超出帖子限制,省略 KK:=DK<=10&&F<S&&F>50&&S>50&&BC>50; //开空条件 PK:=(ENTERPRICE-C)>=50*MINDIFF; //平空条件 IF PK AND HOLDING>0 THEN SELLSHORT(1,1,MARKET) ; //平仓 IF KK AND HOLDING=0 AND NUM<CS THEN //开仓 BEGIN BUYSHORT(1,1,MARKET); NUM:=NUM+1; END IF TIME=CLOSETIME(0) THEN NUM:=0; // CLOSETIME(0)是取商品期货最后一节的交易时间,收盘的同时,NUM赋值为0。 以上公式错在哪里?符合条件没有开仓。公式思路:当符合开空条件时开空,盈利50点平仓,每天只开仓1次。同样思路,编了开多的,运行正常。 [此贴子已经被作者于2020/7/2 8:41:58编辑过]
|
-- 作者:wenarm -- 发布时间:2020/7/2 8:45:13 -- 抱歉,这种代码我没法调试。你自己的逐个条件分析自己的开仓条件。肯定是你自己的逻辑不成立。并且你最起码要提供品种、周期以及出现的k线位置等信息。还有你所谓的满足条件,是事后看到的信号,但是没有委托记录,还是说你自己分析条件后,得到的应该成立,但是没有图标中没有信号等信息都没有表述。 另外,cs根据上下文的逻辑应该是全局变量,而你定义的是普通变量。同时冒号还应该是英文下的。
VARIABLE:NUM=0; // 全局变量,来控制当天交易次数
VARIABLE: CS:=1; //限定一天最多交易1次
[此贴子已经被作者于2020/7/2 9:00:14编辑过]
|
-- 作者:tonyzhu -- 发布时间:2020/7/2 14:29:55 -- VARIABLE:NUM=0; // 全局变量,来控制当天交易次数 CS:=1; //限定一天最多交易1次 //日内强度 AA:=(2*C-H-L)/(H-L); BB:=AA*VOL; R:=SUM(BB,20)/SUM(VOL,20); //中期方向线 MA1:=EMA(CLOSE,12); MA2:=EMA(CLOSE,47); B11:=(MA1-MA2); //穿叉短周期 N:=34; VAR1:=LLV(CLOSE,10);//10日最低 VAR2:=HHV(CLOSE,10);//10日最大 F: =EMA((CLOSE-VAR1)/(VAR2-VAR1)*100,10), COLORGREEN;//价差 S: =EMA(0.667*REF(F,1)+0.333*F,2) , COLORYELLOW; FS:=(F+S)/2; //穿叉长周期 VAR3:=(2*CLOSE+HHV(CLOSE,2)+LLV(CLOSE,2))/4;//化解 VAR4:=LLV(CLOSE,N);//34日最低 VARA:=HHV(CLOSE,N); VARB:=EMA((VAR3-VAR4)/(VARA-VAR4)*100,13);//价差 VARC:=EMA(0.667*REF(VARB,1)+0.333*VARB,2); FJ:=VARB-VARC; BC:=(VARB+VARC)/2; D1:=IFELSE(R>REF(R,1), 1,0); D2:=IFELSE(B11>REF(B11,1), 1,0); D3:=IFELSE(FS>REF(FS,1), 1,0); D4:=IFELSE(BC>REF(BC,1), 1,0); DK:=D1+D2+D3+D4; N:=34; VAR1:=LLV(CLOSE,10);//10日最低 VAR2:=HHV(CLOSE,10);//10日最大 F:=EMA((CLOSE-VAR1)/(VAR2-VAR1)*100,10), COLORGREEN;//价差 S:=EMA(0.667*REF(F,1)+0.333*F,2) , COLORYELLOW; FS:=(F+S)/2; VAR3:=(2*CLOSE+HHV(CLOSE,2)+LLV(CLOSE,2))/4;//化解 VAR4:=LLV(CLOSE,N);//34日最低 VARA:=HHV(CLOSE,N); VARB:=EMA((VAR3-VAR4)/(VARA-VAR4)*100,13);//价差 VARC:=EMA(0.667*REF(VARB,1)+0.333*VARB,2); FJ:=VARB-VARC; BC:=(VARB+VARC)/2; KK:=DK<1&&F<S&&F>50&&S>50&&BC>50; //开多条件 PK:=(ENTERPRICE-C)>=50*MINDIFF; //平多条件 IF PK AND HOLDING>0 THEN SELLSHORT(1,1,MARKET) ; //平仓 IF KK AND HOLDING=0 AND NUM<CS THEN //开仓 BEGIN BUYSHORT(1,1,MARKET); NUM:=NUM+1; END IF TIME=CLOSETIME(0) THEN NUM:=0; // CLOSETIME(0)是取商品期货最后一节的交易时间,收盘的同时,NUM赋值为0。 |
-- 作者:FireScript -- 发布时间:2020/7/2 14:36:37 -- 空头持仓这里的判断是 holding<0 才对。 IF PK AND HOLDING<0 THEN SELLSHORT(1,1,MARKET) ; //平仓 |
-- 作者:tonyzhu -- 发布时间:2020/7/2 19:48:12 -- 非常感谢 |