Ide utama dari strategi ini adalah menggabungkan indikator momentum Lazy Bear
Gunakan indikator momentum Lazy Bear
Gunakan indikator MFI yang ditingkatkan oleh Crypto Face, yang menghitung jumlah perubahan harga dan volume selama 58 hari terakhir untuk menentukan arus uang.
Ketika BlueWave melintasi di atas 0 dan MFI lebih besar dari 0, sinyal beli dihasilkan untuk membuka posisi panjang; ketika BlueWave melintasi di bawah 0 dan MFI kurang dari 0, sinyal jual dihasilkan untuk membuka posisi pendek.
Atur kondisi stop loss dan take profit untuk mengikuti tren pasar untuk keuntungan, sambil mengendalikan risiko.
Menggabungkan dua indikator dapat menentukan arah tren pasar dengan lebih akurat.
kurva halus BlueWave
MFI dapat menentukan arus uang, menghindari kerugian dari kebocoran palsu.
Strategi ini memiliki beberapa parameter dan mudah diterapkan dan dioperasikan.
Pengaturan stop loss dan take profit yang fleksibel membantu mengendalikan risiko perdagangan.
Sesi perdagangan dapat diatur untuk menghindari volatilitas yang tidak normal selama waktu pasar tertentu.
Tren penurunan yang terus berlanjut dapat menyebabkan posisi pendek dan kerugian berturut-turut.
Sinyal palsu dapat menyebabkan terjebak setelah memasuki posisi.
Stop loss yang terlalu besar dapat memperkuat kerugian.
Volatilitas tinggi dapat sering mencapai titik stop loss.
Optimasi parameter yang tidak tepat dapat menyebabkan kinerja strategi yang buruk.
Sinyal perdagangan yang terlalu sering dapat meningkatkan biaya transaksi dan slippage.
Mengoptimalkan parameter BlueWave dan MFI untuk sinyal yang lebih stabil dan andal.
Sertakan indikator tren untuk menghindari kerugian pendek yang berkelanjutan.
Mengatur secara dinamis stop loss / mengambil rasio keuntungan untuk menurunkan kemungkinan terjebak.
Memperbaiki kondisi masuk untuk mengurangi sinyal palsu.
Pertimbangkan ukuran posisi untuk menghindari mengejar rally dan dumping dips.
Gabungkan dengan model pembelajaran mesin untuk titik masuk dan keluar yang lebih akurat.
Strategi ini menggabungkan indikator BlueWave dan MFI untuk menentukan arah tren, pergi panjang pada tren naik dan pendek pada tren turun, secara efektif mengikuti tren pasar untuk keuntungan. Namun, risiko ada dalam pengaturan parameter, stop loss / take profit, downtrends berkelanjutan dll, yang membutuhkan optimasi lebih lanjut pada pengaturan parameter, mekanisme stop loss, kondisi filter dll untuk meningkatkan kinerja dan ketahanan strategi. Secara keseluruhan, strategi ini intuitif dan bekerja dengan baik untuk tren jangka panjang, tetapi kerugian dapat terjadi ketika terjebak dalam pasar yang berkisar.
/*backtest start: 2022-11-07 00:00:00 end: 2023-11-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Bunghole 2021 strategy(title="Crypto Squeeze Strategy", initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, currency = 'USD', overlay=true) //// Stoploss and Take Profit Parameters // Enable Long Strategy enable_long_strategy = input(true, title="Enable Long Strategy", group="SL/TP For Long Strategy",inline="1") long_stoploss_value = input(defval=50, title='Stoploss %', type=input.float, minval=0.1, group="SL/TP For Long Strategy",inline="2") long_stoploss_percentage = (close * (long_stoploss_value / 100)) / syminfo.mintick long_takeprofit_value = input(defval=50, title='Take Profit %', type=input.float, minval=0.1, group="SL/TP For Long Strategy",inline="2") long_takeprofit_percentage = (close * (long_takeprofit_value / 100)) / syminfo.mintick // Enable Short Strategy enable_short_strategy = input(true, title="Enable Short Strategy", group="SL/TP For Short Strategy",inline="3") short_stoploss_value = input(defval=50, title='Stoploss %', type=input.float, minval=0.1, group= "SL/TP For Short Strategy",inline="4") short_stoploss_percentage = (close * (short_stoploss_value / 100)) / syminfo.mintick short_takeprofit_value = input(defval=50, title='Take Profit %', type=input.float, minval=0.1, group="SL/TP For Short Strategy",inline="4") short_takeprofit_percentage = (close * (short_takeprofit_value / 100)) / syminfo.mintick // Plot Stoploss & Take Profit Levels long_stoploss_price = strategy.position_avg_price * (1 - long_stoploss_value/100) long_takeprofit_price = strategy.position_avg_price * (1 + long_takeprofit_value/100) short_stoploss_price = strategy.position_avg_price * (1 + short_stoploss_value/100) short_takeprofit_price = strategy.position_avg_price * (1 - short_takeprofit_value/100) plot(enable_long_strategy and not enable_short_strategy ? long_stoploss_price: na, color=#ff0000, style=plot.style_linebr, linewidth=2, title="Long SL Level") plot(enable_long_strategy and not enable_short_strategy ? long_takeprofit_price: na, color=#008000, style=plot.style_linebr, linewidth=2, title="Long TP Level") plot(enable_short_strategy and not enable_long_strategy ? short_stoploss_price: na, color=#ff0000, style=plot.style_linebr, linewidth=2, title="Short SL Level") plot(enable_short_strategy and not enable_long_strategy ? short_takeprofit_price: na, color=#008000, style=plot.style_linebr, linewidth=2, title="Short TP Level") // Date Range start_date = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31, group="Date Range") start_month = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12, group="Date Range") start_year = input(title="Start Year", type=input.integer, defval=1804, minval=1800, maxval=3000, group="Date Range") end_date = input(title="End Date", type=input.integer, defval=1, minval=1, maxval=3, group="Date Range") end_month = input(title="End Month", type=input.integer, defval=1, minval=1, maxval=12, group="Date Range") end_year = input(title="End Year", type=input.integer, defval=2077, minval=1800, maxval=3000, group="Date Range") in_date_range = (time >= timestamp(syminfo.timezone, start_year, start_month, start_date, 0, 0)) and (time < timestamp(syminfo.timezone, end_year, end_month, end_date, 0, 0)) //// Indicator Inputs // Lazy Bear's Momentum Indicator BlueWave = linreg(close - avg(avg(highest(high, 20), lowest(low, 20)), sma(close, 20)), 20, 0) // Replicated version of Crypto Face's MFI Indicator mfiUpper = sum(volume * (change(hlc3) <= 0 ? 0 : hlc3), 58) mfiLower = sum(volume * (change(hlc3) >= 0 ? 0 : hlc3), 58) _mfiRsi(mfiUpper, mfiLower) => if mfiLower == 0 100 if mfiUpper == 0 0 100.0 - (100.0 / (1.0 + mfiUpper / mfiLower)) mf = _mfiRsi(mfiUpper, mfiLower) mfi = (mf - 50) * 3 //// Strategy // Creating Long and Short Strategy buy_signal = crossover(BlueWave, 0) and mfi > 0 sell_signal = crossunder(BlueWave, 0) and mfi < 0 // Long Strategy if buy_signal and in_date_range and enable_long_strategy == true strategy.entry("Long", true, when=buy_signal, alert_message="Open Long Position") strategy.exit("Long SL/TP", from_entry="Long", loss=long_stoploss_percentage, profit=long_takeprofit_percentage, alert_message="Your Long SL/TP Limit As Been Triggered.") strategy.close("Long", when=sell_signal, alert_message="Close Long Position") // Short Strategy if sell_signal and in_date_range and enable_short_strategy == true strategy.entry("Short", false, when = sell_signal, alert_message="Open Short Position") strategy.exit("Short SL/TP", from_entry="Short", loss=short_stoploss_percentage, profit=short_takeprofit_percentage, alert_message="Your Short SL/TP Limit As Been Triggered.") strategy.close("Short", when=buy_signal, alert_message="Close Short Position")