Params
Numeric FastLength(8); // 快速均线周期
Numeric SlowLength(40); // 慢速均线周期
Numeric RiskLength(2); // 止损通道的周期数
Numeric ProfitFactor(2); // 止盈相对止损的倍数
Vars
Numeric MA_Fast; // 快速均线
Numeric MA_Slow; // 慢速均线
Numeric MyRange; // K线波动范围
Series<Bool> Condition1; // 条件1
Series<Bool> Condition2; // 条件2
Numeric HH; // 周期的高点
Numeric LL; // 周期的低点
Numeric LongRisk; // 止损时的风险额
Events
OnBar(ArrayRef<Integer> indexs)
{
// 计算及输出均线指标
MA_Fast = Average(Close,FastLength);
MA_Slow = Average(Close,SlowLength);
PlotNumeric(\"Ma_Fast\",MA_Fast);
PlotNumeric(\"Ma_Slow\",MA_Slow);
// 每根K线的波动范围
MyRange = High - Low;
// K线形态判断的2个条件
Condition1 = Close <= Low + 0.25 * MyRange;
Condition2 = Close >= High - 0.25 * MyRange;
// 计算周期的高低点
HH = Highest(High,2);
LL = Lowest(Low,RiskLength);
// 开仓
If(MarketPosition == 0 And Condition1[2] And Condition2[1] And Close[1] > MA_Fast[1] And Close[1] > MA_Slow[1] And Vol > 0)
{
If(High >= HH[1] + MinMove * PriceScale)
{
Buy(0, Max(Open,HH[1] + MinMove * PriceScale));
LongRisk = LL[1] - MinMove * PriceScale;
}
}
// 平仓
If(MarketPosition == 1 And BarsSinceEntry > 0 And Vol > 0)
{
// 止盈
If(High >= EntryPrice + ProfitFactor * (EntryPrice - LongRisk))
{
Sell(0, Max(Open,EntryPrice + ProfitFactor * (EntryPrice - LongRisk)));
}
// 止损
Else If(Low <= LongRisk)
{
Sell(0, Min(Open,LongRisk));
}
}
}
为什么在持仓1手每平仓之前,还会持续开仓??MarketPosition == 0这个条件不是明显说明持平才能开仓,为啥实盘就会出现连续性开仓。即使有开仓信号,这个MarketPosition != 0了,也可以决定他不开仓。
有闪烁就会这样,把条件固定下来
Marketposition <>1 这个语句是不是不适合在是盘中检查账户持仓信息??大神指导一下
不是账户 是图表上的理论持仓 虚拟出来的