均线策略和新高策略【被diss版】

本文深入探讨了两种交易策略:均线策略和52周新高策略。均线策略涉及不同类型的移动平均线,如SMA、EMA等,并介绍了基于移动平均线的动量法则、交叉规则等。52周新高策略通过比较现价与过去52周最高价构建动量指标,用于识别赢家和输家投资组合,以实现长期收益。
摘要由CSDN通过智能技术生成

基本策略


目录

1 均线策略

1.1 C.J.Neely, P.A.Weller, Technical analysis in the foreign exchange market, Working Paper, Federal Reserve of St.Louis,2011.

1) 策略

2) 收益率回测

1.2 Valeriy Zakamulin, Market timing with moving averages,2017

1) 移动平均的几种类型

I 基本类

i. 简单移动平均 Simple Moving Average(SMA)

ii. 线性移动平均 Linear Moving Average(LMA)

iii. 指数移动平均 Exponential Moving Average(EMA)

II 进阶:平均中的平均 Moving Averages of Moving Averages

i. 三角移动平均 Triangular Moving Average

ii.双/三指数平滑 Double and Triple Exponential Smoothing

III 混合移动平均 Double Exponential Moving Average (DEMA), by Mulloy (1994a)

2) 均线策略

i. 动量法则 Momentum Rule

ii.均线策略 Moving Average Change of Direction Rule

iii. Price Minus Moving Average Rule

iv. 均线交叉 Moving Average Crossover Rule (MAC)

v.多均线策略

vi.均线收敛/发散规则 Moving Average Convergence/Divergence Rule

1.3 Valeriy Zakamulin, A Comprehensive Look at the Empirical Performance of Moving Average Trading Strategies, SSRN, Dec. 11,2015

说明:1.3和1.2基本一致,故略

1.4 F. Papailias, D.D. Thomakos, An improved moving average technical trading rule, Physica A 428(2015),458-469

属于对均线策略的优化,不知这个优化策略是否权威,所以暂时没有复制算法

2 新高策略

George, Hwang, The 52-Week High Momentum Investing, The Journal of Finance,Vol Lix No.5,Oct. 2004

1)指标构建

2)策略构建

3)收益率回测

此文提出的动量策略比较经典,以致后来的许多文献都以此为基础展开分析

  • Ming Liu and Qianqiu Liu (2009),The 52-Week High Momentum Strategy in International Stock Markets
  • Alsubaie and Najand (2008),Trading volume, Price Momentum,and the 52-Week High Momentum Strategy in the Saudi Stock Market

正文

说明:设我们获取到的数据集命名为为df。

1 均线策略

1.1 C.J.Neely, P.A.Weller, Technical analysis in the foreign exchange market, Working Paper, Federal Reserve of St.Louis,2011.

An MA rule compares a short and a long moving average of past prices and generates a buy (sell) signal if the short moving average intersects the long moving average from below (above). For example, one widely used rule, which we write as MA(5, 20), compares a 5-day and a 20-day moving average.

1) 策略

import pandas as pd
import numpy as np
import math


## 均线构建 (参数n为均线构建期间)
def MA(n):
    df['MA'+str(n)] = pd.rolling_mean(df['close'], n)
    print(df.head())

MA(5)  # 5日均线
MA(20) # 20日均线


## 多空信号
lst_signal=[]
df['signal']=df['MA5']-df['MA20']
for i in df['signal']:
    if i>0:
        lst_signal.append(1)   # 多头信号
    else:
        lst_signal.append(0)   # 空头信号

df['signal']=lst_signal

2)收益率回测

# 构建指标z
lst_z=[]
for j in df['signal']:
    if i=1:
        lst_z.append(1)   # 多头信号
    else:
        lst_z.append(-1)   # 空头信号

df['z']=lst_z

# 构建指标R
s_t1=pd.Series(df['close'].values).shift(1)
df['s_t1']=list(s_t1)   # 超前变量的设置,用shift函数
df['R_t1']=df['s_t1']/df['close']*df['i_']/df['i']
df['log_s_t1']=[math.log(i) for i in df['s_t1']]
df['log_s']=[math.log(j) for j in df['close']]
df['log_i_']=[math.log(i+1) for i in df['i_']]
df['log_i']=[math.log(j+1) for j in df['i']]
df['r_t1']=df['log_s_t1']-df['log_s']+df['log_i_']-df['log_i']
r=sum(df['z']*df['r+1'])+ math.log((1-c)/(1+c))    # r为交易期间使用策略获得的累计超额收益</
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值