Strategi terobosan zona nilai lintas siklus


Tanggal Pembuatan: 2023-12-12 10:58:22 Akhirnya memodifikasi: 2023-12-12 10:58:22
menyalin: 0 Jumlah klik: 559
1
fokus pada
1621
Pengikut

Strategi terobosan zona nilai lintas siklus

Ringkasan

Gagasan inti dari strategi ini adalah kombinasi indikator RSI dari periode yang berbeda untuk menilai area harga saat ini, dan mengambil tindakan pembelian atau penjualan yang sesuai pada periode yang lebih kecil ketika indikator RSI periode yang lebih besar mengalami terobosan. Strategi ini menggabungkan keuntungan dari indikator teknis dari periode yang berbeda untuk menilai nilai relatif harga saat ini melalui beberapa dimensi waktu untuk mencari titik masuk yang lebih baik.

Prinsip Strategi

Strategi ini didasarkan pada beberapa langkah untuk menentukan area harga dan mencari peluang perdagangan:

  1. Hitung titik tertinggi (Swing High) dan titik terendah (Swing Low) dari indikator RSI dalam periode yang lebih besar (misalnya, garis harian)
  2. Menentukan apakah RSI periode yang lebih besar telah mencapai titik tertinggi atau terendah dalam periode review yang diberikan
  3. Jika terjadi breakout, maka pada periode yang lebih kecil (misalnya 5 menit garis) menilai pergerakan harga (misalnya overhead atau overhead), mengambil pembelian atau penjualan operasi sesuai

Sebagai contoh, ketika RSI di garis harian menembus tinggi baru, kita menilai saat ini berada dalam posisi bullish, dan jika RSI di garis harian menembus rendah baru, kita menilai saat ini berada dalam posisi kosong, dalam kedua kasus ini kita mengambil operasi beli dan jual di garis 5 menit.

Analisis Keunggulan

Strategi ini memiliki beberapa keuntungan dibandingkan dengan strategi tradisional yang hanya berfokus pada satu siklus waktu:

  1. Mengukur nilai relatif dari harga saat ini lebih akurat. Indikator siklus besar seperti garis matahari dapat menyaring kebisingan pasar jangka pendek dan menilai tren siklus besar dan area nilai.

  2. Kombinasi dengan indikator siklus waktu yang berbeda, meningkatkan keandalan sinyal. Mengandalkan indikator siklus tunggal mudah terjadi kesalahan sinyal, sedangkan beberapa indikator siklus sinyal simultan lebih dapat diandalkan.

  3. Lebih efektif dalam mengambil kesempatan dalam jangka pendek. Penembusan siklus besar seperti garis matahari memberi kita arah yang lebih besar, dan kita hanya perlu mencari peluang dalam jangka pendek seperti 5 menit untuk mendapatkan keuntungan.

  4. Pengunduran diri lebih kecil. Kombinasi lintas siklus waktu membantu untuk menghindari penargetan. Ketika indikator siklus besar bergeser, kita akan menghentikan kerugian dengan tepat waktu.

Analisis risiko

Risiko utama dari strategi ini adalah:

  1. Indikator siklus besar membuat kesalahan. Indikator seperti RSI pada hari yang sama tidak dapat secara efektif menentukan area nilai, yang dapat menyebabkan kesalahan sinyal. Ini memerlukan pengaturan parameter RSI yang dioptimalkan.

  2. Periode kecil tidak sesuai dengan periode besar. Kadang-kadang, pergerakan harga periode kecil akan melawan tren periode besar, dan pada saat itu Anda perlu mengatur stop loss untuk mengendalikan kerugian.

  3. Manajemen uang yang tidak tepat. Jika manajemen risiko yang tidak tepat, kerugian tunggal terlalu besar, dapat menyebabkan sulit untuk pulih.

Arah optimasi

