金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3563|回复: 8

关于用DYNAINFO(210)函数在非主力合约上获取主力合约代码

[复制链接]

1

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2023-6-28
曾用名:
发表于 2023-7-3 10:10 | 显示全部楼层 |阅读模式
我使用关于用DYNAINFO(210)函数在非主力合约上获取主力合约代码,编写了一个函数write_main,其内容是:
WRITEINIFILE(  ‘c:/’,  ‘2023-07-03’,  'main',  DYNAINFO(210));


然后我在原油2309合约上加载这个函数,函数在c:\根目录下输出了sc2309.txt文件。但是在这个文件中显示的内容却是:

[2023-07-03]
main=1000040.000000

这个main不是主力合约的名字,不知是怎么回事?该如何用这个函数?谢谢!
回复

使用道具 举报

1

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2023-6-28
曾用名:
 楼主| 发表于 2023-7-3 10:12 | 显示全部楼层
目前,原油的主力合约是sc2308,按照我的理解,输出应该为:
[2023-07-03]
main=‘sc2308’

但实际不是这样。返回的1000040不知是什么东西。不知是我对函数理解错了?还是说函数的用法有误?
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2023-7-3 10:14 | 显示全部楼层
WRITEINIFILE这个是输出数值类型的,如果你要输出字符串类型,要用WRITEINIFILESTRING。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

1

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2023-6-28
曾用名:
 楼主| 发表于 2023-7-3 10:33 | 显示全部楼层
技术010 发表于 2023-7-3 10:14
WRITEINIFILE这个是输出数值类型的,如果你要输出字符串类型,要用WRITEINIFILESTRING。

谢谢,如您所说,把函数改为WRITEINIFILESTRING后就成功输出合约的代码了。
但是,我在write_main函数中又增加了一行,用于判断当前合约是否是主力合约:

WRITEINIFILE(  ‘c:/’,  ‘2023-07-03’,  'main',  DYNAINFO(228));
WRITEINIFILESTRING(  ‘c:/’,  ‘2023-07-03’,  'main',  DYNAINFO(228));

发现不管当前合约是不是主力合约,第一条语句总是返回is_main=0.000000,
而第二条语句总是返回is_main=E:\R\pyramids\daydata\price\
好像都不对。请问是怎么回事?谢谢!

回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2023-7-3 10:47 | 显示全部楼层
参考如下:
WRITEINIFILESTRING('C:\11.ini','2023-07-03','main',DYNAINFO(210));
WRITEINIFILE('C:\11.ini','2023-07-03',  'is_main',DYNAINFO(228));
截图202307031047306758.png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

1

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2023-6-28
曾用名:
 楼主| 发表于 2023-7-3 12:39 | 显示全部楼层
技术010 发表于 2023-7-3 10:47
参考如下:
WRITEINIFILESTRING('C:\11.ini','2023-07-03','main',DYNAINFO(210));
WRITEINIFILE('C:\11. ...

我严格按照你的写法,然后放到原有主力合约sc2308上,但是ini文件中是否主力合约处仍然输出为0. 见附图1,不知该怎么办?

另外,我同时也让函数输出到主图,但是此处主力合约的编码又变成了10000040,不知该如何改函数?见附图2
回复

使用道具 举报

1

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2023-6-28
曾用名:
 楼主| 发表于 2023-7-3 12:44 | 显示全部楼层
截图
附件1-1.png
附件1-2.png
附件2.png
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2023-7-3 12:45 | 显示全部楼层
本帖最后由 技术010 于 2023-7-3 12:57 编辑

1、只有在主力合约上输出才是1,你看是是否是在连续合约或其他非主力合约上输出了。另外你看下你本地原油当前的主力合约是哪个,是否是SC23082、K线图上只能输出数值类型的,不能直接输出字符串到K线图上。

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

使用道具 举报

1

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2023-6-28
曾用名:
 楼主| 发表于 2023-7-4 14:51 | 显示全部楼层
技术010 发表于 2023-7-3 12:45
1、只有在主力合约上输出才是1,你看是是否是在连续合约或其他非主力合约上输出了。另外你看下你本地原油当 ...

我用的是老版本的金字塔,刚才改为最新的版本后,用你的代码已经没问题了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-24 02:11 , Processed in 0.134032 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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