Strategi Perdagangan Volatiliti hujung minggu

Penulis:ChaoZhang, Tarikh: 2023-11-16 10:53:01
Tag:

img

Ringkasan

Strategi ini menetapkan syarat masuk panjang dan pendek berdasarkan harga penutupan Jumaat, dan pergi panjang atau pendek selepas pembukaan Sabtu dan Ahad, keluar semua kedudukan sebelum pembukaan Isnin.

Prinsip-prinsip

  1. Mencatatkan harga penutupan Jumaat sebagai harga rujukan
  2. Pada hari Sabtu dan Ahad:
    • Jika harga melebihi 105% daripada penutupan Jumaat, pergi pendek
    • Jika harga adalah di bawah 95% daripada penutupan Jumaat, pergi panjang
  3. Mengambil keuntungan ditetapkan pada 3% daripada modal awal
  4. Tutup semua kedudukan sebelum pembukaan Isnin

Analisis Kelebihan

  1. Perdagangan pada hujung minggu's jumlah rendah dan turun naik untuk mengurangkan risiko pasaran
  2. Peraturan kemasukan dan keluar yang jelas mempermudah pelaksanaan strategi
  3. Menguasai keuntungan kecil yang stabil dengan perdagangan jangka pendek
  4. Peredaran modal yang tinggi dengan kitaran pendek

Analisis Risiko

  1. Fluktuasi harga hujung minggu mungkin lebih kecil daripada yang dijangkakan, tidak dapat membuka kedudukan
  2. Volatiliti yang berlebihan boleh menyebabkan stop loss
  3. Peristiwa penting pada hari Isnin boleh menyebabkan jurang harga, tidak dapat menghentikan kerugian pada waktunya

Penyelesaian Risiko:

  1. Sesuaikan julat fluktuasi untuk entri
  2. Tetapkan titik stop loss yang betul
  3. Tutup kedudukan awal, elakkan memegang hujung minggu

Garis Panduan Pengoptimuman

  1. Penyesuaian ambang kemasukan berdasarkan ciri produk yang berbeza
  2. Mengoptimumkan peraturan mengambil keuntungan berdasarkan hasil backtest
  3. Pilih leverage berdasarkan saiz modal
  4. Tambah penapis penunjuk seperti purata bergerak ke entri masa

Ringkasan

Strategi perdagangan jangka pendek ini mempunyai logik dan langkah kawalan risiko yang sangat jelas. Dengan penyesuaian parameter yang betul dan ujian dan pengoptimuman berterusan, ia dapat menghasilkan pulangan pelaburan yang stabil. Pada masa yang sama, risiko kerugian hujung minggu yang besar disebabkan oleh turun naik yang berlebihan perlu dikendalikan melalui kawalan risiko yang betul.


/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Copyright Boris Kozak 
strategy("XBT Weekend Trade Strategy", overlay=true, default_qty_type=strategy.percent_of_equity,initial_capital=20000)
leverage = input(1,"Leverage")
profitTakingPercentThreshold = input(0.03,"Profit Taking Percent Threshold")

//****Code used for setting up backtesting.****///
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(12, "Backtest Start Month")
testStartDay = input(10, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2025, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FFFF : na
bgcolor(testPeriodBackgroundColor, transp=50)

testPeriod() => true
    
//****END Code used for setting up backtesting.****///


//*** Main entry point is here***//
// Figure out how many days since the Friday close 
days_since_friday = if dayofweek == 6
    0
else 
    if dayofweek == 7
        1
    else
        if dayofweek == 1
            2
        else
            if dayofweek == 2
                3
            else
                if dayofweek == 3
                    4
                else
                    if dayofweek == 4
                        5
                    else
                        6
    
// Grab the Friday close price
fridaycloseprice = request.security(syminfo.tickerid,'D',close[days_since_friday])
plot(fridaycloseprice)
strategy.initial_capital = 50000
// Only perform backtesting during the window specified 
if testPeriod()
    // If we've reached out profit threshold, exit all positions 
    if ((strategy.openprofit/strategy.initial_capital) > profitTakingPercentThreshold)
        strategy.close_all()
    // Only execute this trade on saturday and sunday (UTC)
    if (dayofweek == 7.0 or dayofweek == 1.0)
        // Begin - Empty position (no active trades)
        if (strategy.position_size == 0)
            // If current close price > threshold, go short 
            if ((close>fridaycloseprice*1.045))
                strategy.entry("Short Entry", strategy.short, leverage)
            else
                // If current close price < threshold, go long
                if (close<(fridaycloseprice*0.955))
                    strategy.entry("Long Entry",strategy.long, leverage)
        // Begin - we already have a position
        if (abs(strategy.position_size) > 0)
            // We are short 
            if (strategy.position_size < 0)
                if ((close>strategy.position_avg_price*1.045))
                    // Add to the position
                    strategy.entry("Adding to Short Entry", strategy.short, leverage)
            else
                strategy.entry("Long Entry",strategy.long,leverage)
    // On Monday, if we have any open positions, close them 
    if (dayofweek==2.0)
        strategy.close_all()
 






Lebih lanjut