Berdasarkan strategi mengikuti tren beberapa kerangka waktu


Tanggal Pembuatan: 2024-02-19 11:13:22 Akhirnya memodifikasi: 2024-02-19 11:13:22
menyalin: 1 Jumlah klik: 545
1
fokus pada
1617
Pengikut

Berdasarkan strategi mengikuti tren beberapa kerangka waktu

Ringkasan

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.

Prinsip Strategi

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.

Keunggulan Strategis

  1. Menggunakan beberapa kerangka waktu untuk menilai tren, dapat secara efektif menyaring terobosan palsu dan menentukan arah tren

  2. Stop Loss Dinamis Untuk Mengamankan Uang

  3. Syarat masuk yang ketat dapat mengurangi transaksi yang tidak perlu dan menghindari biaya slippoint yang berlebihan

  4. Kombinasi dari beberapa kerangka waktu dapat menyeimbangkan kecepatan dan stabilitas keuntungan.

Risiko Strategis

  1. Kondisi masuk terlalu ketat, mungkin akan melewatkan beberapa kesempatan

  2. Pengaturan stop loss yang salah mungkin terlalu radikal atau konservatif

  3. Kerangka waktu yang dipilih tidak tepat, mungkin tidak sesuai dengan tren jangka panjang atau jangka pendek

  4. Kejadian mendadak menyebabkan perubahan yang cepat dan tidak bisa dihentikan

Arah optimasi

  1. Memilih kerangka waktu yang optimal, menyeimbangkan kecepatan dan stabilitas keuntungan

  2. Uji pengaturan parameter yang berbeda untuk mengoptimalkan stop loss

  3. Menambahkan algoritma pembelajaran mesin untuk membantu menentukan titik balik tren

  4. Meningkatkan perhatian terhadap insiden-insiden besar dan menghindari kerugian akibat insiden-insiden tak terduga

Meringkaskan

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.

Kode Sumber 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)