以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  [求助]怎么调用N天前的可用资金TACCOUNT(19)  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=55162)

--  作者:sdkj2000
--  发布时间:2013/8/14 19:36:42
--  [求助]怎么调用N天前的可用资金TACCOUNT(19)

我的交易系统中的开仓手数是用如下方式表达的:INTPART((TACCOUNT(19)/(c*300))/0.15)

平仓手数是用如下方式表达的:REF(ENTERVOL,N)

问题来了:平掉的仓位数不是当初开的仓位数。

我研究了一下,问题大概出在TACCOUNT(19)这个函数上,他只能表示当前位置的可用资金,所以系统平掉的永远是用当前的可用资金计算出来的开仓手数,远小于实际的开仓手数。

该怎么解决这个问题?恳请哪位高人指点一下!或者指教一下“如何调用N周期前的实际开仓手数”,谢谢!


--  作者:sdkj2000
--  发布时间:2013/8/14 20:33:22
--  
补充:我的模型是加仓模型(多次开仓),平仓也是分多次进行的,所以每次平仓的手数的准确性很关键,错了的话会产生大问题。
--  作者:lichenghu
--  发布时间:2013/8/15 8:41:30
--  

您好,用variable全局变量记录下开仓手数

 

VARIABL:A=0;//实际开仓手数

IF 开仓条件 THEN

BEGIN

BUY()

A:=A+1;//开仓一次A加1

END

IF 平仓条件 THEN

BEGIN

SELL()

A:=0;//平仓后赋值为0

END

[此贴子已经被作者于2013/8/15 8:42:31编辑过]

--  作者:sdkj2000
--  发布时间:2013/8/16 11:24:09
--  

我是金字塔的菜鸟,麻烦老师把上面的例程再给细化一下,先行谢过!

开仓条件如下:

1:当收盘价高于2000的时候开多“账户可用资金*0.5/(c*300/0.15)”手;

2:当收盘价高于2100的时候再开多“账户可用资金*0.5/(c*300/0.15)” 手;

3:当收盘价高于2200的时候再开多“账户可用资金*0.5/(c*300/0.15)” 手;

4:。。。。。。以此类推

平仓条件如下:

1:当价格低于2200的时候把在当时在这个位置上开多的手数平调;

2:当价格低于2100的时候把在当时在这个位置上开多的手数平调;

3:当价格低于2000的时候把在当时在这个位置上开多的手数平调;

再次感谢!

 


--  作者:sdkj2000
--  发布时间:2013/8/16 11:25:12
--  
平调=平掉!对不起!
--  作者:lichenghu
--  发布时间:2013/8/16 13:27:42
--  
您好,有关代码问题请至公式模型编写区发贴咨询。