Strategi ujian balik saluran SSL berdasarkan ATR dan pengurusan wang


Tarikh penciptaan: 2023-11-23 10:26:58 Akhirnya diubah suai: 2023-11-23 10:26:58
Salin: 1 Bilangan klik: 731
1
fokus pada
1617
Pengikut

Strategi ujian balik saluran SSL berdasarkan ATR dan pengurusan wang

Gambaran keseluruhan

Strategi ini adalah strategi pengesanan berdasarkan indikator SSL Channel, dan menggabungkan fungsi seperti ATR Stop Loss, ATR Stop Stop, dan pengurusan wang untuk menguji lebih lengkap keberkesanan strategi SSL Channel.

Prinsip Strategi

Penunjuk laluan SSL

Penunjuk laluan SSL terdiri daripada garis tengah laluan dan jalur laluan. Garis tengah laluan adalah purata bergerak mudah, yang dibahagikan kepada lintasan atas dan bawah, biasanya mengambil purata bergerak mudah semasa titik tinggi sebagai lintasan atas, dan rata-rata bergerak mudah semasa titik rendah sebagai lintasan bawah.

Apabila harga mendekati saluran atas dianggap sebagai overbuy, apabila harga mendekati saluran bawah dianggap sebagai oversold. Apabila harga menembusi jalur saluran, menandakan perubahan trend.

Parameter penunjuk laluan SSL dalam polisi ini adalah:ssl_period=16

ATR berhenti

ATR merujuk kepada purata gelombang sebenar. Ia boleh digunakan untuk menilai turun naik pasaran dan menentukan kedudukan stop loss.

Kaedah ini menggunakan argumenatr_period=14Indeks ATR, dan digabungkanatr_stop_factor=1.5danatr_target_factor=1.0Sebagai kelipatan dinamik untuk berhenti dan hentian, hentian berhenti yang berdasarkan kepada turun naik pasaran.

Selain itu, untuk menyesuaikan diri dengan varieti yang berbeza, strategi ini telah ditambah.two_digitParameter menilai kontrak dengan ketepatan 2 bit (seperti emas, yen), sehingga dapat menyesuaikan kedudukan stop loss dengan fleksibel.

Pengurusan wang

Pengurusan dana terutamanya melalui parameterposition_size(posisi tetap) danrisk(peratusan risiko lubang) dilaksanakan.use_mm=trueModul pengurusan wang akan diaktifkan.

Objektif utama pengurusan wang adalah untuk mengawal saiz kedudukan setiap kali membuka kedudukan. Apabila menggunakan model risiko peratusan tetap, risiko akan dikira berdasarkan akaun hak dan faedah dan ditukarkan kepada jumlah kontrak, sehingga dapat menahan kerugian tunggal.

Analisis kelebihan

  • Menggunakan saluran SSL untuk menentukan arah trend, mempunyai kesan tertentu untuk menangkap peralihan trend
  • Menggunakan ATR dinamik untuk mengira kedudukan henti rugi, yang dapat menyesuaikan diri dengan turun naik pasaran
  • Menggunakan prinsip pengurusan wang untuk mengawal risiko dalam jangka masa panjang

Analisis risiko

  • Walaupun saluran SSL dapat menentukan perubahan trend, ia tidak boleh dipercayai 100 peratus dan mungkin memberi isyarat yang salah
  • ATR menetapkan stop loss mengikut turun naik pasaran, mungkin terlalu longgar atau terlalu keras
  • Pengaturan parameter pengurusan wang yang tidak betul juga boleh menyebabkan kedudukan yang terlalu besar atau tidak cekap

