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


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

   

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


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

主题:[求助]编写程序交易问题。

帅哥哟,离线,有人找我吗?
系统使用者
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:808 积分:667 威望:0 精华:0 注册:2011/4/9 16:17:57
[求助]编写程序交易问题。  发帖心情 Post By:2017/6/13 12:08:56    Post IP:110.184.38.94[只看该作者]

//交易系统 走完K线模式
if holding>0 and kkcond and not(islastbar) then sell(1,ss,marketr);
if holding<0 and kdcond and not(islastbar) then sellshort(1,ss,marketr);
if holding=0 and buycond and not(islastbar) then buy(1,ss,marketr);
if holding=0 and sellcond and not(islastbar) then buyshort(1,ss,marketr);
//用全局变量EXTGBDATA,实现信号消失处理功能 
if islastbar and tholding2<>holding then
 begin 
  if barpos=EXTGBDATA('kai')+1 then//开仓信号消失,平原持仓
  begin
  sell(tholding2>0,ss,marketr);
  sellshort(tholding2<0,ss,marketr);
  EXTGBDATASET( 'kai',0);
  end
  
  if barpos=EXTGBDATA('ping')+1 then//平仓信号消失,平原持仓
  begin
  sell(holding>0,ss,marketr);
  sellshort(holding<0,ss,marketr);
  EXTGBDATASET( 'ping',0);
  end    
 end
if holding>0 and kkcond and islastbar then 
begin
sell(1,ss,marketr);
EXTGBDATASET( 'ping',BARPOS);
end
if holding<0 and kdcond and islastbar then 
begin
sellshort(1,ss,marketr);
EXTGBDATASET( 'ping',BARPOS);
end
 上面是我编写想实现处理功能。实盘中不处理。
程序要求这样:
1)开多,开空,平多空采用走完K线模式。
2)处理情况:有时候出现开仓或者平仓后,信号消失,这样就需要处理原开仓的平仓处理,原仓位直接平掉。
3)要求不开启金子塔持仓同步功能就可以自动实现。
请帮忙编写?


[此贴子已经被作者于2017/6/13 12:09:49编辑过]

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


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2017/6/13 12:25:29    Post IP:180.169.30.6[只看该作者]

抱歉能力有限。满足不了你的需求。



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
系统使用者
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:808 积分:667 威望:0 精华:0 注册:2011/4/9 16:17:57
  发帖心情 Post By:2017/6/13 12:46:41    Post IP:110.184.38.94[只看该作者]

我是要求不开启你们的同步功能,就能使用自己编写的处理信号消失问题。

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


加好友 发短信
等级:黑侠 帖子:808 积分:667 威望:0 精华:0 注册:2011/4/9 16:17:57
  发帖心情 Post By:2017/6/13 12:48:46    Post IP:110.184.38.94[只看该作者]

还有一个问题请教;
//止损止盈
 if enterbars>1 and l<=Tl-2*MINDIFF and holding>0 then sell(1,ss,marketr);
 if enterbars>1 and h>=Th+2*MINDIFF and holding<0 then sellshort(1,ss,marketr);
若信号消失了,这开仓历时还有效否?enterbars

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


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2017/6/13 12:54:51    Post IP:180.169.30.6[只看该作者]

信号消失了,enterbars返回的就不是信号在的时候的值,而是消失后,当前历史上最近的开仓位置的值。



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
系统使用者
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:808 积分:667 威望:0 精华:0 注册:2011/4/9 16:17:57
  发帖心情 Post By:2017/6/13 13:44:50    Post IP:110.184.38.94[只看该作者]

//交易系统 走完K线模式
temp_ll:=llv(l,2); temp_hh:=hhv(h,2);
if holding>0 and kkcond and not(islastbar) then sell(1,ss,marketr);
if holding<0 and kdcond and not(islastbar) then sellshort(1,ss,marketr);
if holding=0 and buycond and not(islastbar) then begin
   buy(1,ss,marketr);
   extgbdataset('kaiduo',temp_ll); 
end
if holding=0 and sellcond and not(islastbar) then begin
   buyshort(1,ss,marketr);
   extgbdataset('kaikong',temp_hh); 
end
//信号消失止损处理
 if tholding2<>holding and l<extgbdata('kaiduo') then 
  begin 
    sell(holding>0,ss,marketr);
  end
 if tholding2<>holding and h>extgbdata('kaikong') then 
  begin 
    sellshort(holding<0,ss,marketr);
  end   
     
if holding=0 then begin
 extgbdataset('kaikong',drawnull);
 extgbdataset('kaiduo',drawnull);
end

这样可以处理信号消失的单子?

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


加好友 发短信
等级:超级版主 帖子:8439 积分:0 威望:0 精华:0 注册:2014/7/14 13:43:36
  发帖心情 Post By:2017/6/13 14:12:13    Post IP:180.169.30.6[只看该作者]

不行,如果开仓信号消失了,是不会出平仓信号的,就不会执行”信号消失止损处理”的平仓动作。

 

 回到顶部
帅哥哟,离线,有人找我吗?
系统使用者
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:808 积分:667 威望:0 精华:0 注册:2011/4/9 16:17:57
  发帖心情 Post By:2017/6/13 15:20:41    Post IP:110.184.38.94[只看该作者]

使用extgbdataset('kaikong',temp_hh); 记录当时开仓的高低点,止损不行?这个不会消失?
 if tholding2<>holding and l<extgbdata('kaiduo') then 
  begin 
    sell(holding>0,ss,marketr);
  end


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


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2017/6/13 15:39:23    Post IP:180.169.30.6[只看该作者]

你这种用法,在图表上只会造成历史信号不断变化。extgbdata只在最新值上有效。它发生变化,历史k线条件就会跟着变化。



编程无捷径,技巧靠积累。
 回到顶部