Strategi Mean Reverssion with Incremental Entry yang dirancang oleh HedgerLabs adalah skrip strategi trading canggih yang berfokus pada teknik mean reverson di pasar keuangan.
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.
Strategi Average Reversal with Incremental Entry memiliki keuntungan utama sebagai berikut:
Risiko yang harus dipertimbangkan meliputi:
Keluar dapat dioptimalkan, filter tren ditambahkan, ukuran posisi dikurangi untuk mengurangi risiko di atas.
Strategi dapat ditingkatkan dengan:
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