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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 多策略的时候,如何避免持仓读取相互影响

   

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


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

主题:多策略的时候,如何避免持仓读取相互影响

帅哥哟,离线,有人找我吗?
NH
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:223 积分:0 威望:0 精华:0 注册:2017/3/1 16:31:23
多策略的时候,如何避免持仓读取相互影响  发帖心情 Post By:2020/8/13 9:06:00    Post IP:58.246.57.26[只看该作者]

后台交易。多策略对一个账户交易,单策略里 会有加仓。加仓的时候会读取是否已有持仓。  那么多策略的时候 怎么避免其他策略的持仓 被当下的策略读取呢?

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/8/13 9:31:12    Post IP:58.246.57.26[只看该作者]

 避免不了。你就一个账号,持仓都是汇总的。直接读取持仓情况下是没办法区分开到底是哪个策略下单的仓位。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
NH
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:223 积分:0 威望:0 精华:0 注册:2017/3/1 16:31:23
  发帖心情 Post By:2020/8/13 10:11:51    Post IP:112.64.62.45[只看该作者]

那么那些 有几十组 上百组策略的  交易是如何实现的呢? 准备几百个账户吗?


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/8/13 10:43:38    Post IP:58.246.57.26[只看该作者]


你可以考虑采用全局变量记录的方式去记录,每次开仓和平仓时候维护下这个全局变量。开仓+1,平仓-1. 开仓和平仓之前也需要读取下这个全局变量,来作为开仓和平仓的判断依据。


如果真的要每个策略完全独立开操作,其实除了多账户没有其他办法。全局变量记录的方式,实现起来是很麻烦的。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
NH
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:223 积分:0 威望:0 精华:0 注册:2017/3/1 16:31:23
  发帖心情 Post By:2020/8/14 11:15:12    Post IP:112.64.62.45[只看该作者]

//固定时间间隔,有信号就下单,信号闪烁情况下造成HOLDING值不稳定,故不能调用图表的HOLDING来控制仓位,必须使用后台程序化交易, 总体思路是用BARPOS和全局变量结合起来,控制是否开仓。

//序列模式运行

//t1_flag 0表示没有仓位,1表示持有多头,-1表示持有空头

//bar控制一根K线只能有一次开平仓

ss:=1; //手数

ma5:ema(c,5);

buycond:=h>ma5;

sellcond:=l<ma5;


 

//平多

if extgbdata('t1_flag')>0 and sellcond  and barpos>extgbdata('bar')  then

  begin

  tsell(1,ss,mkt);

  extgbdataset('t1_flag',0);

  end


 

//平空

if extgbdata('t1_flag')<0 and buycond and barpos>extgbdata('bar')  then

  begin

  tsellshort(1,ss,mkt);

  extgbdataset('t1_flag',0);

  end  


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


加好友 发短信
等级:论坛游侠 帖子:223 积分:0 威望:0 精华:0 注册:2017/3/1 16:31:23
  发帖心情 Post By:2020/8/14 11:15:47    Post IP:112.64.62.45[只看该作者]

//固定时间间隔,有信号就下单,信号闪烁情况下造成HOLDING值不稳定,故不能调用图表的HOLDING来控制仓位,必须使用后台程序化交易, 总体思路是用BARPOS和全局变量结合起来,控制是否开仓。

//序列模式运行

//t1_flag 0表示没有仓位,1表示持有多头,-1表示持有空头

//bar控制一根K线只能有一次开平仓

ss:=1; //手数

ma5:ema(c,5);

buycond:=h>ma5;

sellcond:=l<ma5;


 

//平多

if extgbdata('t1_flag')>0 and sellcond  and barpos>extgbdata('bar')  then

  begin

  tsell(1,ss,mkt);

  extgbdataset('t1_flag',0);

  end


 

//平空

if extgbdata('t1_flag')<0 and buycond and barpos>extgbdata('bar')  then

  begin

  tsellshort(1,ss,mkt);

  extgbdataset('t1_flag',0);

  end  


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


加好友 发短信
等级:论坛游侠 帖子:223 积分:0 威望:0 精华:0 注册:2017/3/1 16:31:23
  发帖心情 Post By:2020/8/14 12:04:53    Post IP:112.64.62.45[只看该作者]

是否可以用这个办法限制 开仓次数?


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


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

你可以考虑用这种方式记录自己开仓手数。但是不能百分比达到控制。其中牵扯的因素很多。包括未成交因素、高速开平触发情景等情况的影响。

 



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