
Strategi ini menggunakan kemerosotan kemerosotan linear untuk mengenal pasti keadaan pasaran yang berbeza (pembusukan atau penurunan). Dengan mengira kemerosotan kemerosotan linear untuk harga penutupan dalam jangka masa tertentu, arah dan kekuatan trend pasaran dapat diukur. Apabila kemerosotan lebih besar daripada suatu penurunan, pasaran dianggap bullish, strategi memasuki posisi multihead; apabila kemerosotan kurang dari penurunan negatif, pasaran dianggap bullish, strategi memasuki posisi kosong.
Prinsip teras strategi ini adalah menggunakan kemerosotan regresi linear untuk mengenal pasti keadaan pasaran. Dengan melakukan regresi linear terhadap harga penutupan dalam jangka masa tertentu, garis yang paling sesuai dapat diperoleh. Kemerosotan garis ini mencerminkan arah dan kekuatan trend keseluruhan harga dalam tempoh masa tersebut.
Strategi pengenalan keadaan pasaran dinamik berdasarkan kemerosotan pulangan linear menilai keadaan pasaran dengan mengira kemerosotan pulangan linear harga, dan kemudian membuat keputusan perdagangan yang sesuai. Strategi ini logiknya jelas, pengiraan mudah, dan dapat menangkap tren utama pasaran dengan berkesan. Tetapi perdagangan yang kerap mungkin berlaku di pasaran yang bergolak, dan lebih sensitif terhadap pilihan parameter.
/*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)