以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  股票交易量的问题。  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=141149)

--  作者:solegoose
--  发布时间:2016/10/18 9:03:25
--  股票交易量的问题。

我这几天测试一个股票策略,发现交易量有问题。

在发出BUY指令前,我还用msgout输出了交易量,但是和交易日志中的交易量不一样。

 

msgout(openvol != 0, numtostr(openvol, 0));

buy(sig = 1, openvol, thisclose);

msgout输出的openvol是200(股票里应该是股数吧),结果在交易日志中是117,最终成交100。

如果把这个策略直接加载在图表上,那么图表上显示的交易量不确定,一般是100多,例如109之类的。

 


--  作者:jinzhe
--  发布时间:2016/10/18 9:18:45
--  

openvol这个函数是什么定义的?

k线图上的开仓信号时的开仓量是是多少?

 


--  作者:solegoose
--  发布时间:2016/10/18 20:36:41
--  
openvol这个不是函数,是一个变量,是我根据总资产和风险控制参数计算出来的。在股票中我进行了100对齐,故msgout中输出的是200.
我用这个语句赋值,不用资产计算,效果一样:
openvol := 200;


--  作者:jinzhe
--  发布时间:2016/10/19 8:52:46
--  
以下是引用jinzhe在2016-10-18 9:18:45的发言:

openvol这个函数是什么定义的?

k线图上的开仓信号时的开仓量是是多少?

 

第二个问题也麻烦回答一下

[此贴子已经被作者于2016-10-19 8:53:05编辑过]

--  作者:solegoose
--  发布时间:2016/10/19 14:50:03
--  
K线图上的成交量也是乱的,109之类的。
--  作者:jinzhe
--  发布时间:2016/10/19 15:10:26
--  
那就是109了,k线图上的信号反映出你的计算结果为109,然后按照金字塔下单规则自动变成100股下单
--  作者:solegoose
--  发布时间:2016/10/19 16:06:53
--  
可我明明在buy之前,赋值了openvol := 100;    109之类的数据哪里来的,那我怎么指定交易量啊


--  作者:jinzhe
--  发布时间:2016/10/19 16:13:16
--  

怎么又有新条件了?

你把你的代码都发一下


--  作者:solegoose
--  发布时间:2016/10/20 13:38:34
--  
RETVAL := "FMLDEV@POL"(...);

OPENVOL := MOD(RETVAL, 10000);
SIG := (RETVAL - OPENVOL) / 10000;
OPENVOL := OPENVOL * 200;

IF (SIG = 1 OR SIG = 8 OR SIG = 9 OR SIG = 2 OR SIG = 7 OR SIG = 10) THEN
BEGIN
    OPENVOL := 200;
    BUY(SIG = 1 OR SIG = 8 OR SIG = 9, OPENVOL, MARKET);
    BUYSHORT(SIG = 2 OR SIG = 7 OR SIG = 10, OPENVOL, MARKET);
END;
这就是我大致的代码。
信号由DLL中发出,DLL返回值包括了SIG(决定是开仓?平仓等动作)和交易量。刚开始我以为返回的交易量有问题,所以在BUY指令前面增加了一句:
OPENVOL := 200;
但是这样执行到BUY,还是一些古怪的交易量。


--  作者:jinzhe
--  发布时间:2016/10/20 13:53:17
--  

这样的代码信号开仓量不改是非200的数量,

你把k线图截图发一下