
Strategi ini adalah strategi pelacakan tren yang menggunakan beberapa indikator kerangka waktu yang disetujui. Ini akan melakukan over atau shorting pada garis hari, 10th, 15th, dan 30th dengan posisi bullish atau bearish pada saat yang sama, menggunakan stop loss yang dinamis.
Strategi ini menggunakan empat frame waktu, yaitu garis harian, garis 10, garis 15, dan garis 30 untuk menentukan arah tren. Ini adalah bullish ketika empat frame waktu ditutup lebih tinggi dari harga buka dan bearish ketika empat frame waktu ditutup lebih rendah dari harga buka.
Ketika dinilai sebagai bullish, melakukan over entry; ketika dinilai sebagai bearish, melakukan short entry. Setelah masuk menggunakan saluran KC untuk stop loss dinamis.
Secara khusus, strategi ini menilai arah tren dengan membandingkan harga buka dan harga tutup di berbagai kerangka waktu. Jika harga buka lebih rendah dari harga tutup, kerangka waktu itu adalah bullish, ditampilkan dalam warna hijau. Jika harga buka lebih tinggi dari harga tutup, kerangka waktu itu adalah bearish, ditampilkan dalam warna merah.
Strategi akan mengambil posisi lebih banyak ketika keempat frame waktu berada di bawah; Strategi akan mengambil posisi kosong ketika keempat frame waktu berada di bawah. Kondisi posisi kosong adalah stop loss atau pembalikan tren.
Menggunakan beberapa kerangka waktu untuk menilai tren, dapat secara efektif menyaring terobosan palsu dan menentukan arah tren
Stop Loss Dinamis Untuk Mengamankan Uang
Syarat masuk yang ketat dapat mengurangi transaksi yang tidak perlu dan menghindari biaya slippoint yang berlebihan
Kombinasi dari beberapa kerangka waktu dapat menyeimbangkan kecepatan dan stabilitas keuntungan.
Kondisi masuk terlalu ketat, mungkin akan melewatkan beberapa kesempatan
Pengaturan stop loss yang salah mungkin terlalu radikal atau konservatif
Kerangka waktu yang dipilih tidak tepat, mungkin tidak sesuai dengan tren jangka panjang atau jangka pendek
Kejadian mendadak menyebabkan perubahan yang cepat dan tidak bisa dihentikan
Memilih kerangka waktu yang optimal, menyeimbangkan kecepatan dan stabilitas keuntungan
Uji pengaturan parameter yang berbeda untuk mengoptimalkan stop loss
Menambahkan algoritma pembelajaran mesin untuk membantu menentukan titik balik tren
Meningkatkan perhatian terhadap insiden-insiden besar dan menghindari kerugian akibat insiden-insiden tak terduga
Strategi ini mengintegrasikan multi-frame waktu untuk menilai arah tren, kondisi masuk yang ketat digabungkan dengan stop loss dinamis, bertujuan untuk mendapatkan keuntungan yang stabil. Ada kemungkinan kehilangan peluang dan masalah kontrol risiko yang tidak tepat. Langkah selanjutnya akan terus mengoptimalkan pengaturan parameter untuk meningkatkan stabilitas strategi.
/*backtest
start: 2024-01-19 00:00:00
end: 2024-02-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("[RichG] Easy MTF Strategy v1.1", overlay=false)
TF_1_time = input("D", "Timeframe 1")
TF_2_time = input("10D", "Timeframe 2")
TF_3_time = input("15D", "Timeframe 3")
TF_4_time = input("30D", "Timeframe 4")
lengthKC=input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")
lengthBB=input(20, title="BB Length")
transaction_size = input(1, "Contract/Share Amount")
src = close, len = 20
out = sma(src, len)
width = 5
upcolor = green
downcolor = red
neutralcolor = blue
linestyle = line
kc() =>
ma = sma(close, lengthKC)
range = tr
rangema = sma(range, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC
[lowerKC, upperKC]
bb() =>
source = close
basis = sma(source, lengthBB)
dev = multKC * stdev(source, lengthBB)
upperBB = basis + dev
lowerBB = basis - dev
[upperBB, lowerBB]
TF_1 = request.security(syminfo.tickerid, TF_1_time, open) < request.security(syminfo.tickerid, TF_1_time, close) ? true:false
TF_1_color = TF_1 ? upcolor:downcolor
TF_2 = request.security(syminfo.tickerid, TF_2_time, open) < request.security(syminfo.tickerid, TF_2_time, close) ? true:false
TF_2_color = TF_2 ? upcolor:downcolor
TF_3 = request.security(syminfo.tickerid, TF_3_time, open) < request.security(syminfo.tickerid, TF_3_time, close) ? true:false
TF_3_color = TF_3 ? upcolor:downcolor
TF_4 = request.security(syminfo.tickerid, TF_4_time, open) < request.security(syminfo.tickerid, TF_4_time, close) ? true:false
TF_4_color = TF_4 ? upcolor:downcolor
TF_global = TF_1 and TF_2 and TF_3 and TF_4
TF_global_bear = TF_1 == false and TF_2 == false and TF_3 == false and TF_4 == false
TF_global_color = TF_global ? green : TF_global_bear ? red : white
TF_trigger_width = TF_global ? 6 : width
plot(1, style=linestyle, linewidth=width, color=TF_1_color)
plot(5, style=linestyle, linewidth=width, color=TF_2_color)
plot(10, style=linestyle, linewidth=width, color=TF_3_color)
plot(15, style=linestyle, linewidth=width, color=TF_4_color)
plot(25, style=linestyle, linewidth=4, color=TF_global_color)
exitCondition_Long = TF_global_bear
exitCondition_Short = TF_global
longCondition = TF_global
if (longCondition)
strategy.entry("MTF_Long", strategy.long, qty=transaction_size)
shortCondition = TF_global_bear
if (shortCondition)
strategy.entry("MTF_Short", strategy.short, qty=transaction_size)
[kc_lower,kc_upper] = kc()
strategy.close("MTF_Long", when=close < kc_upper)
strategy.close("MTF_Short", when=close > kc_lower)