Squeeze Momentum Strategi Dagangan Berdasarkan Indikator LazyBear

Penulis:ChaoZhang, Tarikh: 2024-02-05 14:48:01
Tag:

img

Ringkasan

Strategi ini berdasarkan Squeeze Momentum Indicator LazyBear, dengan penapis momentum yang ditambahkan, sumber data yang diubah, dan sistem pengurusan risiko yang dipertingkatkan dan jangka masa pengujian belakang yang boleh disesuaikan, bertujuan untuk menangkap wabak harga selepas tekanan turun naik.

Logika Strategi

Strategi ini menggunakan Bollinger Bands dan Saluran Keltner untuk mengira saluran harga. Penembusan menandakan peningkatan turun naik. Ia menggabungkan Squeeze Momentum Indicator LazyBear yang menggunakan regresi linear untuk menentukan arah momentum harga.

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.

Analisis Kelebihan

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.

Analisis Risiko

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.

Arahan pengoptimuman

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.

Ringkasan

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)



Lebih lanjut