Strategi pembukaan bertahap pengembalian rata-rata


Tanggal Pembuatan: 2024-01-29 15:47:24 Akhirnya memodifikasi: 2024-01-29 15:47:24
menyalin: 0 Jumlah klik: 638
1
fokus pada
1617
Pengikut

Strategi pembukaan bertahap pengembalian rata-rata

Ringkasan

Strategi Regression Mean to Gradual Opening adalah skrip strategi perdagangan kuantitatif canggih yang dirancang oleh HedgerLabs, yang berfokus pada teknik Regression Mean di pasar keuangan. Strategi ini ditujukan untuk pedagang yang lebih suka metode sistematis dan menekankan metode pembukaan posisi bertahap berdasarkan harga relatif rata-rata bergerak.

Prinsip Strategi

Inti dari strategi ini adalah Simple Moving Average (SMA). Semua perdagangan masuk dan keluar dilakukan di sekitar moving average. Pedagang dapat menyesuaikan panjang MA agar sesuai dengan gaya perdagangan dan rentang waktu yang berbeda.

Strategi ini unik dalam mekanisme pembukaannya yang bertahap. Strategi ini akan memulai posisi pertama ketika harga menyimpang dari rata-rata bergerak lebih dari persentase tertentu. Kemudian, strategi ini akan meningkatkan posisi secara bertahap seperti yang didefinisikan oleh pedagang. Metode ini dapat menghasilkan keuntungan yang lebih tinggi ketika volatilitas pasar meningkat.

Strategi ini juga akan mengelola posisi secara cerdas. Berdagang lebih banyak ketika harga lebih rendah dari rata-rata bergerak dan berdagang lebih tinggi dari waktu kosong untuk menyesuaikan dengan kondisi pasar yang berbeda.

Dengan mengaktifkancalc_on_every_tickStrategi ini dapat terus mengevaluasi kondisi pasar dan bereaksi tepat waktu.

Analisis Keunggulan

Strategi Mean Value Regression Graduated Opening memiliki keuntungan sebagai berikut:

  1. Tingkat sistematisasi yang tinggi dapat mengurangi risiko kesalahan subjektif
  2. Posisi yang dibuka secara bertahap dapat menghasilkan keuntungan yang lebih tinggi saat pasar bergejolak
  3. Parameter yang dapat disesuaikan seperti siklus MA dan lain-lain untuk menyesuaikan dengan varietas yang berbeda
  4. Mekanisme manajemen posisi yang lebih cerdas, dapat secara otomatis menyesuaikan posisi kosong
  5. Pilih titik keluar yang masuk akal untuk menangkap reversal dan menutup posisi

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Bergantung pada indikator-indikator teknis, risiko sinyal palsu bisa terjadi
  2. Tidak bisa menilai tren pasar, mudah terjebak
  3. Setting parameter MA yang tidak tepat dapat menyebabkan seringnya stop loss
  4. Posisi terbuka secara bertahap meningkatkan risiko.

Risiko ini dapat diatasi dengan mengoptimalkan exits, menilai tren, atau mengurangi margin.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Meningkatkan kondisi penghapusan tren untuk menghindari posisi berlawanan
  2. Optimalisasi margin pembukaan posisi dengan indikator volatilitas
  3. Mengoptimalkan Stop Loss Bergerak untuk Mengunci Keuntungan
  4. Cobalah berbagai jenis moving average
  5. Tambahkan filter untuk mengurangi sinyal tidak valid

Meringkaskan

Strategi ini berfokus pada teknik perdagangan dengan nilai rata-rata yang kembali, menggunakan sistematisasi posisi manajemen dengan parameter yang dapat disesuaikan untuk berbagai jenis perdagangan. Strategi ini bekerja dengan baik di pasar yang bergejolak dan cocok untuk pedagang kuantitatif yang berfokus pada operasi garis pendek.

Kode Sumber Strategi
/*backtest
start: 2023-12-29 00:00:00
end: 2024-01-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Mean Reversion with Incremental Entry by HedgerLabs", overlay=true, calc_on_every_tick=true)

// Input for adjustable settings
maLength = input.int(30, title="MA Length", minval=1)
initialPercent = input.float(5, title="Initial Percent for First Order", minval=0.01, step=0.01)
percentStep = input.float(1, title="Percent Step for Additional Orders", minval=0.01, step=0.01)

// Calculating Moving Average
ma = ta.sma(close, maLength)

// Plotting the Moving Average
plot(ma, "Moving Average", color=color.blue)

var float lastBuyPrice = na
var float lastSellPrice = na

// Function to calculate absolute price percentage difference
pricePercentDiff(price1, price2) =>
    diff = math.abs(price1 - price2) / price2 * 100
    diff

// Initial Entry Condition Check Function
initialEntryCondition(price, ma, initialPercent) =>
    pricePercentDiff(price, ma) >= initialPercent

// Enhanced Entry Logic for Buy and Sell
if (low < ma)
    if (na(lastBuyPrice))
        if (initialEntryCondition(low, ma, initialPercent))
            strategy.entry("Buy", strategy.long)
            lastBuyPrice := low
    else
        if (low < lastBuyPrice and pricePercentDiff(low, lastBuyPrice) >= percentStep)
            strategy.entry("Buy", strategy.long)
            lastBuyPrice := low

if (high > ma)
    if (na(lastSellPrice))
        if (initialEntryCondition(high, ma, initialPercent))
            strategy.entry("Sell", strategy.short)
            lastSellPrice := high
    else
        if (high > lastSellPrice and pricePercentDiff(high, lastSellPrice) >= percentStep)
            strategy.entry("Sell", strategy.short)
            lastSellPrice := high

// Exit Conditions - Close position if price touches the MA
if (close >= ma and strategy.position_size > 0)
    strategy.close("Buy")
    lastBuyPrice := na

if (close <= ma and strategy.position_size < 0)
    strategy.close("Sell")
    lastSellPrice := na

// Reset last order price when position is closed
if (strategy.position_size == 0)
    lastBuyPrice := na
    lastSellPrice := na