- 精华
- 0
- 在线时间
- 322 小时
- UID
- 257171
- 积分
- 133
- 帖子
- 99
- 阅读权限
- 40
- 注册时间
- 2017-9-28
- 最后登录
- 2019-11-16
- 精华
- 0
- UID
- 257171
- 积分
- 133
- 帖子
- 99
- 主题
- 32
- 阅读权限
- 40
- 注册时间
- 2017-9-28
- 最后登录
- 2019-11-16
|
发表于 2018-5-12 22:57:11
|显示全部楼层
以双均线为例,比如:在第四根Bar,MA1上穿了MA2,那么第五根bar就满足了 MA1[1] > MA2[1],就可以BUY了,接着第六根第七根Bar也同样满足MA1[1] > MA2[1],为何第六根第七根Bar上没有继续Buy了呢?是Buy这个交易函数在图表讯号显示当前有多头持仓时就不再发出Buy的指令了吗?函数手册在介绍Buy时只是说如果当前持有空头仓位则会先平掉空仓再开多仓,却没讲如果已经持有多头仓位会怎样。若在已经持有多头仓位时就会自动过滤掉后面的Buy指令的话,那就没必要在在BUY语句前的条件中再加一条要求If( MA1[1] > MA2[1] && marketposition<>1) Buy(lots,open);了吗?
案例如下:
Params
Numeric FastLength(5);
Numeric SlowLength(20);
Numeric lots (1);//委托价格偏移
Vars
NumericSeries MA1;
NumericSeries MA2;
Begin
MA1 = AverageFC(Close,FastLength);
MA2 = AverageFC(Close,SlowLength);
PlotNumeric("MA1",MA1);
PlotNumeric("MA2",MA2);
// 集合竞价和小节休息过滤
If(!CallAuctionFilter()) Return;
If( MA1[1] > MA2[1] )
{
Buy(lots,open);
}
If(MA1 [1]<MA2[1])
{
SellShort(lots,open);
}
End
|
|