Risiko ini boleh dikurangkan dengan:

  1. Pengesahan gabungan dengan penunjuk lain untuk mengelakkan isyarat yang salah
  2. Selaraskan parameter kitaran ATR dengan betul untuk mencapai keseimbangan optimum pada tahap stop loss
  3. Ujian parameter pengurusan wang yang berbeza untuk mencari kedudukan terbaik

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Mengoptimumkan parameter laluan SSL untuk mencari kombinasi parameter terbaik
  2. Mengoptimumkan atau menggantikan ATR Stop Damage Brake untuk menjadikannya lebih baik
  3. Menambah penapis lain untuk mengelakkan transaksi yang tidak perlu
  4. Tambah modul kawalan kedudukan untuk memaksimumkan keuntungan dan kerugian
  5. Menyesuaikan parameter untuk varieti yang berbeza untuk meningkatkan penyesuaian strategi
  6. Menambahkan alat kuantitatif untuk pengukuran dan pengoptimuman yang lebih menyeluruh

Dengan ujian dan pengoptimuman sistem, strategi ini boleh menjadi sistem perdagangan kuantitatif yang dipercayai dan stabil.

ringkaskan

Strategi ini mengintegrasikan tiga mekanisme untuk menilai trend indikator SSL, ATR untuk menetapkan stop loss dan pengendalian risiko pengurusan wang. Kesan strategi ini boleh diuji melalui umpan balik yang komprehensif, dan boleh digunakan sebagai kerangka asas untuk mengoptimumkan strategi perdagangan kuantitatif. Pada masa yang sama, strategi ini juga boleh diperbaiki, seperti menambahkan indikator penapis lain, parameter pengoptimuman, dan fungsi lanjutan.

Kod sumber strategi
/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © comiclysm

//@version=4
strategy("SSL Backtester", overlay=false)

//--This strategy will simply test the effectiveness of the SSL using
//--money management and an ATR-derived stop loss

//--USER INPUTS

two_digit = input(false, "Check this for 2-digit pairs (JPY, Gold, Etc)")
ssl_period = input(16, "SSL Period")
atr_period = input(14, "ATR Period")
atr_stop_factor = input(1.5, "ATR Stop Loss Factor")
atr_target_factor = input(1.0, "ATR Target Factor")
use_mm = input(true, "Check this to use Money Management")
position_size = input(1000, "Position size (for Fixed Risk)")
risk = input(0.01, "Risk % in Decimal Form")

//--INDICATORS------------------------------------------------------------

    //--SSL
    
sma_high = sma(high, ssl_period)
sma_low = sma(low, ssl_period)
ssl_value = 0
ssl_value := close > sma_high ? 1 : close < sma_low ? -1 : ssl_value[1]
ssl_low = ssl_value < 0 ? sma_high : sma_low
ssl_high = ssl_value < 0 ? sma_low : sma_high

    //--Average True Range
    
atr = atr(atr_period)

//--TRADE LOGIC----------------------------------------------------------

signal_long = ssl_value > 0 and ssl_value[1] < 0
signal_short = ssl_value < 0 and ssl_value[1] > 0

//--RISK MANAGMENT-------------------------------------------------------
strategy.initial_capital = 50000
balance = strategy.netprofit + strategy.initial_capital
risk_pips = atr*10000*atr_stop_factor
if(two_digit)
    risk_pips := risk_pips / 100
risk_in_value = balance * risk
point_value = syminfo.pointvalue
risk_lots = risk_in_value / point_value / risk_pips
final_risk = use_mm ? risk_lots * 10000 : position_size

//--TRADE EXECUTION-----------------------------------------------------

if (signal_long)
    stop_loss = close - atr * atr_stop_factor
    target = close + atr * atr_target_factor
    strategy.entry("Long", strategy.long, final_risk)
    strategy.exit("X", "Long", stop=stop_loss, limit=target)
if (signal_short)
    stop_loss = close + atr * atr_stop_factor
    target = close - atr * atr_target_factor
    strategy.entry("Short", strategy.short, final_risk)
    strategy.exit("X", "Short", stop=stop_loss, limit=target)
    
//--PLOTTING-----------------------------------------------------------

plot(ssl_low, "SSL", color.red, linewidth=1)
plot(ssl_high, "SSL", color.lime, linewidth=1)