以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  [求助]请教一个函数或编码的问题!  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=158467)

--  作者:mikewhq
--  发布时间:2017/10/10 9:23:50
--  [求助]请教一个函数或编码的问题!
请教一个问题:假如帐户某品种合约持仓为H手(holding,包括正负,正为多负为空),而策略计算此时帐户该品种合约应该调整为M手(包括正负,正为多负为空),请问有没有根据这种情况命令程序进行调整持仓的函数(很希望有,我觉得这类似于持仓同步,估计很多人需要吧),如果没有这种函数的话,可否麻烦帮编写这样一段代码?(里面有点复杂,涉及H及M的正负情况,还有就是H与M的相对大小,而且持仓某品种也不可能同时持有多单与空单),谢谢了。
--  作者:FireScript
--  发布时间:2017/10/10 9:32:06
--  
问题是在图表系统下是无法获取到实际账号的持仓情况的。
--  作者:banzhuan
--  发布时间:2017/10/10 9:32:39
--  
你的策略计算结果都会反映在图表上的holding啊,然后再通过持仓同步功能和你的真实账户持仓保持一致
--  作者:mikewhq
--  发布时间:2017/10/10 9:37:14
--  
你的意思是可以直接编写成 holding:=M; 这样持仓同步就会自动调整了吗?
--  作者:gxx978
--  发布时间:2017/10/10 9:39:31
--  

你的M手也是通过策略计算出来的,那每次买卖都是以M为准的,那holding的值与你的M的值应该是相等的。你是需要M值一但发生变,不管我的开平仓条件是否满足,就进行相应的调整仓位?


--  作者:banzhuan
--  发布时间:2017/10/10 9:41:38
--  
holding是图表的虚拟持仓,持仓同步是指将实际持仓调整与holding一致
--  作者:mikewhq
--  发布时间:2017/10/10 9:51:11
--  
我说的意思是:M值是随着相关指标而变动的策略计算结果,但持仓是帐户某一时间某一品种的实际持仓,两者并不时时一致,而我希望他们不一致时程序将持仓调整为当时的M值,当两者不同时就符合调整条件,并无其它开平仓条件限制。
--  作者:gxx978
--  发布时间:2017/10/10 10:09:51
--  

可以参考下如下代码:

if M<>HOLDING THEN
  begin
  if M>0 and holding>0 then
     begin
     if M>holding then buy(1,m-holding,market);
     if m<holding then sell(1,holding-m,market);
     end
   if M<0 and holding<0 then
      begin
      if abs(M)>abs(holding) then buyshort(1,abs(M)-abs(holding),market);
      if abs(M)<abs(holding) then sellshort(1,abs(M)-abs(holding),market);
      end
   if M>0 and holding<0 then
      begin
      SELLSHORT(1,holding,MARKET);
      buy(1,M,MARKET); 
      end
   if M<0 and holding>0 then
      begin
      SELL(1,holding,MARKET);
      buyshort(1,abs(M),MARKET); 
      end
   end
       

[此贴子已经被作者于2017/10/10 10:17:46编辑过]

--  作者:mikewhq
--  发布时间:2017/10/10 10:40:12
--  
好的,太感谢了!
--  作者:mikewhq
--  发布时间:2017/10/10 13:45:02
--  
仔细对比过,你这段代码中没有当M=0而holding又不等于0的情况;另外,如果能在软件中加上这么功能的一个可调用的函数就好了。