/ 简称: MA
// 名称: 移动平均线
// 类别: 公式应用
// 类型: 内建应用
//------------------------------------------------------------------------
移动平均线的核心思想是通过平滑价格数据来消除短期波动的干扰,凸显价格的长期趋势。它体现了“平均成本”或“平均价格”的概念,反映了过去一段时间内市场参与者总体的买卖意愿平衡点。
移动平均线在量化中运用很多,它虽然是滞后的指标,但是趋势策略是期货量化最有效的一类策略,而趋势策略中经常可以看见移动平均线。
金融民工就使用交易开拓者平台来进行期货量化的知识分享和学习,希望和大家一起在量化的世界探索和进步。
以下是金融民工写的一个移动平均线的函数:
Params
Numeric Length1(20);
Begin
PlotNumeric("MA1",AverageFC(Close,Length1));
End
以上是20日均线的一个划线,划线之后就得进行买卖逻辑建立,
最简单但均线策略逻辑:
1、前两根K线收盘价在均线之下,上一根K线收盘价在均线之上,下一根K线开盘价买入
2、前两根K线收盘价在均线之上,上一根K线收盘价在均线之下,下一根K线开盘价卖出
策略编写如下:
Params
Numeric Length1(20);
Vars
NumericSeries MA1;
Begin
// 集合竞价和小节休息过滤
If (!CallAuctionFilter()) Return;
MA1 = AverageFC(Close, Length1);
PlotNumeric("MA1", MA1);
// 判断买卖条件并下单
If (MarketPosition == 0) // 当前无持仓
{
If (Close[2] < MA1[2] &&Close[1] > MA1[1] && Open[1] > MA1[1] && Vol[1] > 0) // 当前周期收盘价高于MA1且上一周期成交量大于0
{
Buy(1, Open);
}
If (Close[2] > MA1[2] &&Close[1] < MA1[1] && Open[1] < MA1[1] && Vol[1] > 0) // 当前周期收盘价低于MA1且上一周期成交量大于0
{
SellShort(1, Open);
}
}
End
写完策略进行编译和验证:
测试结果是均线策略长期来看是有效的,上面是期货铜的日K线策略,但是问题就是频繁交易,所以均线就诞生了很多衍生量化策略。
比如MACD,双均线策略,三均线策略,瀑布线策略等。