Strategi ini berdasarkan Squeeze Momentum Indicator LazyBear
Strategi ini menggunakan Bollinger Bands dan Saluran Keltner untuk mengira saluran harga. Penembusan menandakan peningkatan turun naik. Ia menggabungkan Squeeze Momentum Indicator LazyBear
Strategi ini menambah penapis momentum, hanya berdagang apabila momentum mutlak melebihi ambang. Pada memerah turun naik (penegasan saluran) dengan penapis momentum berlalu, ia menilai arah trend untuk panjang / pendek. Ia juga menetapkan stop loss, mengambil keuntungan dan berhenti untuk mengawal risiko.
Strategi ini mengintegrasikan beberapa penunjuk untuk penilaian komprehensif. Ia mengehadkan kerugian setiap perdagangan dengan mekanisme pengurusan risiko. Ia boleh menilai trend harga pasca memerah tepat pada masanya. Parameter yang boleh disesuaikan menjadikannya mudah disesuaikan.
Risiko utama termasuk: pecah palsu yang menyebabkan penilaian yang salah; kegagalan untuk membalikkan pada masa dengan tetapan parameter yang tidak betul; pelanggaran kerugian berhenti yang meningkatkan kerugian. Ini boleh dikurangkan dengan mengoptimumkan parameter, menyesuaikan tetapan pengurusan risiko, memilih produk yang sesuai dan sesi perdagangan.
Pertimbangkan untuk menggabungkan penapis penunjuk lain seperti jumlah; sempadan momentum yang halus untuk ketepatan yang lebih tinggi; tambah stop loss penarikan untuk kawalan risiko yang lebih ketat; keberkesanan ujian di lebih banyak produk. pengoptimuman ini boleh menjadikan strategi lebih kukuh dan umum.
Strategi ini menilai trend harga dan turun naik secara komprehensif dengan tahap integrasi yang tinggi dan langkah-langkah kawalan risiko yang lebih baik.
/*backtest start: 2024-01-05 00:00:00 end: 2024-02-04 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 // Strategy based on LazyBear Squeeze Momentum Indicator // © Bitduke // All scripts: https://www.tradingview.com/u/Bitduke/#published-scripts strategy(shorttitle="SMS", title="Squeeze Momentum Strategy", overlay=false ) length = input(12, title="BB Length") mult = input(2.0, title="BB MultFactor") lengthKC = input(16, title="KC Length") mult_kc = input(1.5, title="KC MultFactor") //FILTERS useMomAverage = input(false, title="Filter for Momenutum value", type=input.bool) MomentumMin = input(20, title="Min for momentum") // Calculate BB src = ohlc4 ma_1 = sma(src, length) ma_2 = sma(src, lengthKC) range_ma = sma(high - low, lengthKC) dev = mult * stdev(src, length) upper_bb = ma_1 + dev lower_bb = ma_1 - dev upper_kc = ma_2 + range_ma * mult_kc lower_kc = ma_2 - range_ma * mult_kc sqz_on = lower_bb > lower_kc and upper_bb < upper_kc sqz_off = lower_bb < lower_kc and upper_bb > upper_kc no_sqz = sqz_on == false and sqz_off == false val = linreg(src - avg(avg(highest(hl2, lengthKC), lowest(low, lengthKC)), sma(hl2, lengthKC)), lengthKC, 0) bcolor = iff(val > 0, iff(val > nz(val[1]), color.lime, color.green), iff(val < nz(val[1]), color.red, color.maroon)) scolor = no_sqz ? color.blue : sqz_on ? color.black : color.aqua plot(val, color=bcolor, style=plot.style_histogram, linewidth=4) plot(0, color=scolor, style=plot.style_cross, linewidth=2) //LOGIC //momentum filter filterMom = useMomAverage ? abs(val) > MomentumMin / 100000 ? true : false : true //standard condition longCondition = scolor[1] != color.aqua and scolor == color.aqua and bcolor == color.lime and filterMom exitLongCondition = bcolor == color.green shortCondition = scolor[1] != color.aqua and scolor == color.aqua and bcolor == color.red and filterMom exitShortCondition = bcolor == color.maroon // Risk Management Sysyem stop_loss = input(defval = 600, title="Stop Loss", minval = 0) take_profit = input(defval = 1000, title="Take Profit", minval = 0) trailing_stop = input(defval = 20, title="Trailing Stop", minval = 0) // If the zero value is set for stop loss, take profit or trailing stop, then the function is disabled s_loss = stop_loss >= 1 ? stop_loss : na tk_profit = take_profit >= 1 ? take_profit : na tr_stop = trailing_stop >= 1 ? trailing_stop : na //STRATEGY strategy.entry("SQ_Long", strategy.long, when=longCondition) strategy.exit("Exit Long", from_entry = "SQ_Long", profit = take_profit, trail_points = trailing_stop, loss = s_loss) strategy.close("SQ_Long", exitLongCondition) strategy.entry("SQ_Short", strategy.short, when=shortCondition) strategy.exit("Exit Short", from_entry = "SQ_Short", profit = take_profit, trail_points = trailing_stop, loss = s_loss ) strategy.close("SQ_Short", when=exitShortCondition)