- 精华
- 0
- 在线时间
- 58 小时
- UID
- 249830
- 积分
- 18
- 帖子
- 9
- 阅读权限
- 10
- 注册时间
- 2017-4-9
- 最后登录
- 2020-12-5
- 精华
- 0
- UID
- 249830
- 积分
- 18
- 帖子
- 9
- 主题
- 3
- 阅读权限
- 10
- 注册时间
- 2017-4-9
- 最后登录
- 2020-12-5
|
发表于 2017-4-16 19:14:14
|显示全部楼层
很简单的金叉进场做多策略,根据指南平仓后延迟反手代码写的,代码如下:
其中DelayTicks=5,lots=1
// 金叉发生时进场做多
If(ConCrossOver[1])
{
If(MarketPosition == 0 || BarStatus != 2)
// 无持仓,直接买多仓;持空仓且Bar 不是实时行情,平空仓,买多仓
{
Buy(Lots,0);
}Else // 持空仓,Bar 实时行情,平空仓,通过TickCounter计数,延迟反手
{
BuyToCover(0,0);
If(TickCounter == 0)
{
TickCounter = 1;
}Else If(TickCounter < DelayTicks)
{
TickCounter = TickCounter + 1;
}Else
{
Buy(Lots,0);
}
}
}
做的是5分钟策略,根据图表,22:25的bar产生了信号,日志如下:
2017/04/14 22:25:01.294自动交易信息:帐户[102050151]商品[a1709]类型[买平]数量[1]价格[3876.00000000]注释[MINMA]
2017/04/14 22:30:00.624自动交易信息:帐户[102050151]商品[a1709]类型[买开]数量[1]价格[3896.00000000]注释[MINMA]
有一个情况是我是刚开始使用,因此信号发出之前头寸为0,图表头寸是1个空仓,因此买平的单子没有交易成功。
现在的问题是:平仓单发了,但是反手单没有在5个tick后发,而是下一个bar一开始发了,请问是哪里出问题了?请版主帮忙看下,谢谢
|
|