Strategi Perdagangan Ayunan Hujung Minggu


Tarikh penciptaan: 2023-11-16 10:53:01 Akhirnya diubah suai: 2023-11-16 10:53:01
Salin: 0 Bilangan klik: 601
1
fokus pada
1617
Pengikut

Strategi Perdagangan Ayunan Hujung Minggu

Gambaran keseluruhan

Strategi ini menetapkan syarat kemasukan untuk kedudukan panjang dan kosong berdasarkan harga penutupan Jumaat, melakukan lebih banyak shorting pada hari Sabtu dan Ahad, dan posisi kosong sebelum pembukaan pada hari Isnin. Strategi ini menghasilkan keuntungan dengan menangkap turun naik harga berhampiran harga penutupan Jumaat.

Prinsip

  1. Rekod harga penutupan Jumaat sebagai harga rujukan
  2. Hari Sabtu dan Ahad:
    • Jika harga lebih tinggi daripada 4.5% pada harga penutupan Jumaat, ambil risiko.
    • Jika harga di bawah 4.5% pada harga penutupan Jumaat, buat lebih
  3. Stop-loss ditetapkan sebagai 3% daripada modal awal
  4. Semua kedudukan kosong sebelum pembukaan pada Isnin

Analisis kelebihan

  1. Mengambil kesempatan daripada turun naik harga yang disebabkan oleh jumlah dagangan yang rendah pada hari Sabtu dan Ahad untuk mengurangkan risiko pasaran
  2. Syarat kemasukan dan keluar yang jelas, mengurangkan kesukaran untuk melaksanakan strategi
  3. Operasi garis pendek, mencari keuntungan kecil yang stabil
  4. Siklus pendek, peredaran wang yang cepat

Analisis risiko

  1. Harga mungkin turun lebih rendah daripada yang dijangkakan pada hari Sabtu dan tidak dapat membuka kedudukan.
  2. Terlalu banyak turun naik menyebabkan kerugian
  3. Kejadian besar pada hari Isnin menyebabkan harga naik tinggi dan tidak dapat menghentikan kerosakan pada waktunya

Penyelesaian risiko:

  1. Perubahan dalam syarat kemasukan
  2. Tetapkan titik henti yang munasabah
  3. Menyingkirkan kedudukan awal, tidak memegang jawatan hujung minggu

Arah pengoptimuman

  1. Menyesuaikan kadar penyertaan mengikut ciri-ciri pelbagai jenis
  2. Mengoptimumkan keadaan penangguhan berdasarkan keputusan tinjauan balik
  3. Pilih Leverage Berbeza Berdasarkan Saiz Modal
  4. Penapisan penunjuk garis rata

ringkaskan

Strategi ini sebagai strategi perdagangan garis pendek, dengan logik perdagangan yang sangat jelas dan langkah-langkah kawalan risiko. Dengan parameter yang munasabah dan pengoptimuman ujian berterusan, keuntungan pelaburan yang stabil dapat diperoleh.

Kod sumber strategi
/*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()