以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  后台交易手数设置问题  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=66783)

--  作者:dlutzxj
--  发布时间:2014/6/30 16:37:26
--  后台交易手数设置问题
我用阿火的模版做了个后台模型。
应用在橡胶连续 图表上面显示的虚拟持仓是192手, 而根据图表历史数据测试下来目前的持仓应该是1300手, 该模型采用1000万起始资金, 6%资金开仓, 橡胶价格为15000左右, 计算所得结果应该是40手。 
我不是很明白这个192手是怎么计算出来的。 我就想要当前这个时间点1000万起始资金, 6%开仓,能开橡胶多少收, 我该怎么做呢??

代码部分如下: 
runmode:0;
Globalvariable:hold=drawnull;
cc800988:=holding;

------
------
开空:BUYSHORT(SELLCOND AND HOLDING>=0,6%,LIMITR,C);
开多:BUY(BUYCOND AND HOLDING<=0,6%,LIMITR,C);



drawtextex(1,1,800,0,\'虚拟持仓为:\'+numtostr(cc800988,0));//在图表上输入虚拟持仓以便监控
if not(islastbar) or workmode<>1 then exit;

MyCount:=\'11111111\';
xiadan800988:=cc800988-hold;
if xiadan800988>0.5 then begin
 cang:=min(xiadan800988,abs(hold));
 if hold<0 then begin
  tsellshort(1,cang,mkt,0,0,MyCount),allowrepeat;
  debugfile(\'D:\\jyjl.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 平空 %.0f\',cang);
 end
 cang:=xiadan800988+min(hold,0);
 if cang>0 then begin
  tbuy(1,cang,mkt,0,0,MyCount),allowrepeat;
  debugfile(\'D:\\jyjl.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 开多 %.0f\',cang);
 end
end
if xiadan800988<-0.5 then begin
 cang:=min(abs(xiadan800988),abs(hold));
 if hold>0 then begin
  tsell(1,cang,mkt,0,0,MyCount),allowrepeat;
  debugfile(\'D:jyjl.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 平多 %.0f\',cang);
 end
 cang:=abs(xiadan800988)-max(hold,0);
 if cang>0 then begin
  tbuyshort(1,cang,mkt,0,0,MyCount),allowrepeat;
  debugfile(\'D:\\jyjl.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 开空 %.0f\',cang);
 end
end
hold:=cc800988;




--  作者:FexTel
--  发布时间:2014/6/30 16:48:07
--  

1,这个和后台程序没有关系,看下图表主部分。

 

图上第一笔交易的手数看下,另外输出下AASET。图表的虚拟资金值


--  作者:dlutzxj
--  发布时间:2014/6/30 17:00:57
--  
我数据重新补充导入一下以后, 虚拟持仓为1586 , 开仓时候的价格为14755, asset为390210444。 这样计算出来是对的。
跟测试结果也是一致的。
可是我要计算的是现在开始从1000万做起, 6%资金应该开仓多少手? 求解。 谢谢

--  作者:FexTel
--  发布时间:2014/6/30 17:12:06
--  

1000w是从您图上第一笔信号开仓算的,中间是有盈利和亏损的哦

 

开仓多少要根据保证金占用比来算,自己除下

 

600000/开仓价*300*保证金比例


--  作者:dlutzxj
--  发布时间:2014/7/1 10:19:13
--  
这就是我的问题啦。

照你说的办法解决的话, 那不是要在代码里面写固定开仓手数, 而我需要的是一直按照6%的资金比例开仓。
有没有办法使得第一个信号 设置为 当前时间之后的第一个信号。

--  作者:qq代人发帖
--  发布时间:2014/7/1 10:25:45
--  
可以在代码里用time>102500这样限制下
--  作者:dlutzxj
--  发布时间:2014/7/1 10:33:25
--  
嗯, 我在代码里开仓条件加了 DATE》=当前日期就好了。 多谢。