
Сценарий для количественной торговли, разработанный HedgerLabs, специализируется на методах среднезначного возвращения на финансовых рынках. Сценарий ориентирован на трейдеров, которые предпочитают систематизированный метод и подчеркивают постепенное открытие позиций на основе относительно скользящих средних цен.
В основе этой стратегии лежит простая скользящая средняя (SMA). Все входящие и исходящие сделки совершаются вокруг скользящей средней.
Уникальность этой стратегии заключается в ее постепенном механизме открытия позиций. Когда цена отклоняется от движущейся средней более чем на определенный процент, стратегия запускает первую позицию. Затем, по мере того, как цена продолжает отклоняться от движущейся средней все больше и больше, стратегия увеличивает позиции в постепенном порядке, определенном трейдером.
Эта стратегия также будет разумно управлять позициями. Когда цены ниже, чем в движущейся средней, они будут делать больше, чем когда они будут свободными, чтобы адаптироваться к различным рыночным условиям.
Включениеcalc_on_every_tickЭта стратегия позволяет постоянно оценивать рыночные условия и своевременно реагировать.
Стратегия постепенного открытия позиции по среднему возврату имеет следующие преимущества:
Однако эта стратегия также несет в себе некоторые риски:
Эти риски могут быть смягчены путем оптимизации выходов, более точного определения тенденций или соответствующего сокращения размера открытых позиций.
Эта стратегия может быть оптимизирована в следующих аспектах:
Стратегия с постепенным открытием позиций с возвращением к среднему значению фокусируется на торговых технологиях с возвращением к среднему значению, используя систематизированные постепенные открытия позиций для управления позициями, причем настраиваемые параметры применяются для различных типов торгов. Стратегия хорошо работает в волатильных рынках и подходит для количественных трейдеров, которые обращают внимание на короткие операции.
/*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