Strategi Pembalikan Rata dengan Masukan Inkremental yang direka oleh HedgerLabs adalah skrip strategi perdagangan lanjutan yang memberi tumpuan kepada teknik pembalikan rata-rata di pasaran kewangan.
Pusat kepada strategi ini adalah Purata Bergerak Sederhana (SMA) di mana semua entri dan keluar berputar.
Strategi ini unik dengan sistem kemasukan tambahan. Ia memulakan kedudukan pertama apabila harga menyimpang dari MA dengan peratusan tertentu. Masukan berikutnya kemudian dibuat dalam langkah-langkah tambahan, seperti yang ditakrifkan oleh peniaga, kerana harga bergerak lebih jauh dari MA. Ini bertujuan untuk memanfaatkan peningkatan turun naik.
Strategi ini menguruskan kedudukan dengan bijak dengan memasuki panjang apabila harga di bawah MA dan pendek apabila di atas untuk menyesuaikan diri dengan keadaan pasaran yang berubah.
Keluar ditentukan apabila harga menyentuh MA, dengan matlamat menutup kedudukan pada titik pembalikan yang berpotensi untuk hasil yang optimum.
Dengan calc_on_every_tick diaktifkan, strategi terus menilai pasaran untuk memastikan tindak balas segera.
Strategi Kembali Rata-rata dengan Pendapatan Peningkatan mempunyai kelebihan utama berikut:
Risiko yang perlu dipertimbangkan termasuk:
Keluar boleh dioptimumkan, penapis trend ditambah, saiz kedudukan dikurangkan untuk mengurangkan risiko di atas.
Strategi ini boleh ditingkatkan dengan:
Strategi pembalikan purata dengan kemasukan tambahan memberi tumpuan kepada teknik pembalikan purata menggunakan pendekatan ukuran kedudukan tambahan yang sistematik. Dengan tetapan yang boleh disesuaikan, ia dapat disesuaikan di seluruh instrumen perdagangan yang berbeza. Ia berfungsi dengan baik di pelbagai pasaran dan sesuai dengan peniaga sistematik jangka pendek.
/*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