Strategi Perdagangan Tekanan Saluran Tang Xiao Terbalik


Tanggal Pembuatan: 2024-01-24 15:07:18 Akhirnya memodifikasi: 2024-01-24 15:07:18
menyalin: 0 Jumlah klik: 595
1
fokus pada
1617
Pengikut

Strategi Perdagangan Tekanan Saluran Tang Xiao Terbalik

Ringkasan

Strategi perdagangan tangshou terbalik adalah strategi perdagangan kuantitatif yang didasarkan pada indikator tangshou. Strategi ini menggabungkan penghentian kerugian dan penghentian kerugian untuk manajemen risiko.

Ketika harga menyentuh batas atas dan bawah saluran Tangshou, buka posisi dengan melakukan over-locking, dan tetapkan stop loss dan stop stop. Jika terjadi stop loss, tutup posisi baru hanya setelah beberapa waktu.

Prinsip Strategi

Strategi ini menggunakan indikator 20 Tang Shou Channel, yang terdiri dari jalur atas, bawah, dan tengah.

Logika Opening

Posisi terbuka saat harga menyentuh rel bawah; Posisi kosong saat harga menyentuh rel atas.

Jika sebelumnya terjadi stop loss pada transaksi yang sama arah, maka harus dihentikan untuk periode tertentu (seperti 3 garis K), untuk menghindari mengejar naga.

Stop Loss dan Stop Logic

Stop loss dan take profit yang disesuaikan secara dinamis.

Take profit dihitung berdasarkan rasio risiko-keuntungan (misalnya 2) dan stop loss percentage (misalnya 22%).

Logika Tracking Stop Loss

Mengaktifkan Tracking Stop Loss pada tahap Holding:

Jika harga melewati garis tengah, maka stop loss harus disesuaikan dengan titik tengah antara harga masuk dan harga garis tengah.

Pada posisi kosong, pemain harus melakukan penyesuaian saat melewati garis tengah.

Keunggulan Strategis

  1. Menggunakan indikator saluran Tangshou, ada kemampuan untuk menangkap situasi yang menembus.

  2. Ini adalah strategi perdagangan untuk melakukan operasi terbalik.

  3. Stop loss suspensi menghindari mengejar naga, track stop loss untuk mengunci keuntungan, memiliki manajemen risiko yang baik.

  4. Aturan-aturan strategi jelas, mudah dipahami, dan mudah diterapkan.

Risiko Strategis

  1. Sebagai indikator tren, saluran Tangshou rentan terhadap terobosan palsu dalam konsolidasi dan dapat menyebabkan kerugian.

  2. Stop loss tetap mudah tertutup dan harus disesuaikan dengan stop loss.

  3. Tracking stop loss adjustment amplitude sangat mudah terkena, harus seimbang dengan frekuensi penyesuaian.

  4. Peraturan parameter yang tidak tepat juga dapat mempengaruhi kinerja kebijakan.

Arah optimasi strategi

  1. Panjang saluran Tangshou dapat dioptimalkan untuk mencari kombinasi parameter yang optimal.

  2. Menambahkan modul manajemen posisi, seperti periodik reset periode suspensi.

  3. Dengan menggunakan indikator lain untuk menilai tren, hindari terobosan palsu.

  4. Aktifkan stop loss dinamis, dan sesuaikan posisi stop loss secara real time.

Meringkaskan

Strategi perdagangan dengan tekanan reverse tangential channel mengintegrasikan beberapa fungsi seperti penilaian tren, manajemen risiko, dan lain-lain. Dasar-dasarnya lebih lengkap. Dengan terus mengoptimalkan parameter dan kombinasi dengan indikator atau model lain, strategi dapat ditingkatkan lebih lanjut dan meningkatkan tingkat pengembalian. Strategi ini cocok untuk diterapkan oleh investor dengan pengalaman perdagangan tertentu.

Kode Sumber Strategi
/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Contrarian Donchian Channel Strategy - Touch Entry with Post-SL Pause and Trailing Stop", overlay=true, default_qty_value=0.01, default_qty_type=strategy.percent_of_equity)

// Inputs
length = input(20, minval=1, title="Donchian Channel Length")
riskRewardRatio = input(2, title="Risk/Reward Ratio")
stopLossPercent = input(0.22, title="Stop Loss (%)") / 100
pauseCandles = input(3, minval=1, title="Pause After SL (Candles)")

// Donchian Channel Calculation
upper = highest(high, length)
lower = lowest(low, length)
centerline = (upper + lower) / 2  // Calculating the Centerline

// Plotting Donchian Channel and Centerline
plot(upper, color=color.red, title="Upper Band")
plot(lower, color=color.green, title="Lower Band")
plot(centerline, color=color.blue, title="Centerline")

// Tracking Stop Loss Hits and Pause
var longSLHitBar = 0
var shortSLHitBar = 0
var int lastTradeDirection = 0 // 1 for long, -1 for short, 0 for none

// Update SL Hit Bars
if (strategy.position_size[1] > 0 and strategy.position_size == 0)
    if (close[1] < strategy.position_avg_price[1])
        longSLHitBar := bar_index
        lastTradeDirection := 1

if (strategy.position_size[1] < 0 and strategy.position_size == 0)
    if (close[1] > strategy.position_avg_price[1])
        shortSLHitBar := bar_index
        lastTradeDirection := -1

// Entry Conditions - Trigger on touch
longCondition = (low <= lower) and (bar_index - longSLHitBar > pauseCandles or lastTradeDirection != 1)
shortCondition = (high >= upper) and (bar_index - shortSLHitBar > pauseCandles or lastTradeDirection != -1)

// Trade Execution
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)

// Initial Stop Loss and Take Profit Calculation
stopLoss = strategy.position_avg_price * (1 - stopLossPercent)
takeProfit = strategy.position_avg_price * (1 + stopLossPercent * riskRewardRatio)

// Trailing Stop Loss Logic
var float trailingStopLong = na
var float trailingStopShort = na

// Update Trailing Stop for Long Position
if (strategy.position_size > 0)
    if (close > centerline)
        trailingStopLong := (strategy.position_avg_price + centerline) / 2
    stopLoss := na(trailingStopLong) ? stopLoss : max(trailingStopLong, stopLoss)

// Update Trailing Stop for Short Position
if (strategy.position_size < 0)
    if (close < centerline)
        trailingStopShort := (strategy.position_avg_price + centerline) / 2
    stopLoss := na(trailingStopShort) ? stopLoss : min(trailingStopShort, stopLoss)

// Setting Stop Loss and Take Profit for each trade
strategy.exit("SL_TP_Long", "Long", stop=stopLoss, limit=takeProfit)
strategy.exit("SL_TP_Short", "Short", stop=stopLoss, limit=takeProfit)