Berdasarkan strategi berikut trend rangka masa berbilang


Tarikh penciptaan: 2024-02-19 11:13:22 Akhirnya diubah suai: 2024-02-19 11:13:22
Salin: 1 Bilangan klik: 548
1
fokus pada
1621
Pengikut

Berdasarkan strategi berikut trend rangka masa berbilang

Gambaran keseluruhan

Strategi ini adalah strategi pengesanan trend yang menggunakan persetujuan pelbagai indikator jangka masa. Ia akan membuka kedudukan lebih atau lebih rendah pada hari-hari, 10 hari, 15 hari dan 30 hari pada masa yang sama, menggunakan hentian hentian dinamik.

Prinsip Strategi

Strategi ini menggunakan empat bingkai masa, garis 10, 15, dan 30 hari untuk menentukan arah trend. Ia dianggap sebagai bullish apabila empat bingkai masa ditutup lebih tinggi daripada harga pembukaan, dan turun apabila empat bingkai masa ditutup lebih rendah daripada harga pembukaan.

Apabila dinilai sebagai bullish, masuk lebih banyak; apabila dinilai sebagai bearish, masuk dengan shorting. Selepas masuk, gunakan saluran KC untuk menghentikan kerugian secara dinamik.

Khususnya, strategi ini menilai arah trend dengan membandingkan harga pembukaan dan harga penutupan pada pelbagai bingkai masa. Jika harga pembukaan lebih rendah daripada harga penutupan, bingkai masa itu adalah bullish, ditunjukkan dengan warna hijau. Jika harga pembukaan lebih tinggi daripada harga penutupan, bingkai masa itu adalah bearish, ditunjukkan dengan warna merah.

Apabila keempat-empat bingkai masa adalah bullish, strategi akan membuka lebih banyak kedudukan; apabila keempat-empat bingkai masa adalah bearish, strategi akan membuka posisi kosong.

Kelebihan Strategik

  1. Menggunakan pelbagai bingkai masa untuk menilai trend, dapat menyaring penembusan palsu dengan berkesan, menentukan arah trend

  2. Cara Hentikan Kerosakan Dinamis Untuk Mengamankan Kewangan

  3. Syarat kemasukan yang ketat dapat mengurangkan transaksi yang tidak perlu dan mengelakkan terlalu banyak kos slippoint

  4. Kerangka masa yang berlainan untuk menyeimbangkan kelajuan dan kestabilan keuntungan

Risiko Strategik

  1. Syarat kemasukan terlalu ketat, mungkin terlepas peluang

  2. Tetapan stop loss yang tidak betul mungkin terlalu radikal atau konservatif

  3. Kerangka masa yang tidak dipilih dengan betul mungkin tidak sesuai dengan trend jangka panjang atau jangka pendek

  4. Kejadian yang tidak dijangka menyebabkan kemerosotan yang tidak dapat dielakkan

Arah pengoptimuman

  1. Pilihan jangka masa yang optimum, keseimbangan antara kelajuan dan kestabilan keuntungan

  2. Uji tetapan parameter yang berbeza untuk mengoptimumkan stop loss

  3. Menambah algoritma pembelajaran mesin untuk membantu menentukan titik perubahan trend

  4. Meningkatkan perhatian terhadap kejadian besar dan mengelakkan kemusnahan yang tidak dijangka

ringkaskan

Strategi ini mengintegrasikan arah trend penghakiman pelbagai bingkai masa, syarat kemasukan yang ketat digabungkan dengan hentian dinamik, bertujuan untuk mendapatkan keuntungan yang stabil. Terdapat kemungkinan kehilangan peluang dan masalah kawalan risiko yang tidak sesuai. Langkah seterusnya akan terus mengoptimumkan tetapan parameter untuk meningkatkan kestabilan strategi.

Kod 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)