
Die Mean Return Progressive Opening Strategy ist ein fortgeschrittenes Quantitative Trading Strategy-Skript, das von HedgerLabs entwickelt wurde und sich auf die Mean Return-Technologie in den Finanzmärkten konzentriert. Die Strategie richtet sich an Händler, die eine systematische Methode bevorzugen und eine progressive Opening-Strategie basierend auf einem relativ beweglichen Durchschnitt der Preise betonen.
Der Kern dieser Strategie ist der einfache Moving Average (SMA). Alle Ein- und Ausstiegsgeschäfte werden um den Moving Average herum durchgeführt. Händler können die MA-Länge anpassen, so dass sie für verschiedene Handelsstile und Zeiträume geeignet ist.
Die Strategie ist einzigartig durch ihre schrittweise Eröffnungsmechanik. Die Strategie startet den ersten Position, wenn der Preis von der Moving Average mehr als einen bestimmten Prozentsatz abweicht. Die Strategie erhöht dann die Position in einer von den Händlern definierten schrittweisen Art und Weise, je weiter der Preis von der Moving Average abweicht.
Die Strategie verwaltet auch die Position intelligent. Sie macht mehr, wenn der Preis unter dem Moving Average liegt, und macht mehr, wenn er frei ist, um sich an unterschiedliche Marktbedingungen anzupassen. Die Geländepunkte sind so eingerichtet, dass sie potenzielle Wendepunkte erfassen, wenn der Preis den Moving Average berührt, um eine optimale Schließung der Position zu erreichen.
Durch Aktivierungcalc_on_every_tickDie Strategie ermöglicht eine kontinuierliche Beurteilung der Marktbedingungen und eine zeitnahe Reaktion.
Die Mean Value Regression Progressive Opening Strategy hat folgende Vorteile:
Die Strategie birgt auch einige Risiken:
Diese Risiken können durch geeignete Optimierung von Exits, bessere Trendbeurteilung oder geeignete Verkürzung der Marge für die Eröffnung von Positionen gemildert werden.
Diese Strategie kann in folgenden Bereichen optimiert werden:
Die Mean Return Progressive Opening Strategy konzentriert sich auf die Mean Return Trading Technik, die eine systematische Positionsverwaltung mit progressiven Openings anwendet, wobei die benutzerdefinierbaren Parameter für verschiedene Handelsarten verwendet werden können. Die Strategie funktioniert gut in volatilen Märkten und ist für quantitative Händler geeignet, die sich auf Short Line-Operationen konzentrieren.
/*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