以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 无法判断该表达式的意图怎么办? (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=182755) |
-- 作者:qq代人发帖 -- 发布时间:2020/10/29 14:07:52 -- 无法判断该表达式的意图怎么办? 无法判断该表达式的意图怎么办?
DE:=J>80 AND RH >80 AND J1>D1 AND J1>K1; |
-- 作者:FireScript -- 发布时间:2020/10/29 14:10:27 -- 你代码完整贴出来。 这个报错不一定是这句的。有时候可能就是上下文其他地方的。 |
-- 作者:337666422 -- 发布时间:2020/10/29 14:15:48 -- RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:=SMA(RSV,M1,55); D:=SMA(K,M2,55); J:=5*K-9*D; DMH:=SUM(IF(H>REF(H,21),H-REF(H,21),0),N); DML:=SUM(IF(L>REF(L,21),0,REF(L,21)-L),N); DMKI:=DMH/(DMH+DML)*100; RH:=(DMKI+J)/2,COLORBLUE; 90; 5; P1:=55;{自定义} P2:=88;{自定义} VAR1:=LLV(LOW,P1); VAR2:=HHV(HIGH,P1); K1:=EMA((CLOSE-VAR1),COLORRED,LINETHICK2; D1:=EMA(REF(K1,1)+K1,2),COLORGREEN,LINETHICK2; J1:=3*K1-2*D1; //交易条件 AB:=J<5 AND J>REF(J,1); BC:=CROSS(J,K1) AND RH>D1 OR RH>K1; CD:=CROSS(J,D1) AND RH>D1 OR RH>K1; 开多平空条件:=AB OR BC OR CD;//开多平空条件 EF:=CROSS(D1,DMKI) OR CROSS(K1,DMKI) DE:=J>80 AND RH >80 AND J1>D1 AND J1>K1;
|
-- 作者:FireScript -- 发布时间:2020/10/29 14:30:31 -- EF:=CROSS(D1,DMKI) OR CROSS(K1,DMKI); DE:=J>80 AND RH >80 AND J1>D1 AND J1>K1; 漏了
|
-- 作者:337666422 -- 发布时间:2020/10/29 14:34:14 -- 谢谢,收到 |
-- 作者:337666422 -- 发布时间:2020/10/29 14:36:18 -- //交易系统 平空:SELLSHORT(开多平空条件,1,MARKET); 平多:SELL(开空平多条件,1,MARKET); 开多:BUY(开多平空条件,1,MARKET); 开空:BUYSHORT(开空平多条件,1,MARKET); //使用系列模式时 //{开多} ENTERLONG:BUY1,TFILTER; //{平多}EXITLONG:SELL1 ,TFILTER; // //{开空}ENTERSHORT:SELL1 ,TFILTER; //{平空}EXITSHORT:BUY1 ,TFILTER; //使用逐K线模式时 VARIABLE:DUOKONG=0; TSFS:=0; {停损反手,1-反手 0-不反手} ORDVOL:=1; {开仓手数} ZSDS:=10; {止损点数} //以下变量用于移动止盈,,移动止盈只能保证你尽可能稳健盈利,却不能保证盈利最大化,如果不想使用,可是将总开关设置为0 VARIABLE:YDZY=1; {移动止盈总开关,1为开,0为关} VARIABLE:HIGHPRICE=0,LOWPRICE=0; {保存开仓后的最高价、最低价} VARIABLE:DHCDS=10,KHCDS=10; {多、空单回撤点数} VARIABLE:DYLDS=7,KYLDS=7; {多、空单盈利点数,当盈利点数达到这个标准后,如果回撤达到上面的参数值就平仓} VARIABLE:Z3B1:=1; {赚3保1开关} DUOKONG:=1; //持有空单 IF HOLDING<0 THEN BEGIN IF BUY THEN BEGIN //平空单 空平:SELLSHORT(1,0,MARKET),ORDERQUEUE; END //止损 IF C-ENTERPRICE>=ZSDS THEN BEGIN 空损:SELLSHORT(1,0,MARKET),ORDERQUEUE; END //移动止盈 IF YDZY=1 THEN BEGIN //每周期判断是否创新低 IF L<LOWPRICE THEN BEGIN LOWPRICE:=L; END //如果盈利超过10点之后回撤达到3点,就平仓,保住盈利 IF ENTERPRICE-LOWPRICE>=KYLDS THEN BEGIN IF L-LOWPRICE>=KHCDS THEN BEGIN //回撤超过3点 空赢:SELLSHORT(1,0,MARKET); END END END //赚3保1 IF Z3B1=1 THEN BEGIN IF ENTERPRICE-LOWPRICE>=3 THEN BEGIN IF ENTERPRICE-L<=1.2 THEN BEGIN 空保:SELLSHORT(1,0,MARKET); END END END END //开多单 IF HOLDING=0 THEN BEGIN IF DUOKONG=1 OR DUOKONG=2 THEN BEGIN IF BUY1 THEN BEGIN 多开:BUY(1=1,ORDVOL,MARKET); HIGHPRICE:=ENTERPRICE; //将开仓价保存到最高价 END END END //持有多单 IF HOLDING>0 THEN BEGIN IF SELL1 THEN BEGIN {平多单} 多平:SELL(1,0,MARKET),ORDERQUEUE; END //多单管理 //止损 IF ENTERPRICE-C>=ZSDS THEN BEGIN 多损:SELL(1,0,MARKET),ORDERQUEUE; END //移动止盈 IF YDZY=1 THEN BEGIN //每周期判断是否创新高 IF H>HIGHPRICE THEN BEGIN HIGHPRICE:=H; END //如果盈利超过10点之后回撤达到3点,就平仓,保住盈利 IF HIGHPRICE-ENTERPRICE>=DYLDS THEN BEGIN IF HIGHPRICE-H>=DHCDS THEN BEGIN //回撤超过3点 多赢:SELL(1,0,MARKET); END END END //赚3保1 IF Z3B1=1 THEN BEGIN IF HIGHPRICE-ENTERPRICE>=3 THEN BEGIN IF H-ENTERPRICE<=1.2 THEN BEGIN 多保:SELL(1,0,MARKET); END END END END //开空单 IF HOLDING=0 THEN BEGIN IF DUOKONG=1 OR DUOKONG=3 THEN BEGIN IF SELL1 THEN BEGIN 空开:BUYSHORT(1=1,ORDVOL,MARKET); LOWPRICE:=ENTERPRICE; END END END 当前持仓:HOLDING,COLORGRAY,LINETHICK0; 当前资产:ASSET,NOAXIS,COLORGRAY;
|
-- 作者:337666422 -- 发布时间:2020/10/29 14:37:43 -- 老师,帮我看下这些还是没有编译过去 找不到BUY
|
-- 作者:FireScript -- 发布时间:2020/10/29 14:52:49 -- IF HOLDING<0 THEN BEGIN IF BUY THEN BEGIN //平空单 空平:SELLSHORT(1,0,MARKET),ORDERQUEUE; END BUY 是开仓的函数的。你怎么写在if后面作为条件呢? 这样肯定不行嘛。
|
-- 作者:337666422 -- 发布时间:2020/10/29 15:11:04 -- 麻烦老师帮我修改一下 |
-- 作者:FireScript -- 发布时间:2020/10/29 15:17:42 -- 这不是修改的问题啊。是这个条件是怎样的是你决定的,不是我随便就在这里给你写个下单条件的。从你这里的代码我是看不出来你确切的思路是怎样的,所以肯定没法改。而且你这代码里面还有一些未定义的变量,也不知道哪里来的。都没有提供定义的。 |