该策略的核心思想是:将中位数作为价格的“均衡线”或“价值中枢”,当价格显著偏离这个中枢时,就会产生回归的倾向。我们利用这个特性来寻找买卖点。

A、策略逻辑简述

  • 中位数 (中线): 代表了最近N期内市场的平均成本中心,比简单移动平均线(SMA)更能抵抗极端值的干扰。
  • 通道的宽度: 代表了最近N期市场的波动幅度。市场波动大,通道就宽,需要更大的力度才能突破;市场波动小,通道就窄,轻微的波动就可能触发信号。
  • 突破: 价格突破通道,意味着打破了之前的平衡状态,有可能开启一波新的趋势。

B、策略公式

  1. 计算中位数线 (Median Line):
    • 中线 = 最近N个收盘价的中位数
    • 参数 N: 回顾的周期,例如 20天(可根据不同市场调整)。
  2. 计算上下通道线 (Channel Bands):
    • 上轨 = 中线 + (N周期内的最高价 - N周期内的最低价) * K
    • 下轨 = 中线 - (N周期内的最高价 - N周期内的最低价) * K
    • 参数 K: 通道宽度的系数,例如 0.5。K值越大,通道越宽,交易信号越少;K值越小,通道越窄,交易信号越多。
  3. 买入和卖出时机
  • 买入信号:
    当收盘价向上突破上轨时,视为价格进入强势上涨趋势,产生买入信号。
  • 卖出信号:
    当收盘价向下跌破下轨时,视为价格进入强势下跌趋势,产生卖出信号。

根据上述描述,我们来实现此策略:

第一步先按顺序定义如下指标:

过去20日收盘价中位数:

  1. SPL公式:median()函数

函数说明:

计算一个数值序列的中位数,中位数比简单平均更能抵抗极端值。

函数语法:

A.median(k:n,x)

参数说明:

将序列A根据其长度平均分成n段,返回第k段与第k+1段的分界值,有参数x时,先对A计算表达式x,然后再分段。

k省略n不省略时,将各段的分界值组成序列返回。

k、n参数全省略时,如果序列长度是奇数返回中间位置的成员值;如果序列长度是偶数返回中间两个成员的平均值。对于不能平均分段的序列采取逻辑分段。

用法示例:

       [1,2,3,4,5,6,7,8,9,10].median()                   //返回5.5

[1,2,3,4,5,6,7,8,9,10].median(1:2)               //返回5.5

[1,2,3,4,5,6,7,8,9,10].median(1:3)               //返回4

=[1,2,3,4,5,6,7,8,9,10].median(1:3,~*~)      //返回16


       过去20日最高价:

       过去20日最低价:

       中位数通道上轨:

       中位数通道下轨:

第二步定义买卖信号列:

第三步定义策略:

点提交后,可以看到回测结果:

600690这只股票,使用中位数通道突破策略,在2024年实现了7.64%的盈利。

SPL量化工作台(临时)网址:http://stock.raqsoft.com.cn:8092/model.jsp

因股票信息量大,请在大屏幕电脑上使用浏览器操作,不合适小屏幕手机体验。

工作台首页:https://www.raqsoft.com.cn/wx/splqt.html (长期有效,临时网址变更时可从这里获取最新的)。

社区网址:https://c.raqsoft.com.cn/tag/QuantitativeTrading
 

Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