
この戦略は,異なる市場状態を識別するために,線形回帰の斜率を使用します. 閉店価格の線形回帰の斜率を計算することで,市場トレンドの方向と強さを測定できます. 斜率が特定の値下げより大きいときは,市場が悲観的と考えられ,戦略は多頭ポジションに入ります. 斜率が負の値下げより小さいときは,市場が看板と考えられ,戦略は空頭ポジションに入ります. 価格が単純な移動平均線 (SMA) を越えたとき,戦略は平仓で,反転またはトレンドの変化の可能性を示します.
この戦略の核心原則は,線形回帰の斜率を使用して市場の状態を識別することです. 閉盤価格に線形回帰を行うことで,最適合の直線が得られます. この直線の斜率は,価格の全体的なトレンドの方向と強さを反映します. ポジティブな斜率は,価格が上昇傾向にあることを示し,斜率が大きいほど,上昇傾向はより強くなります.
線形回帰斜率に基づく動的市場状態認識戦略は,価格の線形回帰斜率を計算して市場の状態を判断し,それに対応した取引決定を行う.この戦略の論理は明確で,計算は簡単で,市場の主要トレンドを効果的に捉えることができる.しかし,波動的な市場で頻繁に取引が起こり,パラメータ選択には敏感である.パラメータ最適化,トレンドフィルタリング,ストップ・ストップ・ストップ,多時間枠分析などの方法によって,この戦略の安定性と収益性をさらに向上させることができる.
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tmalvao
//@version=5
strategy("Minha estratégia", overlay=true, margin_long=100, margin_short=100)
// Função para calcular o slope (inclinação) com base na média móvel simples (SMA)
slope_length = input(20, title="Slope Length")
sma_length = input(50, title="SMA Length")
slope_threshold = input.float(0.1, title="Slope Threshold")
sma = ta.sma(close, sma_length)
// Calculando o slope (inclinação)
var float slope = na
if (not na(close[slope_length - 1]))
slope := (close - close[slope_length]) / slope_length
// Identificação dos regimes de mercado com base no slope
bullish_market = slope > slope_threshold
bearish_market = slope < -slope_threshold
// Condições de entrada e saída para mercados bullish e bearish
if (bullish_market)
strategy.entry("Long", strategy.long)
if (bearish_market)
strategy.entry("Short", strategy.short)
// Saída das posições
exit_condition = ta.crossover(close, sma) or ta.crossunder(close, sma)
if (exit_condition)
strategy.close("Long")
strategy.close("Short")
// Exibir a inclinação em uma janela separada
slope_plot = plot(slope, title="Slope", color=color.blue)
hline(0, "Zero Line", color=color.gray)