
Самостоятельно адаптируемая стратегия торговли с пересеченной равнолинейной ценой является количественным методом торговли, основанным на Hull Moving Average (HMA). Эта стратегия использует пересечение цены с HMA для создания сигналов покупки и продажи, а также устанавливает фиксированные уровни остановок и остановок для управления рисками и прибылью.
В основе этой стратегии лежит использование Hull Moving Average (HMA) в качестве основного индикатора. HMA - это продвинутая движущаяся средняя, которая способна быстро реагировать на изменения цен, сокращая при этом задержку.
Стратегия обеспечивает, что открытые позиции не будут открыты повторно при наличии уже открытых позиций. Когда сделка была ликвидирована, система перезагружает знаки, позволяя вступить в силу новому торговому сигналу.
Стратегия самостоятельной торговли по цене с перекрестной равномерной линией является простым и эффективным методом количественной торговли. Используя преимущества Hull Moving Average, эта стратегия может улавливать тенденции рынка, защищая при этом средства с помощью фиксированных мер управления рисками. Хотя в стратегии есть некоторые потенциальные риски, ее производительность и адаптивность могут быть улучшены путем постоянной оптимизации и улучшения.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-03-23 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SHIESTD", overlay=true)
// Function to calculate Hull Moving Average (HMA)
hma(src, length) =>
wma1 = ta.wma(src, length)
wma2 = ta.wma(src, length / 2)
hma = ta.wma(2 * wma2 - wma1, math.round(math.sqrt(length)))
hma
// Parameters
hma_length = 104
// Calculate Hull Moving Average
hma_value = hma(close, hma_length)
// Plot HMA
plot(hma_value, title="104-period Hull Moving Average", color=color.blue, linewidth=2)
// Define SL and TP values in dollars
long_sl_amount = 1.25
long_tp_amount = 37.5
short_sl_amount = 1.25
short_tp_amount = 37.5
// Number of contracts
contracts = 2
// Function to calculate SL and TP prices based on entry price and dollar amounts
long_sl_price(entry_price) =>
entry_price - long_sl_amount
long_tp_price(entry_price) =>
entry_price + long_tp_amount
short_sl_price(entry_price) =>
entry_price + short_sl_amount
short_tp_price(entry_price) =>
entry_price - short_tp_amount
// Trading conditions
price_intersects_hma = ta.crossover(close, hma_value) or ta.crossunder(close, hma_value)
// Long and Short Conditions based on price intersecting HMA
long_condition = ta.crossover(close, hma_value)
short_condition = ta.crossunder(close, hma_value)
// Track open positions
var bool long_open = false
var bool short_open = false
// Handle Long Positions
if (long_condition and not long_open)
entry_price = close
strategy.entry("Long", strategy.long, qty=contracts)
strategy.exit("Exit Long", from_entry="Long", stop=long_sl_price(entry_price), limit=long_tp_price(entry_price))
long_open := true
// Handle Short Positions
if (short_condition and not short_open)
entry_price = close
strategy.entry("Short", strategy.short, qty=contracts)
strategy.exit("Exit Short", from_entry="Short", stop=short_sl_price(entry_price), limit=short_tp_price(entry_price))
short_open := true
// Reset flags when the position is closed
if (strategy.opentrades == 0)
long_open := false
short_open := false