Strategi Perdagangan Swing Akhir Pekan


Tanggal Pembuatan: 2023-11-16 10:53:01 Akhirnya memodifikasi: 2023-11-16 10:53:01
menyalin: 0 Jumlah klik: 601
1
fokus pada
1617
Pengikut

Strategi Perdagangan Swing Akhir Pekan

Ringkasan

Strategi ini menetapkan kondisi masuk untuk posisi panjang dan posisi kosong berdasarkan harga penutupan pada hari Jumat, melakukan lebih banyak shorting pada hari Sabtu dan hari Minggu, dan posisi kosong sebelum buka pada hari Senin. Strategi ini menghasilkan keuntungan dengan menangkap fluktuasi harga di dekat harga penutupan pada hari Jumat.

Prinsip

  1. Catatan harga penutupan hari Jumat sebagai harga acuan
  2. Pada hari Sabtu dan Minggu, jam buka:
    • Jika harga lebih tinggi dari 4,5% dari harga penutupan Jumat, maka melakukan shorting.
    • Jika harga di bawah 4,5% dari harga penutupan hari Jumat, lakukan lebih banyak.
  3. Stop loss ditetapkan sebagai 3% dari modal awal
  4. Semua posisi ditutup sebelum dibuka pada hari Senin.

Analisis Keunggulan

  1. Mengambil keuntungan dari pergerakan harga yang disebabkan oleh volume perdagangan yang rendah pada hari Sabtu dan Minggu untuk mengurangi risiko pasar
  2. Syarat masuk dan keluar yang jelas, mengurangi kesulitan dalam menerapkan strategi
  3. Operasi garis pendek, mengejar keuntungan kecil yang stabil
  4. Siklus pendek, uang beredar dengan cepat

Analisis risiko

  1. Pada hari Sabtu dan Minggu, harga saham bisa turun lebih sedikit dari perkiraan, sehingga tidak mungkin untuk membuka posisi.
  2. Terlalu banyak fluktuasi menyebabkan kerugian.
  3. Pada hari Senin, peristiwa besar menyebabkan harga naik dan tidak dapat menghentikan kerugian tepat waktu.

Solusi Risiko:

  1. Adaptasi dari kondisi masuk
  2. Tetapkan Stop Loss yang Rasional
  3. Peningkatan harga saham di Indonesia.

Arah optimasi

  1. Adaptasi tingkat masuk sesuai dengan karakteristik varietas yang berbeda
  2. Mengoptimalkan kondisi pendinginan berdasarkan hasil pengujian kembali
  3. Pilih Leverage Berbeda Berdasarkan Ukuran Dana
  4. Filter waktu masuk yang digabungkan dengan indikator garis rata

Meringkaskan

Strategi ini merupakan strategi perdagangan garis pendek, dengan logika perdagangan yang sangat jelas dan langkah-langkah pengendalian risiko. Dengan pengaturan parameter yang masuk akal dan pengujian terus menerus, pengoptimalan dapat menghasilkan keuntungan investasi yang stabil.

Kode 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()