欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 股票交易量的问题。

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3719人关注过本帖树形打印复制链接

主题:股票交易量的问题。

帅哥哟,离线,有人找我吗?
solegoose
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2015/7/6 16:32:57
股票交易量的问题。  发帖心情 Post By:2016/10/18 9:03:25    Post IP:115.238.109.124[显示全部帖子]

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

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

 

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

buy(sig = 1, openvol, thisclose);

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

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
solegoose
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2015/7/6 16:32:57
  发帖心情 Post By:2016/10/18 20:36:41    Post IP:58.101.202.197[显示全部帖子]

openvol这个不是函数,是一个变量,是我根据总资产和风险控制参数计算出来的。在股票中我进行了100对齐,故msgout中输出的是200.
我用这个语句赋值,不用资产计算,效果一样:
openvol := 200;


 回到顶部
帅哥哟,离线,有人找我吗?
solegoose
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2015/7/6 16:32:57
  发帖心情 Post By:2016/10/19 14:50:03    Post IP:115.238.109.124[显示全部帖子]

K线图上的成交量也是乱的,109之类的。

 回到顶部
帅哥哟,离线,有人找我吗?
solegoose
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2015/7/6 16:32:57
  发帖心情 Post By:2016/10/19 16:06:53    Post IP:115.238.109.124[显示全部帖子]

可我明明在buy之前,赋值了openvol := 100;    109之类的数据哪里来的,那我怎么指定交易量啊


 回到顶部
帅哥哟,离线,有人找我吗?
solegoose
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2015/7/6 16:32:57
  发帖心情 Post By:2016/10/20 13:38:34    Post IP:115.238.109.124[显示全部帖子]

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,还是一些古怪的交易量。


 回到顶部
帅哥哟,离线,有人找我吗?
solegoose
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2015/7/6 16:32:57
  发帖心情 Post By:2016/10/25 18:27:52    Post IP:219.82.28.94[显示全部帖子]

软件有bug。我在另外一台机器上测试同样的策略,没有出现这个问题。然后把出问题的那台机器上的金字塔卸载,完全删除那个目录,重新安装,同一个策略就没有问题了。

 回到顶部