设为首页收藏本站

 找回密码
 注册
查看: 4073|回复: 11
打印 上一主题 下一主题

关于D1与主力合约的关系问题。 [复制链接]

Rank: 4

精华
0
UID
208790
积分
269
帖子
187
主题
35
阅读权限
50
注册时间
2015-5-12
最后登录
2015-9-9
跳转到指定楼层
1#
发表于 2015-6-8 13:09:25 |只看该作者 |倒序浏览
版主,你好。
我在《公式应用设置》中选择了映射委托为D0—主力合约,但在我自己的公式代码中应用了Data1.来调用Data1商品的行情函数。
而在《商品设置》中仅看到Data0对应的商品是IF888,看不到Data1对应的商品。
不知道我能实现调用吗?策略能正常运行吗?
谢谢!

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2015-6-8 13:45:01 |只看该作者
你的Data1是插入的什么合约呢?如你所说的,应该是IF888吧??
你的开仓信号指令是写在哪个data上的呢??

使用道具 举报

Rank: 4

精华
0
UID
208790
积分
269
帖子
187
主题
35
阅读权限
50
注册时间
2015-5-12
最后登录
2015-9-9
3#
发表于 2015-6-8 13:55:42 |只看该作者
小米 发表于 2015-6-8 13:45
你的Data1是插入的什么合约呢?如你所说的,应该是IF888吧??
你的开仓信号指令是写在哪个data上的呢?? ...

按理说Data1应该是插入的IF1506,现阶段它是主力合约,我用的是“D0—主力合约”的映射委托关系,但是在《商品设置》里看不到它,既没有“IF1506”也没有“主力合约”是“Data1”的商品在里面,仅有一个IF888为Data0一项。
开仓信号我写在Data0上,也就是“IF888”上,不知道我说清楚了没有。
如果我在IF888上插入商品IF1506,再用“D0—D1”的映射委托的话,在《商品设置》中,我能看到Data0为IF888,Data1为IF1506两项。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
4#
发表于 2015-6-8 14:14:27 |只看该作者
edwardkm 发表于 2015-6-8 13:55
按理说Data1应该是插入的IF1506,现阶段它是主力合约,我用的是“D0—主力合约”的映射委托关系,但是在 ...

对于您的描述有点晕乎。。。
这样吧,我把委托映射有关的交易设置给理一下吧。
在使用D0---->主力合约时,只需要在图表上加载IF000或IF888并加载指令信号的策略即可。不需要在图表插入其它的任何合约,也不需要在商品设置--属性里看到IF1506的合约与数据。。。
此时,在DATA0的商品设置---属性---属性---关联商品中显示为IF1506.即图表信号的委托单 将发送在合约if1506上。
如果你使用D0---D1,就需在图表上叠加合约了,先加载if888或if000,然后插入合约if1506. 且交易指令是加载在data0的数据上的,然后完成交易的设置方可。
ps: 在使用委托映射功能时,特别是使用指数数据来加载信号时,一定要配合使用委托偏移的功能 ,以提高成交的概率

使用道具 举报

Rank: 4

精华
0
UID
208790
积分
269
帖子
187
主题
35
阅读权限
50
注册时间
2015-5-12
最后登录
2015-9-9
5#
发表于 2015-6-8 14:15:30 |只看该作者
哦,我有点儿理解你的意思了,你的意思是说,IF888本身就是主力合约,所以不会在《商品设置》中有两个商品,是这样吧?但是IF888能交易吗?IF000呢?
我不知从哪里看到这两个是数据合约,不是交易合约,不知道我理解对了没有?
请赐教!

使用道具 举报

Rank: 4

精华
0
UID
208790
积分
269
帖子
187
主题
35
阅读权限
50
注册时间
2015-5-12
最后登录
2015-9-9
6#
发表于 2015-6-8 14:28:37 |只看该作者
嗯,嗯。
在DATA0的商品设置---属性---属性---关联商品中显示为IF1506。对的。我看到了,如您所说,是这样的。那,我是不是应该把代码中的Data1.Q_XXX这样的调用去掉Data1.呢?
我在使用D0—D1映射委托时,使用的是A_Sendorder和全局变量,是能正常发单的。
谢谢!

使用道具 举报

Rank: 4

精华
0
UID
208790
积分
269
帖子
187
主题
35
阅读权限
50
注册时间
2015-5-12
最后登录
2015-9-9
7#
发表于 2015-6-8 14:50:32 |只看该作者
本帖最后由 edwardkm 于 2015-6-8 14:56 编辑
小米 发表于 2015-6-8 14:14
对于您的描述有点晕乎。。。
这样吧,我把委托映射有关的交易设置给理一下吧。
在使用D0---->主力合约时 ...


