请问版主关于数据叠加的问题 - TradeBlazer公式 [开拓者 TB]
- 咨询内容:
本帖最后由 mars622160 于 2012-3-21 21:53 编辑
版本:TBV4.2.5
问题:如果我发信号的合约为IF000(数据为data0),交易合约为当月连续(标记为data1),条件如下:
if (con[1]=true) //con[1]用data0计算出
{
buy(lots,data1.close[1])
}
请问
1.按照上述语句,发单会以“data1.close[1]“的价格在当月合约上发单吗?
2.如果上述程序不会在当月合约(data1)上发单,而是在IF000(data0)上发单,应该如何更改程序使得发单在当月合约?(注意:不想通过“将商品0的讯号映射到商品1”来实现,想纯粹从程序角度)
非常感谢! - TB技术人员:
回复 1# mars622160
1.不能对当月合约进行发单
2. 可以尝试改为- if(con[1]==true)
- {
- data1.buy(lots,data1.open);
- }
- if(con[1]==true)
- TB客服:
本帖最后由 mars622160 于 2012-3-24 22:47 编辑
回复 2# 小米
谢谢,再请教两个问题:
(1)以下写法是否可以呢:
if(con[1]==true)
{
data1.buy(lots,data1.close[1]);
}
(2) “data1.buytocover(lots,0);”是指按照当月合约(data1)的现价发单吗?(PS:会不会是data0的现价呢?)
(3)在数据叠加时,"data0.MarketPosition“和"data1.MarketPosition“有何区别?我如果用data0发信号,然后用data1交易,则应该用以下哪种写法?
写法1:
if(con[1]==true && MarketPosition == -1)//注意:con[1]是用data0的数据计算
{
data1.buy(lots,data1.Open);
}
写法2:
if(con[1]==true && Data1.MarketPosition == -1)//注意:con[1]是用data0的数据计算
{
data1.buy(lots,data1.Open);
}
非常感谢您! - 网友回复:
回复 2# 小米
版主能否回答,非常感谢您! - 网友回复:
回复 3# mars622160
1.这样的写法在语法上是没有错的。但是使用上一个BAR的价格来发单 ,这样合理吗?易于成交吗?建议这里使用当前BAR的Open价。
2.这样写就是使用data0的价格去发单了。
3.你本身都是对data1进行发单的,信号是标是在data1上的,自然marketposition也要判断data1上的才是,使用第2种写法才是合理的。
相关文章
-
没有相关内容