在量化交易领域,宝塔线指标(TOWER)是一种基于价格变化的动量指标,它通过比较当前价格与过去价格的相对位置来评估市场的动量和趋势。宝塔线指标由日本技术分析师川口一彦提出,旨在帮助交易者识别市场的潜在反转点。今天我们将详细介绍宝塔线指标TOWER的计算方法,生成交易信息,并通过Python代码进行策略回测。
一、宝塔线指标TOWER的计算
宝塔线指标TOWER的计算基于以下步骤:
1.计算宝塔线值:宝塔线值是通过比较当前价格与过去N天的最高价和最低价来计算的。如果当前价格高于过去N天的最高价,则宝塔线值为正;如果当前价格低于过去N天的最低价,则宝塔线值为负;如果当前价格位于两者之间,则宝塔线值为零。
2.计算宝塔线的累积值:宝塔线的累积值是通过将宝塔线值累加得到的。如果宝塔线值为正,则累加;如果宝塔线值为负,则从累积值中减去。
宝塔线指标TOWER的计算公式为:
其中,TOWERi 是第i天的宝塔线值,n 是计算周期。
二、生成交易信息
在使用宝塔线指标TOWER生成交易信号时,我们通常会寻找宝塔线值的转折点。当宝塔线值从负转正时,可能预示着市场趋势的反转,可以视为买入信号;当宝塔线值从正转负时,可能预示着市场趋势的反转,可以视为卖出信号。
三、宝塔线指标TOWER策略量化实战
import pandas as pd
import numpy as np
import pandas_datareader as pdr
from datetime import datetime
# 计算宝塔线指标TOWER
def calculate_tower(data, period=14):
data['High_14'] = data['High'].rolling(window=period).max()
data['Low_14'] = data['Low'].rolling(window=period).min()
data['Tower'] = np.where(data['Close'] > data['High_14'], 1,
np.where(data['Close'] < data['Low_14'], -1, 0))
data['Tower_Acc'] = data['Tower'].cumsum()
return data
# 生成交易信号
data = calculate_tower(data)
data['Signal'] = 0
data['Position'] = 0
# 当宝塔线累积值从负转正时买入
data['Signal'][data['Tower_Acc'].shift(1) < 0] = 1
# 当宝塔线累积值从正转负时卖出
data['Signal'][data['Tower_Acc'].shift(1) > 0] = -1
# 计算持仓
data['Position'] = data['Signal'].diff()
# 回测策略
def backtest_strategy(data):
data['Strategy_Returns'] = data['Position'].shift(1) * data['Close'].pct_change()
data['Cumulative_Returns'] = (1 + data['Strategy_Returns']).cumprod()
return data
四、结论
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/105411
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!