“ps: 在使用委托映射功能时,特别是使用指数数据来加载信号时,一定要配合使用委托偏移的功能 ,以提高成交的概率”
上面所说的提示,我在代码中有两个全局变量来记录持仓标识(0)和发单标识(0),A_SendOrder后,发单标识为1,不再发单,5个tick之后,持仓为非零之后,就把发单标识置零;5个tick之后,持仓仍为0,A_Delete,之后再把两全局变量置零。另外发单的时候取即时行情加减跳数。
应该达到您所说的要求了吧,请帮我看看,逻辑上有没有问题。
另外,如果我按照您所说的设置委托偏移。我的代码中又加入了上述的限制。实际运行的时候,TB将按什么来处理呢?会有冲突吗?
谢谢!

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
8#
发表于 2015-6-8 15:56:35 |只看该作者
edwardkm 发表于 2015-6-8 14:15
哦,我有点儿理解你的意思了,你的意思是说,IF888本身就是主力合约,所以不会在《商品设置》中有两个商品 ...

1.if000 与 if888不是交易所提供的合约代码,不可以直接对这二个合约下单。。所以在用这二个合约加载策略时,要使用委托映射功能,映射到交易所提供的可交易的合约上。
2.我不太清楚你的代码里data1.q_xxx是干嘛用的,所以在这里要不要去掉不置可否。
   但务必注意的是a_sendorder来交易是不支持委托映射的功能 (之所以我在4#的第四行回复里强调了“即图表信号的委托单”就是要提醒这一点,因为a_sendorder是没有信号的,只是buy,sell等指令方在图表上显示信号)
如果你的data0合约是000或888,那a_sendorder也不可能有正常的发单的。
3. a_sendorder指令也不支持委托偏移的设置的。。所有的需求都必须在该指令里写好。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
9#
发表于 2015-6-8 15:57:04 |只看该作者
edwardkm 发表于 2015-6-8 14:15
哦,我有点儿理解你的意思了,你的意思是说,IF888本身就是主力合约,所以不会在《商品设置》中有两个商品 ...

1.if000 与 if888不是交易所提供的合约代码,不可以直接对这二个合约下单。。所以在用这二个合约加载策略时,要使用委托映射功能,映射到交易所提供的可交易的合约上。
2.我不太清楚你的代码里data1.q_xxx是干嘛用的,所以在这里要不要去掉不置可否。
   但务必注意的是a_sendorder来交易是不支持委托映射的功能 (之所以我在4#的第四行回复里强调了“即图表信号的委托单”就是要提醒这一点,因为a_sendorder是没有信号的,只是buy,sell等指令方在图表上显示信号)
如果你的data0合约是000或888,那a_sendorder也不可能有正常的发单的。
3. a_sendorder指令也不支持委托偏移的设置的。。所有的需求都必须在该指令里写好。

使用道具 举报

Rank: 4

精华
0
UID
208790
积分
269
帖子
187
主题
35
阅读权限
50
注册时间
2015-5-12
最后登录
2015-9-9
10#
发表于 2015-6-8 23:37:27 |只看该作者
本帖最后由 edwardkm 于 2015-6-8 23:42 编辑
小米 发表于 2015-6-8 15:57
1.if000 与 if888不是交易所提供的合约代码,不可以直接对这二个合约下单。。所以在用这二个合约加载策略 ...


好的,米大师,我重新梳理思路,说明如下,请帮忙裁定,如何处理?
1.起先,我是在IF888上叠加商品IF1506,再选择D0->D1的委托映射。能正常发单,类似语句如:
If (关于data0的条件==ture)
{
Data1.A_SendOrder(Enum_Buy,Enum_Entry,1,Data1.Q_AskPrice+offSet*Data1.MinMove*Data1.PriceScale);
...
}
2.之后,看到委托映射中有选择“D0->主力合约”的选项,个人理解为避免合约到期手工换仓换合约的麻烦,认为TB为用户设计的一个便利,在上例1中,删除了叠加的IF1506,选择了“D0->主力合约”。但是,找不到Data1的相关信息,所以,不知道我上述的语句将如何执行。
3.如果不能执行的话,是不是只能用Buy、sell等等这样的下单指令?或者如1中所选择的委托映射操作,届时只能记得每次到期更换合约?

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-2 11:25

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部