设为首页收藏本站

 找回密码
 注册
查看: 4083|回复: 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: 4

精华
0
UID
208790
积分
269
帖子
187
主题
35
阅读权限
50
注册时间
2015-5-12
最后登录
2015-9-9
12#
发表于 2015-6-9 08:57:16 |只看该作者
小米 发表于 2015-6-9 08:44
1.a_sendorder不支持委托映射的发单,且你的代码里已经写明了data1.a_sendorder了。所以这里完全不需要设 ...

完全理解了,谢谢米大师!

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
11#
发表于 2015-6-9 08:44:58 |只看该作者
edwardkm 发表于 2015-6-8 23:37
好的,米大师,我重新梳理思路,说明如下,请帮忙裁定,如何处理?
1.起先,我是在IF888上叠加商品IF1506 ...

1.a_sendorder不支持委托映射的发单,且你的代码里已经写明了data1.a_sendorder了。所以这里完全不需要设置委托映射。。
2. 是的,你的理解是对的。D0--->主力的图表上可以只有一个data0的合约,所以如此此图表没有叠加其它合约,那data1.a_sendorder是没法有效发单的。
3. 你先确定一下自己要用哪套指令在来公式吧?比如你是想在指数合约上来判断条件,对主力进行交易的话。
    如果是buy,sell。可以使用委托映射的功能。。图表上不需要叠加主力合约的K线数据,公式里只需写buy,sell。而不需要data1.buy ,data1.sell的指令。。
   如果是a_sendorder,不可以使用委托映射功能 。。图表上需要在指数合约上叠加当前主力合约的K线数据。公式里需要使用data1.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中所选择的委托映射操作,届时只能记得每次到期更换合约?

使用道具 举报

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: 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: 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: 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
5#
发表于 2015-6-8 14:15:30 |只看该作者
哦,我有点儿理解你的意思了,你的意思是说,IF888本身就是主力合约,所以不会在《商品设置》中有两个商品,是这样吧?但是IF888能交易吗?IF000呢?
我不知从哪里看到这两个是数据合约,不是交易合约,不知道我理解对了没有?
请赐教!

使用道具 举报

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: 在使用委托映射功能时,特别是使用指数数据来加载信号时,一定要配合使用委托偏移的功能 ,以提高成交的概率

使用道具 举报

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

bottom

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

GMT+8, 2024-5-18 00:19

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部