Strategi ini menggunakan kemiringan regresi linear untuk mengidentifikasi kondisi pasar yang berbeda ("bullish or bearish"); dengan menghitung kemiringan regresi linear harga penutupan dalam waktu tertentu, arah dan intensitas tren pasar dapat diukur. Ketika kemiringan lebih besar dari batas tertentu, pasar dianggap bullish, dan strategi memasuki posisi multi-head; ketika kemiringan lebih kecil dari batas negatif, pasar dianggap bearish, dan strategi memasuki posisi blank. Ketika harga melintasi SMA sederhana, strategi merata, menunjukkan kemungkinan reversal atau perubahan tren.
Prinsip inti dari strategi ini adalah menggunakan kemiringan regresi linear untuk mengidentifikasi kondisi pasar. Dengan melakukan regresi linear pada harga penutupan dalam jangka waktu tertentu, garis lurus yang paling cocok diperoleh. Kemiringan garis lurus ini mencerminkan arah dan intensitas tren harga secara keseluruhan dalam jangka waktu tersebut. Kemiringan positif menunjukkan harga sedang naik, semakin besar kemiringan, semakin kuat tren naiknya; kemiringan negatif menunjukkan harga sedang menurun, semakin kecil kemiringan, semakin kuat tren turunnya. Dengan mengatur ambang kemiringan, dapat ditentukan apakah kondisi pasar naik atau turun, sehingga keputusan perdagangan dibuat sesuai.
Strategi identifikasi kondisi pasar dinamis berdasarkan lereng regresi linear untuk menilai kondisi pasar dengan menghitung lereng regresi linear harga dan membuat keputusan perdagangan yang sesuai. Strategi ini memiliki logika yang jelas, perhitungan yang sederhana, dan mampu menangkap tren utama pasar secara efektif. Namun, perdagangan yang sering dapat terjadi di pasar yang goyah dan lebih sensitif terhadap pilihan parameter. Stabilitas dan profitabilitas strategi dapat ditingkatkan lebih lanjut dengan metode seperti optimasi parameter, penyaringan tren, penghentian kerugian dan analisis multi-kerangka waktu.
/*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)