|
01 引言
趋势跟踪策略目的是依据市场趋势方向开展交易,要是市场呈上升趋势,投资者就应买入,且维持该头寸直至趋势结束。同样,要是市场处于下降趋势,投资者需卖空,且保持此头寸直至趋势结束。该策略基于市场趋势延续性原则,也就是市场趋势一般会在一段时间内持续。常用的工具包含k线,还有压力和支撑,以及趋势线、均线、交易模式等 。趋势跟踪也能够称作右手交易策略 。其交易理念是基于最少五个基本假设 :第一,市场价格涵盖了所有当前信息 ;第二,价格波动依照一定的趋势运行 ;第三,能够现实且清晰地判断市场走势 ;第四,趋势能延伸多远,无法预先知晓 ;第五,市场趋势能够被跟踪交易 。
趋势跟踪策略包括以下几种交易策略:
下面基于包对这些交易策略开展简单的量化回测,关于其安装和使用的介绍可参见推文:【手把手教你】使用进行量化回测
02 均线策略
双均线策略
移动平均线能反映某段时间内的平均价格,双均线交叉系统借助两根不同周期移动平均线的交叉来形成趋势确认信号,这一般是指一根较小周期均线上穿或下穿较长周期均线,进而形成多头或空头趋势的信号。其原理是,认为较短周期的移动均线更能反映近期的行情方向,当较短周期的移动均线上穿或者下穿较长周期的移动均价线时,会有很大可能性形成该方向的趋势。
代码为“中国平安”,简单移动平均线为20,线性加权移动平均线为60,指数为“沪深300”,起始为空,结束为空 。
你提供的内容似乎并不是一个完整清晰的句子表述,可能存在一些混淆或错误信息,不太明确其确切含义,所以无法按照要求进行改写 。请你检查并提供准确清晰的内容 。
你提供的内容似乎存在错误信息,“df.close.(sma).mean()”这种表达不正确,可能影响准确改写。请检查并修正后再让我进行改写。
你提供的内容存在错误,正确的可能是“df['lma'] = df['close'].(=窗口大小).mean()”(假设这里有个窗口大小的参数,你未给出完整准确内容),以下是改写后的:将df中的'lma'列赋值为,df中close列按窗口大小滚动计算的均值 。请你根据实际正确内容进行调整,确保准确。
#短期均线大于长期均线发出买入信号设置为1
当df数据框中,'sma'列的值大于'lma'列的值时,将空字符串对应的位置赋值为1 。
#当短期均线跌破长期均线发出卖出信号设置为0
你提供的内容似乎存在一些错误和不完整的地方,无法准确理解其确切含义并进行改写,请你检查并补充完整准确的内容。
df.loc[df['MACD']
将信号序列向前移动一位,以此防止未来数据产生干扰 ,df['']=df[''].shift(1).(0)
请你提供准确清晰的内容,以便我能按照要求进行改写。你给出的“#df[''].('ffill',=True)”表述不太明确,我不太理解其确切含义。
你提供的内容似乎包含代码片段且其中有不规范的部分(如“df['']”这种写法不太明确具体含义),不太能准确按照要求进行改写,请你检查并明确一下准确的内容 。
#计算策略累计收益率
df['']=(df.+1.0).()
qs.(())
03 动量交易策略
动量交易策略属于一种趋势跟踪策略,它觉得市场存在上涨或下跌的趋势,且这种趋势会延续一段时间,所以要借助观察过去一段时间里资产价格的走势,来对未来的价格变动做出预测,进而依据预测结果展开交易。

代码为“中国平安”,对应“hs300”,数量为30,起始为空,结束为空
df=qs.(code,index=,start=start,end=end)
#计算收益率
你提供的内容似乎存在一些错误或不完整,无法准确理解其确切含义并进行改写,请检查并补充完整准确的信息。
#计算动量指标
你提供的内容似乎存在代码格式错误且表述不清晰,无法准确理解其确切含义,所以无法按照要求进行改写。请检查并提供正确清晰的内容 。
#计算交易信号
你提供的内容似乎存在一些错误或不完整,无法准确理解其确切含义并进行改写,请检查或补充完整正确的内容。
你提供的内容似乎存在一些错误或不清晰的地方,正确的代码应该类似这样:df[''] = df[''].shift(1).(0) ,改写后的句子为:将df中名为空字符串的列,进行向上移动一位的操作,然后用0填充缺失值 。 但请确认你准确的需求和正确的代码以便更精准改写 。#将信号序列向前移动一位,防止未来数据干扰
#df[''].(='ffill',=True)
df['']=df.rets.*df['']
#计算策略累计收益率
df['']=(df.+1.0).()
qs.(())
04 价格通道交易策略
价格通道交易策略主要有以下几种:
布林带策略是,利用布林带指标判断股价的波动情况,利用布林带指标判断股价的趋势,然后依据这些判断进行交易。
策略由股票交易员创造,该指标是通道指标,它基于移动平均线和真实波幅指标计算得出。
该指标基于价格波动的最高点与最低点形成通道,通常会选择20日作为计算周期,或者选择30日作为计算周期。
该指标由一条中心线构成,中心线一般是移动平均线,它还由上下两条通道组成,上下通道的宽度由特定的比例参数来决定。
ATR策略,该指标是基于股票波动性的,通常会使用股票的平均真实波幅指标,也就是ATR指标,来确定价格通道的范围。
这些价格通道策略能够用来判断趋势与波动,借此进行交易。具体选用哪种策略,需依据个人投资风格、资金管理以及市场情况来决定。下面着重介绍布林带交易策略。
布林带交易策略 Band
布林带开口向上或者倾斜上升,价格上涨并触及布林带中轨线,此时可以立即入场做多,只要触及中轨线就能入场;前一日价格突破了布林带上轨,价格和均线趋势掉头向下,布林带开口向下或者倾斜下降,这种情况下做空 。
代码为“中国平安”,属于“hs300”,数量为20,系数为1,起始为空,结束为空
df=qs.(code,index=,start=start,end=end)
#计算价格通道指标
df['sma'] = df['close'].(n).mean() 可改写为:df将'sma' 赋值为,df中 'close' 列进行滚动窗口大小为n的计算后的均值 。

df['std']的值,等于df['close']进行(n)操作后再求标准差的结果 。
将df中的空字符串列赋值为,df中sma列的值加上,k乘以df中std列的值 。
将df中的空字符串列赋值为,df中的sma列减去k乘以df中的std列的结果
#根据布林带中轨线进行交易
df['']=0
(1,len(df)):
#上涨趋势,价格回撤并触及中轨线,买入
当ifdf['sma']大于df['sma'][i - 1],并且df['close'][i - 1]大于df['sma'][i - 1],且df['close']大于或等于df['sma']时:
df['']=1
#下跌趋势,价格反弹并触及中轨线,卖出
请你明确一下具体的改写要求哦,比如对这段内容进行润色、扩写、根据特定规则改写等等,目前仅给出了“['sma']df[''][i - 1]”,不太清楚具体要怎么改写呢。
df['']=-1
#将信号序列向前移动一位,防止未来数据干扰
df['']=df[''].shift(1).(0)
#df[''].(='ffill',=True)
df['']=df.rets.*df['']
#计算策略累计收益率
df['']=(df.+1.0).()
qs.(())
交易策略 KC
这是一种价格通道交易策略,它和布林带类似,不过采用的计算方法不一样。它由三条线构成,分别是中轨线、上轨线和下轨线。中轨线属于移动平均线,一般采用20日或50日的简单移动平均线。上轨线以及下轨线是依据股票价格的波动率来计算的,通常会用到股票价格的平均真实范围(ATR) 。交易策略的基本思路是,股票价格穿过上轨线时,意味着市场处于超买状态,此时可以卖出;股票价格穿过下轨线时,意味着市场处于超卖状态,此时可以买入。该交易策略的回测留待读者自己完成。完整版见金融量化知识星球。
结语
趋势跟踪交易策略是一种较为简单、容易理解的交易策略,它的基本思想是,当市场存在趋势时,通过跟随趋势方向来获取收益,在实践当中,趋势跟踪交易策略在股票、期货、外汇等市场被广泛应用。
趋势跟踪策略的优势是,相对于其他交易策略而言,它能够凭借较少的交易获取较高收益率,特别是在市场存在明显趋势之际。与此同时,趋势跟踪交易策略还能提升交易的胜率以及风险控制能力,原因在于当趋势明显时,交易者能够更自信地持有头寸,进而减少不必要的交易操作。
值得注意的是,趋势跟踪交易策略要想发挥较好的效果,市场得具备足够的趋势性。也就是说,趋势跟踪交易策略并不适用于所有市场和所有交易者。这是因为市场并非一直有趋势,并且趋势的变化很难预测。在中国A股市场里,市场波动大,个股投机情绪普遍,所以市场整体趋势性相对较弱 。趋势跟踪交易策略在中国A股市场中的表现,或许比不上在某些其他市场中的表现。趋势跟踪交易策略要有一定的市场观察能力与交易经验。要观察市场走势、价格变化等多方面信息,且能做出较准确的判断,如此才能更好地发挥趋势跟踪交易策略的效果。同时,还得具备良好的风险控制能力,能灵活控制仓位与止损。
关于金融量化
专注于分享在金融量化领域的应用,加入知识星球,能免费获取源代码,能免费获取30多g的量化投资视频资料,能免费获取量化金融相关PDF资料,能免费获取原创文章完整源码,能与博主直接交流,能答疑解惑,添加可获取八五折。 |
|