开仓-持仓-平仓-策略交易

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了,也可以决定他不开仓。


关于开仓策略与平仓策略对接
策略交易持仓与资金账户实际持仓的问题
收盘前平仓、延时开仓(代码共享)
开仓后无法平仓
策略交易初始持仓总是不为0怎么解决?
交易策略界面显示的和期货账户实际的持仓不一致,MarketPosition获取持仓数值不对
老师帮忙看下这个策略总是先发平仓再发开仓?!
老师好,请教一个问题,如何写当跟BAR上不能交易两次,比如开仓后不能平仓和平仓后不能再开仓?谢谢!
我可以开一个策略单元只负责开仓,一个策略单元只负责平仓吗?
【TBQuant3-新手指南】为什么平仓变成开仓?开平互转和净头寸交易介绍

有闪烁就会这样,把条件固定下来

Marketposition <>1 这个语句是不是不适合在是盘中检查账户持仓信息??大神指导一下

不是账户 是图表上的理论持仓 虚拟出来的