Ada banyak ruang untuk optimasi dalam strategi ini, terutama dari beberapa aspek:

  1. Optimalisasi parameter siklus. Anda dapat menguji lebih banyak kombinasi siklus untuk mencari parameter optimal.

  2. Optimasi parameter RSI. Anda dapat menyesuaikan parameter RSI untuk melihat apakah dapat meningkatkan akurasi penilaian.

  3. Tambahkan indikator lain. Anda dapat menambahkan lebih banyak indikator untuk kombinasi, seperti menambahkan garis rata-rata untuk menentukan arah tren.

  4. Optimalkan mekanisme stop loss. Stop loss dapat disesuaikan secara dinamis sesuai dengan situasi penarikan.

  5. Mengoptimalkan manajemen posisi. Anda dapat mengelola posisi tertentu untuk setiap transaksi dengan lebih ilmiah dan masuk akal.

Meringkaskan

Strategi ini melakukan nilai arbitrage antara dimensi waktu yang berbeda dengan mengevaluasi posisi bullish indikator RSI lintas-siklus. Pemikiran untuk penilaian lintas-siklus ini layak untuk digali lebih lanjut, dan kita dapat terus menyempurnakan strategi ini dengan cara optimasi parameter, optimasi stop loss, dan optimasi kombinasi. Secara keseluruhan, strategi ini memiliki pemikiran yang unik dan ruang optimasi yang besar.

Kode Sumber Strategi
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

strategy("Swing MTF", shorttitle="Swing MTF", overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000, slippage = 5)
//
otf_period = input(defval=2, title="Look Back Period (2nd Timeframe)")
otf = input(defval="180", title="Second Momentum Timeframe")

// Function to dectect a new bar
is_newbar(res) =>
    t = time(res)
    change(t) != 0 ? true : false

// Check how many bars are in our upper timeframe
since_new_bar = barssince(is_newbar(otf))
otf_total_bars = na
otf_total_bars := since_new_bar == 0 ? since_new_bar[1] : otf_total_bars[1]

//Calculate RSI Values
ctf_rsi = rsi(open, otf_period)

breakline=input(title="Breaks in lines", defval = true, type=bool)

so = request.security(syminfo.tickerid, otf, rsi(open, otf_period))
sc = request.security(syminfo.tickerid, otf, rsi(close, otf_period))


final_otf_so = na
final_otf_so := barstate.isrealtime ? since_new_bar == otf_total_bars ? so : final_otf_so[1] : so

final_otf_sc = na
final_otf_sc := barstate.isrealtime ? since_new_bar == otf_total_bars ? sc : final_otf_sc[1] : sc

barsback = input(11, title='Bars back to check for a swing')
// showsig = input(false, title='Show Signal Markers')
 
swing_detection(index)=>
    swing_high = false
    swing_low = false
    start = (index*2) - 1 // -1 so we have an even number of
    swing_point_high = final_otf_so[index]
    swing_point_low = final_otf_sc[index]
    
    //Swing Highs
    for i = 0 to start
        swing_high := true
        if i < index 
            if final_otf_so[i] > swing_point_high 
                swing_high := false
                break
        // Have to do checks before pivot and after seperately because we can get
        // two highs of the same value in a row. Notice the > and >= difference
        if i > index
            if final_otf_so[i] >= swing_point_high 
                swing_high := false
                break
        
    //Swing lows
    for i = 0 to start
        swing_low := true
        if i < index
            if final_otf_sc[i] < swing_point_low 
                swing_low := false
                break  
        // Have to do checks before pivot and after seperately because we can get
        // two lows of the same value in a row. Notice the > and >= difference
        if i > index
            if final_otf_sc[i] <= swing_point_low 
                swing_low := false
                break 
        
    [swing_high, swing_low]
 
// Check for a swing
[swing_high, swing_low] = swing_detection(barsback)
 

long =  final_otf_so > final_otf_sc
short = final_otf_so < final_otf_sc

if swing_low and long
    strategy.entry("My Long Entry Id", strategy.long)


if swing_high and short
    strategy.entry("My Short Entry Id", strategy.short)