以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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
--  
 这不是修改的问题啊。是这个条件是怎样的是你决定的,不是我随便就在这里给你写个下单条件的。从你这里的代码我是看不出来你确切的思路是怎样的,所以肯定没法改。而且你这代码里面还有一些未定义的变量,也不知道哪里来的。都没有提供定义的。