Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共6 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:交易系统编译不通过怎么回事?

1楼
tianjixuetu 发表于:2017/11/12 14:01:49
下面是交易系统,下面红色的一行代码出错,说后面没有分号,好奇怪。



VARIABLE:times:=0,p1:=0,p2:=0,p3:=0,p4:=0,p5:=0;
INPUT:m(14,1,30,1);
//cci指标
TYP := (HIGH + LOW + CLOSE)/3;
cci:=(TYP-MA(TYP,M))/(0.015*AVEDEV(TYP,M));
//买入条件
lots:=cash(0)/(5-times);
buy_con:=cross(cci,100);
sell_con=cross(100,cci);
sell_con1:=cross(100,cci) and c/ENTERPRICE>1.001;
sell_con2:=cross(100,cci) and c/p1>1.001;
sell_con3:=cross(100,cci) and times=5; 
if buy_con and times<=4 then begin
   BUY(1 ,lots,THISCLOSE);
   times:=times+1;
    if times=1 then begin
        p1:=close;
        end 
    if times=2 then BEGIN
      p2:=p1;
      p1:=close;
      end 
    if times=3 then begin
      p3:=p2;
      p2:=p1;
      p1:=close;
      end 
    if times=4 then begin
      p4:=p3;
      p3:=p2;
      p2:=p1;
      p1:=close;
      end 
    if times=5 then begin
      p5:=p4;
      p4:=p3;
      p3:=p2;
      p2:=p1;
      P1:=CLOSE;
      end
end
if sell_con and times>0 then  begin
   if c>ENTERPRICE>1.001 then begin
       lots:=1/times
       sell(1,lots,THISCLOSE);
       times:=times-1;
       end 
   if times=5 then begin
       sell(1,40%,THISCLOSE);
       times:=3;
       end 
   if times>=2 and times<=4 then BEGIN
      if times=2 and c/p1>1.001 and c/p2>1.001 then BEGIN
          sell(1,100%,THISCLOSE);
          times:=0; 
          end
      if times=3 and c/p1>1.001 and c/p2>1.001 and c/p3>1.001 then BEGIN
          sell(1,100%,THISCLOSE);
          times:=0; 
          end
      if times=4 and c/p1>1.001 and c/p2>1.001 and c/p3>1.001 and c/p4>1.001 then BEGIN
          sell(1,100%,THISCLOSE);
          times:=0; 
          end
      if times=5 and c/p1>1.001 and c/p2>1.001 and c/p3>1.001 and c/p4>1.001 and c/p5>1.001 then BEGIN
          sell(1,100%,THISCLOSE);
          times:=0; 
          end
      end 
     end 

2楼
pyd 发表于:2017/11/12 18:41:20
sell_con后少了冒号,提示不准确,编译通不过时你可以分段编译
VARIABLE:times:=0,p1:=0,p2:=0,p3:=0,p4:=0,p5:=0;
INPUT:m(14,1,30,1);
//cci指标
TYP := (HIGH + LOW + CLOSE)/3;
cci:=(TYP-MA(TYP,M))/(0.015*AVEDEV(TYP,M));
//买入条件
lots:=cash(0)/(5-times);
buy_con:=cross(cci,100);
sell_con:=cross(100,cci);
sell_con1:=cross(100,cci) and c/ENTERPRICE>1.001;
sell_con2:=cross(100,cci) and c/p1>1.001;
sell_con3:=cross(100,cci) and times=5; 
if buy_con and times<=4 then begin
   BUY(1 ,lots,THISCLOSE);
   times:=times+1;
    if times=1 then begin
        p1:=close;
        end 
    if times=2 then BEGIN
      p2:=p1;
      p1:=close;
      end 
    if times=3 then begin
      p3:=p2;
      p2:=p1;
      p1:=close;
      end 
    if times=4 then begin
      p4:=p3;
      p3:=p2;
      p2:=p1;
      p1:=close;
      end 
    if times=5 then begin
      p5:=p4;
      p4:=p3;
      p3:=p2;
      p2:=p1;
      P1:=CLOSE;
     end
end
{
if sell_con and times>0 then  begin
   if c>ENTERPRICE>1.001 then begin
       lots:=1/times
       sell(1,lots,THISCLOSE);
       times:=times-1;
       end 
   if times=5 then begin
       sell(1,40%,THISCLOSE);
       times:=3;
       end 
   if times>=2 and times<=4 then BEGIN
      if times=2 and c/p1>1.001 and c/p2>1.001 then BEGIN
          sell(1,100%,THISCLOSE);
          times:=0; 
          end
      if times=3 and c/p1>1.001 and c/p2>1.001 and c/p3>1.001 then BEGIN
          sell(1,100%,THISCLOSE);
          times:=0; 
          end
      if times=4 and c/p1>1.001 and c/p2>1.001 and c/p3>1.001 and c/p4>1.001 then BEGIN
          sell(1,100%,THISCLOSE);
          times:=0; 
          end
      if times=5 and c/p1>1.001 and c/p2>1.001 and c/p3>1.001 and c/p4>1.001 and c/p5>1.001 then BEGIN
          sell(1,100%,THISCLOSE);
          times:=0; 
          end
      end 
     end 

3楼
tianjixuetu 发表于:2017/11/12 21:13:54
谢谢,没搞明白怎么分段编译,后半段看着也没有啥错误啊
4楼
wenarm 发表于:2017/11/13 8:34:13

写代码,最好采用迭代的方式,由简到繁,从易到难。写一部分后就编译一下。而不是写完在编译,这种会对你调试增加难度

 

5楼
tianjixuetu 发表于:2017/11/13 10:15:59
请指点一下究竟哪里错了,该怎么改
6楼
FireScript 发表于:2017/11/13 10:52:48

代码行,第44行。

lots:=1/times

 

改下。

 

 

代码行,第9行。

 

sell_con=cross(100,cci);

 

改下,变量定义方式错误。

[此贴子已经被作者于2017/11/13 10:55:39编辑过]
共6 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03125 s, 3 queries.