金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 106137

后台程序化对报单价格的理解

[复制链接]

2

主题

617

帖子

658

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-10
曾用名:
发表于 2024-12-16 23:23 | 显示全部楼层
造成你上面现象原因有以下2点。
1.你本地缺失数据,你上面的代码必须保证当天收盘后1分钟周期的数据完整。上述代码中,在数据量完整的情况下计算的委托价应该是:
乙二醇:
4689.32*1.05-mindiff=4922.794
4689.32*0.95+mindiff=4455.86
其他品种同理,结合当时的委托价,说明你本地没有收盘保存、或者收盘时本地分笔数量不全。造成1分钟周期存在缺失。

2.上面代码存在逻辑问题,连续合约在换月时,存在新老合约交替。这个时候会出现:在56分时使用是旧合约的数据计算得到的价格作为05合约的委托价,这也是产生较大差异的原因。
问题2的处理方法:建议你直接将结算价的计算部分,单独作为一个指标。在当前的后台策略中,引用结算价指标的值。引用时指定主力合约。

STKINDI(DYNAINFO(210),........);//参照此函数的说明填充对应的函数。
回复

使用道具 举报

36

主题

252

帖子

252

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-12-17 09:36 | 显示全部楼层
我监控全部是连续合约,自动映射到主力合约,比如 对二甲苯(7158-7214=56)、塑料(8567-8602=35)这两个品种不存在换月的问题,且1分钟周期数据也完整。
我看了下其他帖子,如下:


那个结算价是交易所盘后结算给的,按照算法它这个不是全天的算的结算价。  你要的是按照全天的来?
//以下代码在1分钟上计算有效,其他周期请跨周期调用
n1:=todaybar;
dm:=4-INTPART(LOG(C));
结算价:ROUNDS(IF(sum(vol,n1)=0,C,sum(C*vol,n1)/sum(vol,n1)),2+dm),colorred;


那就只能这样了。要获取到昨日收盘时候的,
昨日结算:ref(结算价,TODAYBAR);

1分钟周期上比较有效,其他周期上你只能跨周期调用了。你先在1分钟上加载看看吧

回复

使用道具 举报

36

主题

252

帖子

252

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-12-17 09:40 | 显示全部楼层
https://www.weistock.com/bbs/for ... 2%BD%E1%CB%E3%BC%DB
这个链接说的结算价,按照算法它这个不是全天的算的结算价。  我需要的也是全天(昨晚210000-次日150000)的,也就是说官方计算涨跌停价的昨结算价。
在集合竞价报单阶段 我能否用这个   昨日结算:ref(结算价,TODAYBAR);?  
回复

使用道具 举报

35

主题

9414

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-12-17 10:03 | 显示全部楼层
106137 发表于 2024-12-17 09:36
我监控全部是连续合约,自动映射到主力合约,比如 对二甲苯(7158-7214=56)、塑料(8567-8602=35)这两个 ...

1. 以对二甲苯为例:
16号收盘后,在1分钟基础数据是完整的情况下,ztj应该是7159.1,而你的委托价是7214。
因此:结算价=6820,而7214反推的结算价=6872.38,说明当时你1分钟数据一定是不完整的。

你现在那么肯定数据是完整原因应该是:排查问题时打开过k线图,软件会在打开k线图时自动点播数据。补充缺失的数据。

补充:
1.软件在没有初始化之前使用的是分笔数据,初始化后会使用到历史的基础周期数据。例如:16号结束时还是分笔,晚上初始化时会用16号的1分钟基础数据。所以你应该保证分笔数据完整并完成收盘保存,或者开盘前补充基础周期数据。

2. 后台设置的k线数量,应该在800根以上,保证可以使用到一整天的完整数据。检查你的设置是否只有几根k线

这个帖子中的内容不用管他,对你没有意义。你就按照你自己写的那个方式使用即可。
这个帖子中说的不是全天的是指k线没有结束前,计算结果还没确定下来。



金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

36

主题

252

帖子

252

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-12-17 10:03 | 显示全部楼层
乙二醇2505昨结算价是4803,而4689.32是乙二醇2501的结算价,但即使是这样用算出的4922.794跟我的集合竞价显示的委托价4939还存在一定差距。新旧合约的1分钟线也都完整,我设置的收盘5分钟后自动收盘。这不是新旧合约换月的影响啊!
回复

使用道具 举报

35

主题

9414

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-12-17 10:05 | 显示全部楼层
106137 发表于 2024-12-17 10:03
乙二醇2505昨结算价是4803,而4689.32是乙二醇2501的结算价,但即使是这样用算出的4922.794跟我的集合竞价 ...

检查你后台的数据量设置,不是只设置使用几根k线。1分钟周期一天的数据量以白银为例也要555根,你设置的数据量必须包好当天的完整的1分钟数据范围。最好大于800根以上
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

36

主题

252

帖子

252

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-12-17 10:16 | 显示全部楼层
1、我的自动收盘选项设置,收盘前自动补充市场分笔和保存分笔成交是不是都得选上?
2、我的各品种的汇总净持仓策略都是在1分钟K上运行+固定1秒轮询+5根K线,这里5根K线是不是改成500根或800根,大部分品种是不是应该就够了?
1.jpg
回复

使用道具 举报

36

主题

252

帖子

252

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-12-17 10:22 | 显示全部楼层
技术006 发表于 2024-12-17 10:05
检查你后台的数据量设置,不是只设置使用几根k线。1分钟周期一天的数据量以白银为例也要555根,你设置的 ...

我是一条预警监控一个连续合约,一共50多条预警,都是1分钟K上运行+固定1秒轮询+5根K线,不间断监控,刷新频率1000毫秒,占用CPU就是50%左右,每条预警如果是800根K以上,运行起来CPU是不是不够用了?
回复

使用道具 举报

35

主题

9414

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-12-17 10:25 | 显示全部楼层
106137 发表于 2024-12-17 10:16
1、我的自动收盘选项设置,收盘前自动补充市场分笔和保存分笔成交是不是都得选上?
2、我的各品种的汇总净 ...

1.勾选自动补充分笔。
2.你计算结算价的公式要求1整体的1分钟数据。你只用5根肯定不够。你现在这个指标建议你设置到860根。保证满足指标的计算。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

36

主题

252

帖子

252

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-12-17 12:46 | 显示全部楼层
技术006 发表于 2024-12-17 10:25
1.勾选自动补充分笔。
2.你计算结算价的公式要求1整体的1分钟数据。你只用5根肯定不够。你现在这个指标 ...

后台 预警在5根K线和800根K上,运行起来占用的CPU的比例是不是差不多,还是差的太多?我后台运行50多条预警了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-2-6 11:58 , Processed in 0.207106 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表