Kembali rata-rata dengan strategi masuk secara bertahap

Penulis:ChaoZhangTanggal: 2024-01-29 15:47:24
Tag:

img

Gambaran umum

Strategi Mean Reverssion with Incremental Entry yang dirancang oleh HedgerLabs adalah skrip strategi trading canggih yang berfokus pada teknik mean reverson di pasar keuangan.

Logika Strategi

Pusat dari strategi ini adalah Simple Moving Average (SMA) yang semua entri dan keluar berputar di sekitarnya.

Strategi ini unik adalah sistem entri inkremental. Ini memulai posisi pertama ketika harga menyimpang dari MA dengan persentase tertentu. entri berikutnya kemudian dibuat dalam langkah-langkah inkremental, seperti yang didefinisikan oleh pedagang, karena harga bergerak lebih jauh dari MA. Ini bertujuan untuk memanfaatkan meningkatnya volatilitas.

Strategi ini secara cerdas mengelola posisi dengan memasuki panjang ketika harga di bawah MA dan pendek ketika di atas untuk beradaptasi dengan perubahan kondisi pasar.

Keluar ditentukan ketika harga menyentuh MA, dengan tujuan menutup posisi pada titik pembalikan potensial untuk hasil yang dioptimalkan.

Dengan calc_on_every_tick diaktifkan, strategi terus-menerus mengevaluasi pasar untuk memastikan reaksi cepat.

Analisis Keuntungan

Strategi Average Reversal with Incremental Entry memiliki keuntungan utama sebagai berikut:

  1. Sangat sistematis untuk mengurangi gangguan emosional
  2. Masuk secara bertahap menangkap keuntungan yang lebih besar selama volatilitas tinggi
  3. Parameter yang dapat disesuaikan seperti periode MA sesuai dengan instrumen yang berbeda
  4. Manajemen posisi cerdas secara otomatis menyesuaikan panjang / pendek
  5. Pembalikan exit target optimal untuk menutup posisi

Analisis Risiko

Risiko yang harus dipertimbangkan meliputi:

  1. Whipsaws dari ketergantungan pada indikator teknis
  2. Trendlessness yang menyebabkan penarikan yang diperpanjang
  3. Pengaturan MA yang buruk menyebabkan sering berhenti
  4. Ukuran posisi yang lebih besar dari entri tambahan

Keluar dapat dioptimalkan, filter tren ditambahkan, ukuran posisi dikurangi untuk mengurangi risiko di atas.

Peluang Peningkatan

Strategi dapat ditingkatkan dengan:

  1. Menambahkan filter tren untuk menghindari perdagangan yang tidak menguntungkan
  2. Mengoptimalkan peningkatan masuk dengan volatilitas
  3. Mengintegrasikan trailing stop untuk mengunci keuntungan
  4. Bereksperimen dengan rata-rata bergerak yang berbeda
  5. Menggunakan filter untuk mengurangi sinyal palsu

Kesimpulan

Strategi Mean Reverssion with Incremental Entry berfokus pada teknik mean reverssion menggunakan pendekatan ukuran posisi inkremental yang sistematis. Dengan pengaturan yang dapat disesuaikan, ini dapat disesuaikan di berbagai instrumen perdagangan.


/*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


Lebih banyak