Rss & SiteMap

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

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

标题:还是信号的闪烁问题

1楼
李亚弟 发表于:2013/5/2 14:03:45
runmode:0;
variable:cc=0,kcj=0,pcj=0,maxprofit=0,win=0,win2=0,hcgy=0,win2bz=0;
exittime:=time>=150800; {收盘强制平仓时间}
closetime1:=(time=151500);
if exitbars=1 and hcgy=0 and win2bz=0 then begin  //在平仓后尽快恢复回撤止盈的相关标志
win:=0;
win2:=0;
maxprofit:=0;
hcgy:=1;
win2bz:=0;
end
//回撤止盈--start---
if holding>0 and enterbars>0 then begin
  win:=(h-kcj)/kcj*100;//记录盈利点数
  if win>maxprofit and win>maxd/kcj*100 then begin maxprofit:=win;hcgy:=0;end//maxd是参数,做多时从这个点数开始记录最大盈利点数maxprofit。
  if maxprofit>0 and win2bz=0 then win2:=(maxprofit-win)/maxprofit*100;//最大盈利后的回调幅度.win2bz为0时更新win2bz,回撤止盈后win2bz设为1。
end
if holding<0 and enterbars > 0 then begin
  win:=(kcj-l)/kcj*100; //记录盈利点数
  if win>maxprofit and win>maxk/kcj*100 then begin maxprofit:=win;hcgy:=0;end //maxk是参数,做空时从这个点数开始记录最大盈利点数maxprofit。
  if maxprofit>0 and win2bz=0 then win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度。win2bz为0时更新win2bz,回撤止盈后win2bz设为1。
end
if holding>0 and win2>=60 and  OPENPROFIT>0 then begin
  pcj:=(maxprofit*kcj)/100-(win2*maxprofit*kcj)/10000+kcj;
  sell(1,P,limitr,pcj);
  cc:=0;//持仓标志
  win2bz:=1;//win2bz设为1,避免win2重新赋值。其实按原有win2赋值的if,holding>0,不会重新赋值,但会实际情况是会出现信号闪烁。
end
if holding<0 and win2>=60  and OPENPROFIT>0 then begin
  pcj:=kcj-(maxprofit*kcj)/100+(win2*maxprofit*kcj)/10000;
  sellshort(1,P,limitr,pcj);
  cc:=0;
  win2bz:=1;//win2bz设为1,避免win2重新赋值。其实按原有win2赋值的if,holding>0,不会重新赋值,但会实际情况是会出现信号闪烁。
end
//回撤止盈--end---

这段代码是用每秒一次来轮询的,在1分钟K线上。(1)代码会闪烁,(2)还会出现win2乱赋值的情况。我弄了半天自己有点晕了。麻烦帮我检查问题在哪里。谢谢。
2楼
jinzhe 发表于:2013/5/2 14:23:09

win2不会乱赋值的,多用shift+q进行调试

代码闪烁,避免用ref(条件,1)来替代 条件

共2 条记录, 每页显示 10 条, 页签: [1]


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