金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 106137

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

[复制链接]

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-12-17 16:43 | 显示全部楼层
必须是主力合约,通过DYNAINFO(210)获取。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-12-17 16:44 | 显示全部楼层
必须是主力的。否则你调用连续,不还是算的旧合约的结算价了吗?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

35

主题

9414

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-12-17 16:44 | 显示全部楼层
106137 发表于 2024-12-17 16:41
2.上面代码存在逻辑问题,连续合约在换月时,存在新老合约交替。这个时候会出现:在56分时使用是旧合约的 ...

是的,按照你目前的代码逻辑,只能通过上面提供的方式进行处理。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

36

主题

252

帖子

252

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-12-17 16:46 | 显示全部楼层
技术009 发表于 2024-12-17 16:44
必须是主力的。否则你调用连续,不还是算的旧合约的结算价了吗?

嗯,那只能每当预料要换月时,改公式写具体主力合约,岂不是每换一次月,就需要改一次引用公式?
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-12-17 16:52 | 显示全部楼层
不用改代码啊,直接用函数DYNAINFO(210)获取当前最新的主力合约代码,换月后,会自动对应到新的主力合约代码的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

36

主题

252

帖子

252

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-12-17 16:58 | 显示全部楼层
admin 发表于 2024-12-16 23:23
造成你上面现象原因有以下2点。
1.你本地缺失数据,你上面的代码必须保证当天收盘后1分钟周期的数据完整。 ...

我的是汇总净持仓策略(引用的策略是日线),后台1分钟+固定1秒轮询+5根K(未来可能改为500根K),STKINDI(DYNAINFO(210),........);里面的参数当前主图周期选1分钟还是日线?NUM选-1,0还是1?
回复

使用道具 举报

35

主题

9414

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-12-17 17:07 | 显示全部楼层
106137 发表于 2024-12-17 16:58
我的是汇总净持仓策略(引用的策略是日线),后台1分钟+固定1秒轮询+5根K(未来可能改为500根K),STKIND ...

1.500根肯定不行。一天的数据量必须大于600。白银每天是555根k线。
2.ZTJ:stkindiex(DYNAINFO(210),"结算价指标.ZTJ",0,1,0,1500);
结算价指标名称改成,自己结算价的指标名称。上面是引用你的预估涨停值。其余同理。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

36

主题

252

帖子

252

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-12-17 17:26 | 显示全部楼层
技术006 发表于 2024-12-17 17:07
1.500根肯定不行。一天的数据量必须大于600。白银每天是555根k线。
2.ZTJ:stkindiex(DYNAINFO(210),"结 ...

DYNAINFO(210)主力合约数据一定能取到吧?担心和DYNAINFO(54)和DYNAINFO(55)一样,有的能取到有的取不到
回复

使用道具 举报

36

主题

252

帖子

252

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-12-17 17:44 | 显示全部楼层
//以下代码在1分钟上计算有效,其他周期请跨周期调用



n1:=todaybar;



dm:=4-INTPART(LOG(C));



结算价:=ROUNDS(IF(sum(vol,n1)=0,C,sum(C*vol,n1)/sum(vol,n1)),2+dm);



昨结算:=VALUEWHEN(TIME=CLOSETIME(0),结算价);



主力昨结算:=stkindiex(DYNAINFO(210),"昨结算",0,1,0,1500);



ztj:=主力昨结算*1.05-mindiff;//自行按5%计算的准涨停价



dtj:=主力昨结算*0.95+mindiff;//自行按5%计算的准跌停价



这样对不对?
回复

使用道具 举报

2

主题

617

帖子

658

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-10
曾用名:
发表于 2024-12-17 19:55 | 显示全部楼层
不对。建议好好理解下引用指标的原理:说白了就是在当前指标中,获取另个指标的计算结果。stkindiex函数的参数和示例
https://www.weistock.com/docs/PE ... 6%E5%85%AC%E5%BC%8F

假设被引用指标的名字是:结算指标
n1:=todaybar;
dm:=4-INTPART(LOG(C));
结算价:=ROUNDS(IF(sum(vol,n1)=0,C,sum(C*vol,n1)/sum(vol,n1)),2+dm);
昨结算:=VALUEWHEN(TIME=CLOSETIME(0),结算价);
ztj:昨结算*1.05-mindiff;//自行按5%计算的准涨停价
dtj:昨结算*0.95+mindiff;//自行按5%计算的准跌停价


当前指标中使用stkindiex获取结算指标中的ztj,dtj变量的结果,参与到当前指标的计算中。
主力ztj:=stkindiex(DYNAINFO(210),'结算指标.ztj',0,1,0,1500);
主力dtj:=stkindiex(DYNAINFO(210),'结算指标.dtj',0,1,0,1500);



回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-6 12:10 , Processed in 0.266180 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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