Rss & SiteMap

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

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

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

1楼
NH 发表于:2020/8/13 9:06:00
后台交易。多策略对一个账户交易,单策略里 会有加仓。加仓的时候会读取是否已有持仓。  那么多策略的时候 怎么避免其他策略的持仓 被当下的策略读取呢?
2楼
FireScript 发表于:2020/8/13 9:31:12
 避免不了。你就一个账号,持仓都是汇总的。直接读取持仓情况下是没办法区分开到底是哪个策略下单的仓位。
3楼
NH 发表于:2020/8/13 10:11:51

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

4楼
FireScript 发表于:2020/8/13 10:43:38

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


如果真的要每个策略完全独立开操作,其实除了多账户没有其他办法。全局变量记录的方式,实现起来是很麻烦的。
5楼
NH 发表于:2020/8/14 11:15:12
//固定时间间隔,有信号就下单,信号闪烁情况下造成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  

6楼
NH 发表于:2020/8/14 11:15:47
//固定时间间隔,有信号就下单,信号闪烁情况下造成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  

7楼
NH 发表于:2020/8/14 12:04:53

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

8楼
wenarm 发表于:2020/8/14 12:13:41

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

 

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


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