欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]===问个代码问题,好像有点奇怪,求达人指点

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3423人关注过本帖树形打印复制链接

主题:[求助]===问个代码问题,好像有点奇怪,求达人指点

美女呀,离线,留言给我吧!
pyd
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:8439 积分:0 威望:0 精华:0 注册:2014/7/14 13:43:36
  发帖心情 Post By:2014/8/25 9:54:51    Post IP:58.246.57.26[显示全部帖子]

判断tt=11用等号而不是冒号等号

if tt=11 or tt=12 then begin{趋势单平仓}

  if tt=11 then begin

 

赋值用冒号等号

tt:=if(趋势平空条件,16,12);

[此贴子已经被作者于2014/8/25 9:56:43编辑过]

 回到顶部
美女呀,离线,留言给我吧!
pyd
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:8439 积分:0 威望:0 精华:0 注册:2014/7/14 13:43:36
  发帖心情 Post By:2014/8/25 11:08:08    Post IP:58.246.57.26[显示全部帖子]

有一个begin写错了,有一行少了then begin 红字出事改过的。另外中轴没有定义。

 

 

//中间变量

input:N(50,10,100,1),P(1000,1000,3000,5),Q(2000,1000,5000,5),EE(20,10,50,1),SS(1,1,1000,1);


variable:tt=0;//交易状态,取值如下表
//趋势多单11,趋势多单平仓15
//趋势空单12,趋势空单平仓16
//震荡多单31,震荡多单平仓35
//震荡空单32,震荡空单平仓36


TC:=IF(DATE<1160103,1,0);//时间锁
TRR:= MAX(H,REF(C,1)) - MIN(L,REF(C,1));
ATR:= REF(MA(TRR,ee),1);
关键价:=(high+low+C)/3;//取关键价还是取收盘价作为通道中轴的计算依据,这是个问题


k0: TC*REF(MA(c,n),1);//中轴
//当市场慢速向一边偏离,可能存在在内外通道间连续移动的情况,长期浮套
kp1: TC*中轴+ATR*p/1000;//上一线,,,P,内通道幅度参数
kn1: TC*中轴-ATR*p/1000;//下一线,,,Q,外通道幅度参数
kp2: TC*中轴+ATR*q/1000;//上二线
kn2: TC*中轴-ATR*q/1000;//下二线


K:= (C-MA(C,N))/MA(C,N)*100;//转折预测
KS:= MA(K,5);//转折预测小周期下移动平均参数默认5


手数:=ss;


//交易条件
趋势开多条件:= c>=kp2 and ks>ref(ks,1);
趋势开空条件:= c<=kn2 and ks<ref(ks,1);
趋势平多条件:= ks<ref(ks,1);
趋势平空条件:= ks>ref(ks,1);


震荡开多条件:= c<=kn1 and c>kn2;
震荡开空条件:= c>=kp1 and c<kp2;
震荡平多条件:= h>=kp1;
震荡平空条件:= l<=kn1;


震荡多单止损条件:= c<=kn2;
震荡空单止损条件:= c>=kp2;


//交易系统
if tt=11 or tt=12 then begin{趋势单平仓}
   if tt=11 then begin
   趋势平多:sell(趋势平多条件,手数,market);
   tt:=if(趋势平多条件,15,11);
   end
  
   if tt=12 then begin
   趋势平空:sellshort(趋势平空条件,手数,market);
   tt:=if(趋势平空条件,16,12);
   end
end


if c>=kp2 or c<=kn2 then begin{趋势中平震荡单建趋势单}
   if tt=32 then begin//平震荡空单
   震荡空单趋势止损:sellshort(震荡空单止损条件,手数,market);
   tt:=if(震荡空单止损条件,36,32);
   end
   ;
   if tt=31 then begin//平震荡多单
   震荡多单趋势止损:sell(震荡多单止损条件,手数,market);
   tt:=if(震荡多单止损条件,35,31);
   end
   ;
   趋势开多:buy(趋势开多条件 and holding=0,手数,market);
   if 趋势开多条件 then tt:=11;
   趋势开空:buyshort(趋势开空条件 and holding=0,手数,market);
   if 趋势开空条件 then tt:=12;
end
;
if c<kp2 and c>kn2 then begin//震荡区间内操作
   if tt=32 then begin//平震荡空单
   震荡空单平仓:sellshort(震荡平空条件,手数,limitr,min(o,kn1));
   tt:=if(震荡平空条件,36,32);
   end
  
   if tt=31 then begin//平震荡多单
   震荡多单平仓:sell(震荡平多条件,手数,limitr,max(o,kp1));
   tt:=if(震荡平多条件,35,31);
   end
  
   if tt<>16 then begin//震荡中开多
   震荡开多:buy(震荡开多条件 and holding=0,手数,market);
   tt:=if(震荡开多,31,tt);
   end
   ;
   if tt<>15 then begin//震荡中开空
   震荡开空:buyshort(震荡开空条件 and holding=0,手数,market);
   tt:=if(震荡开空,32,tt);
   end
  
end

[此贴子已经被作者于2014/8/25 11:09:50编辑过]

 回到顶部