设为首页收藏本站

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

哪里错了?请帮忙看看 [复制链接]

Rank: 5Rank: 5

精华
0
UID
38411
积分
669
帖子
160
主题
17
阅读权限
60
注册时间
2011-5-8
最后登录
2023-10-4
跳转到指定楼层
1#
发表于 2012-4-23 19:51:46 |只看该作者 |倒序浏览
本帖最后由 期货进行中 于 2012-4-24 07:49 编辑

假设已开多单,则从开仓的K线开始记录BBI(多空指数)的最大值(记为HBBI),当BBi<=(1-n*0.01)*hbbi时,平多开空;

从开空的K线开始记录BBI的最小值(记为LBBI),当BBI>=(1+n*0.01)*lbbi 时,平空开多,依次进行

我编了一下,HBBI和LBBI这样取值好象不对,请老大们帮忙看看哪里错了?
谢谢!

Params
Numeric N(2);
Numeric lots(1);
Vars
Numeric HBBI;
Numeric LBBI;
NumericSeries bbi;
BoolSeries conb;
BoolSeries cons;
NumericSeries startbar1(0);
NumericSeries startbar2(0);

Begin
BBI=(Average(CLOSE,3)+Average(CLOSE,6)+Average(CLOSE,12)+Average(CLOSE,24))/4;
if(currentbar<=22)
{
HBBI=0;
lbbi=0;
}Else

if(MarketPosition==0)
{
HBBI=Max(bbi,hbbi[1]);
lbbi=Min(bbi,lbbi[1]);
}


conb=BBI>=(1+n*0.01)*lbbi and MarketPosition!=1;
if(conb[1])
{
Buy(lots,open);
startbar1=CurrentBar;
hbbi=Highest(bbi,currentbar-startbar1);
}Else
cons=BBi<=(1-n*0.01)*hbbi and MarketPosition!=-1;
if (cons[1])
{
SellShort(lots,open);
startbar2=CurrentBar;

lbbi=Lowest(bbi,currentbar-startbar2);
}
End

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2012-4-24 11:01:11 |只看该作者
你的条件与公式有点矛盾的地方呀。
假设已开多单,则从开仓的K线开始记录BBI(多空指数)的最大值(记为HBBI)

你的要求是开多后,开始BBI的最大值,但是公式里怎么却有在marketposition==0时记录最大值的语句呢
if(MarketPosition==0)
{
HBBI=Max(bbi,hbbi[1]);
lbbi=Min(bbi,lbbi[1]);

}

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
38411
积分
669
帖子
160
主题
17
阅读权限
60
注册时间
2011-5-8
最后登录
2023-10-4
3#
发表于 2012-4-24 12:41:25 |只看该作者
谢谢小米!
就是这里不知道怎么表达,没有仓位时,也要计算HBBI和LBBI,不然第一次怎么开多开空?有多单后的hbbi=Highest(bbi,currentbar-startbar1);
有空单后的lbbi=Lowest(bbi,currentbar-startbar2);
就是不知道哪里逻辑出问题

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
116243
积分
152
帖子
129
主题
9
阅读权限
40
注册时间
2013-3-20
最后登录
2022-9-13
4#
发表于 2013-6-29 15:20:34 |只看该作者
我个人觉得TB最难点也在编程,有好的学习方法吗?

使用道具 举报

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

bottom

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

GMT+8, 2024-5-5 15:55

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部