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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]

   

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


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

主题:[求助]

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


加好友 发短信
等级:新手上路 帖子:7 积分:55 威望:0 精华:0 注册:2012/10/22 23:56:32
[求助]  发帖心情 Post By:2013/1/28 17:02:59    Post IP:113.71.198.108[只看该作者]

我写了一段在固定时间间隔模式下交易情况的测试代码,开仓条件是出阳线后开多仓,反之开空仓,平仓条件是出阴线平多,出阳线平空.可经常会多次开仓,我设了标志限制一根K线一种情况只能操作一次,可还是会多次开仓,请高手帮忙看一下是哪里的问题,代码如下 :

谢谢!

 

runmode:0;
variable:zs=0,KD=0,KK=0,PD=0,PK1=0,zq=0;

///////止损价//开多标志///开空标志////平多标志///平空标志//周期数

if zq<>TODAYBAR  then begin
KD:=0;
KK:=0;
PD:=0;
PK1:=0;
zq:=TODAYBAR;
end

entertime:=time>091500 and time<151500;
开多条件:=ref(c>o,1)AND KD=0 and entertime ;
开空条件:=ref(c<o,1) AND KK=0 and entertime ;
平空条件:=ref(c>o,1) and PK1=0 and entertime ;
平多条件:=ref(c<o,1) and PD=0 and entertime ;

priceD:=ref(c,1)-0.4;
priceK:=ref(c,1)+0.4;

if holding>0 and 平多条件 then BEGIN
多离场: sell(1,1,limitr,priceD),ORDERQUEUE;
PD:=1;
END

if holding<0 and 平空条件 then BEGIN 

空离场:sellshort(1,1,limitr,priceK),ORDERQUEUE ;

PK1:=1;
end

if holding=0 and 开多条件  then BEGIN
buy(1,1,limitr,priceK),ORDERQUEUE;
 zs:=priceK-3;
 KD:=1;
 end

if holding=0 and 开空条件 then  BEGIN
buyshort(1,1,limitr,priceD),ORDERQUEUE;
   zs:=priceD+3;
   KK:=1;
 end
 
多止损条件 := l<zs  and entertime ;
空止损条件:= h>zs and entertime ;

if  多止损条件  and holding>0 then begin

 多止损:sell(1,1,limitr,zs-0.2),ORDERQUEUE;

 cc:=0;

end

if 空止损条件  and holding<0 then begin

 空止损:sellshort(1,1,limitr,zs+0.2),ORDERQUEUE;

end


if time>=151400 then begin

收盘空离场:sellshort(1,1,limitr,MARKET+0.4),ORDERQUEUE ;
收盘多离场: sell(1,1,limitr,MARKET-0.4),ORDERQUEUE;
end


 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2013/1/28 17:22:38    Post IP:58.246.57.26[只看该作者]

如果需要一根k开一次仓,那么就用全局变量来记录

vairable:n=0;

if 开多 and n=0 then begin

buy;

n:=1;

end

 

if 开空 and n=0 then begin

buyshort;

n:=1;

end



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:7 积分:55 威望:0 精华:0 注册:2012/10/22 23:56:32
  发帖心情 Post By:2013/1/28 18:05:51    Post IP:113.71.198.108[只看该作者]

我是这样做的,可还是多次开仓,为什么?


 回到顶部
帅哥哟,离线,有人找我吗?
RogarZ
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:3534 积分:10003 威望:0 精华:5 注册:2012/5/25 0:00:01
  发帖心情 Post By:2013/1/28 20:32:42    Post IP:101.224.50.16[只看该作者]

一些代码不是很能理解你的意图

if zq<>TODAYBAR  then begin
KD:=0;
KK:=0;
PD:=0;
PK1:=0;
zq:=TODAYBAR;
end

你用H L等控制避免信号闪烁了。金字塔默认一根K线只能开多、开空、平多、平空各一次。除非用后台的allowrepeat功能打开。

这段代码感觉没意义。

 

你指的多次开仓又是何意义,指图表信号,还是模拟?在什么周期上运行?不讲清楚,没法帮助你。

 

你的止损代码有些问题,有可能造成止损条件在开多后,马上就成立,即L<ZS在你开仓前就成立了,开完仓马上又平仓了.

我不清楚同时你是不是又勾选了自动持仓同步,造成的混乱。

从逻辑上讲,我们建议用户定义清楚各种情况,那种1根K线上即开多,又平多的情况要尽量避免。



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部