
Strategi stop-loss yang dinamis bertujuan untuk mengejar tren naik dengan mendeteksi tren jangka panjang dan pengembalian jangka pendek, untuk mencapai harga murah dan harga tinggi. Strategi ini juga menggunakan unit fluktuasi untuk mendeteksi ukuran keuntungan dan kerugian, sehingga dapat digunakan untuk semua mata uang tanpa perlu khawatir tentang perubahan persentase.
Logika membeli strategi ini adalah: membeli dan membuka posisi ketika ada tren naik jangka panjang (EMA 200 hari naik, RSI 200 hari lebih besar dari 51) dan retrospeksi penurunan jangka pendek (harga penutupan 2 garis K terakhir turun).
Logika selling adalah: stop stop ketika harga naik lebih dari 1 unit fluktuasi; stop loss ketika harga turun lebih dari 2 unit fluktuasi.
Unit fluktuasi dihitung sebagai: 2 kali selisih standar harga penutupan dalam 50 hari sebagai unit dasar fluktuasi. Dengan demikian, Anda dapat mendeteksi fluktuasi mata uang yang berbeda tanpa harus mengatur persentase.
Keuntungan terbesar dari strategi ini adalah bahwa Anda dapat secara dinamis mendeteksi ukuran fluktuasi dari berbagai mata uang, dan mengatur stop loss unit berdasarkan fluktuasi mata uang itu sendiri. Ini menghindari masalah pengaturan stop loss persentase tetap, dan dapat secara otomatis menyesuaikan lebih banyak mata uang.
Keuntungan lain adalah kombinasi antara penilaian jangka pendek dan jangka panjang, yang dapat secara efektif memfilter terobosan palsu. Menggunakan tren jangka panjang untuk menilai kemungkinan kenaikan mata uang di masa depan, dan kemudian menggabungkan sinyal callback jangka pendek, yang dapat secara efektif menghindari sinyal palsu seperti squeeze pita Brin.
Risiko terbesar dari strategi ini terletak pada pengaturan unit stop loss. Jika pergerakan terlalu besar, jarak stop loss mungkin terlalu dekat dan tidak dapat diikuti secara berkelanjutan; jika pergerakan terlalu kecil, kemungkinan stop loss terlalu cepat. Hal ini diperlukan dengan EMA periode yang lebih lama sebagai tambahan, untuk menghindari kesalahan penilaian unit oscillasi.
Risiko lain adalah ketergantungan strategi pada penilaian tren jangka pendek. Jika ada kenaikan jangka panjang tetapi tidak ada koreksi jangka pendek, Anda akan kehilangan waktu masuk. Ini mungkin memerlukan penambahan indikator penilaian tambahan lainnya.
Strategi ini dapat dioptimalkan dari beberapa arah:
Menambahkan penilaian EMA periode yang lebih panjang untuk menghindari kesalahan unit fluktuasi
Meningkatkan indikator seperti volume transaksi untuk menilai tren, mengurangi ketergantungan pada garis k jangka pendek
Optimalkan kondisi pembukaan dan posisi, atur aturan masuk yang lebih ketat
Menggabungkan algoritma pembelajaran mesin untuk menentukan arah tren, mencapai tingkat kemenangan yang lebih tinggi
Strategi tracking tren stop-loss yang dinamis memiliki ide yang jelas, dan inti dari strategi ini adalah pengaturan unit volatilitas yang dinamis. Strategi ini dapat secara otomatis menyesuaikan unit keuntungan dan kerugian yang diatur dalam mata uang yang berbeda, tanpa harus mengatur persentase secara manual.
/*backtest
start: 2022-12-22 00:00:00
end: 2023-12-28 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/
// © BHD_Trade_Bot
strategy(shorttitle='Take Profit On Trend',
title='Take Profit On Trend (by BHD_Trade_Bot)',
overlay=true,
initial_capital = 15,
default_qty_type = strategy.cash,
default_qty_value = 15,
commission_type=strategy.commission.percent,
commission_value=0.1)
//Backtest Time
start_day = 1
start_month = 1
start_year = 2021
end_day = 1
end_month = 1
end_year = 2050
start_time = timestamp(start_year, start_month, start_day, 00, 00)
end_time = timestamp(end_year, end_month, end_day, 23, 59)
is_back_test_time() =>
time >= start_time and time <= end_time ? true : false
// Last bar
h1_last_bar = (timenow - time)/1000/60/60 < 2
// EMA
ema50 = ema(close, 50)
ema200 = ema(close, 200)
// RSI length 200
rsi200 = rsi(close, 200)
// Bollinger Bands length 50
bb50 = 2 * stdev(close, 50)
// BHD Unit
bhd_unit = sma(bb50, 100)
bb50_upper = ema50 + bhd_unit
bb50_lower = ema50 - bhd_unit
// All n candles is going down
all_body_decrease(n) =>
isValid = true
for i = 0 to (n - 1)
if (close[i] > close[i + 1])
isValid := false
break
isValid
// ENTRY
// Long-term uptrend
entry_condition1 = rsi200 > 51
// Short-term downtrend
entry_condition2 = all_body_decrease(2)
ENTRY_CONDITION = entry_condition1 and entry_condition2
if (ENTRY_CONDITION and is_back_test_time())
strategy.entry("entry", strategy.long)
// CLOSE CONDITIONS
// Price increase 1 BHD unit
TAKE_PROFIT = close > strategy.position_avg_price + bhd_unit
// Price decrease 2 BHD unit
STOP_LOSS = close < strategy.position_avg_price - bhd_unit * 2
CLOSE_CONDITION = TAKE_PROFIT or STOP_LOSS
if (CLOSE_CONDITION or h1_last_bar)
strategy.close("entry")
// Draw
plot(ema50)
plot(ema200, color=color.yellow)
plot(bb50_upper)
plot(bb50_lower)