Strategi Dagangan Tekanan Saluran Tang Xiao Songsang


Tarikh penciptaan: 2024-01-24 15:07:18 Akhirnya diubah suai: 2024-01-24 15:07:18
Salin: 0 Bilangan klik: 595
1
fokus pada
1617
Pengikut

Strategi Dagangan Tekanan Saluran Tang Xiao Songsang

Gambaran keseluruhan

Strategi dagangan tekanan terbalik Tangshou adalah strategi dagangan kuantitatif berdasarkan indikator Tangshou. Strategi ini menggabungkan penghentian kerugian dan penghentian kerugian untuk mencapai pengurusan risiko.

Apabila harga menyentuh sempadan atas dan bawah saluran Tangshou, anda boleh membuka posisi dengan melakukan banyak penyingkiran, dan anda juga boleh menetapkan hentian dan hentian. Jika anda mengalami hentian, anda boleh menangguhkannya dan hanya membuka posisi baru setelah beberapa waktu.

Prinsip Strategi

Strategi ini menggunakan 20 hari penunjuk laluan Tangshou, yang merangkumi laluan atas, bawah dan tengah.

Logik pembukaan

Apabila harga menyentuh rel bawah, lebih banyak kedudukan dibuka; apabila harga menyentuh rel atas, kosong dibuka.

Jika sebelum ini berlaku stop loss, anda perlu menangguhkan kitaran tertentu ((seperti 3 K line), untuk mengelakkan mengejar naga ).

Logik Stop Loss dan Stop Stop

Setiap kali anda membuka kedudukan, anda menetapkan stop loss dan take profit yang disesuaikan secara dinamik.

Take profit dikira berdasarkan peratusan keuntungan risiko (seperti 2) dan peratusan kerugian berhenti (seperti 22%).

Logik Tracking Stop Loss

Pelancaran Tracking Stop pada tahap memegang:

Apabila memegang kedudukan berbilang, jika harga melintasi garisan tengah, sesuaikan stop loss ke titik tengah harga masuk dan harga garisan tengah.

Pada musim panas, pemain yang beraksi dalam permainan ini akan beraksi dalam permainan ini.

Kelebihan Strategik

  1. Menggunakan penunjuk laluan Tangshou, ada keupayaan untuk menangkap tindakan yang menembusi.

  2. Ia adalah satu cara yang boleh digunakan untuk menjimatkan wang dan menjimatkan masa.

  3. Hentikan kerugian, hentikan untuk mengelakkan mengejar naga, dan ikuti hentikan kerugian untuk mengunci keuntungan, dengan pengurusan risiko yang baik.

  4. Peraturan-peraturan yang jelas dan mudah difahami serta mudah untuk dilaksanakan.

Risiko Strategik

  1. Tangshou Channel sebagai penunjuk trend, mudah untuk melakukan penembusan palsu dalam keadaan pemulihan, yang boleh menyebabkan kerugian.

  2. Penangguhan tetap mudah disekat, dan julat penangguhan harus diselaraskan dengan sewajarnya.

  3. Pengesuaian stop loss yang dikesan lebih mudah untuk disalahgunakan, dan frekuensi pengesuaian harus diseimbangkan.

  4. Penetapan parameter yang tidak betul juga boleh menjejaskan prestasi strategi.

Arah pengoptimuman strategi

  1. Panjang saluran Tangshou boleh dioptimumkan untuk mencari kombinasi parameter yang terbaik.

  2. Tambah modul pengurusan kedudukan, seperti menghidupkan semula kitaran penangguhan secara berkala.

  3. Kaedah ini boleh digunakan untuk menilai trend, dan mengelakkan trend false breakout.

  4. Aktifkan Hentian Dinamik, sesuaikan kedudukan Hentian dalam masa nyata.

ringkaskan

Strategi perdagangan tekanan terbalik saluran tangshou mengintegrasikan pelbagai fungsi seperti penilaian trend, pengurusan risiko, dan lain-lain. Dasar-dasarnya lebih lengkap. Dengan terus mengoptimumkan parameter dan kombinasi dengan indikator atau model lain, anda dapat meningkatkan lagi strategi yang kuat dan meningkatkan kadar pulangan.

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