Стратегия с использованием кредитного плеча на основе экспоненциального скользящего среднего пересечения

MATIC EMA MA
Дата создания: 2024-04-30 16:26:37 Последнее изменение: 2024-04-30 16:26:37
Копировать: 0 Количество просмотров: 534
1
Подписаться
1617
Подписчики

Стратегия с использованием кредитного плеча на основе экспоненциального скользящего среднего пересечения

Обзор

Стратегия использует пересечение двух индексов, 20 и 55, для определения торговых сигналов. Когда краткосрочная EMA проходит через долгосрочную EMA, она выдает сигнал покупки, а наоборот - сигнал продажи. Стратегия также вводит леверандированную торговлю, увеличивая прибыль, одновременно увеличивая риск. Кроме того, стратегия добавляет условные ограничения, открывая позиции только после пересечения двух средних линий, когда цена касается средней короткой линии, чтобы снизить риск ложного сигнала.

Стратегический принцип

  1. 20-й и 55-й дни EMA ((или MA) }}.
  2. Определить, является ли краткосрочная EMA долгосрочной EMA, и если да, настроить переменную readyToEnter на true, что означает, что она готова к входу.
  3. Если readyToEnter является истинным, и цена достигает краткосрочной ЭМА, то совершается покупка, при этом readyToEnter переставляется на false.
  4. Если краткосрочная EMA покрывается долгосрочной EMA, то позиция плавная.
  5. Размер позиции в зависимости от параметров леверинга
  6. Используйте стратегию только в пределах диапазона отсчета, установленного пользователем.

Стратегические преимущества

  1. Среднелинейный пересечение - это простой и удобный метод определения тенденций, подходящий для большинства рынков.
  2. Внедрение ливеринговой торговли может увеличить прибыль.
  3. Увеличение условных ограничений, снижение риска ложных сигналов.
  4. Существует два варианта EMA и MA, которые соответствуют предпочтениям пользователей.
  5. Код имеет четкую структуру, его легко понять и изменить.

Стратегический риск

  1. Леверандная торговля увеличивает риски и может привести к крупным потерям, если ошибся в оценке.
  2. Промежуточный пересечение имеет задержку, может пропустить лучший момент входа.
  3. Если рынок колеблется, то торговля может быть частой, что приводит к высоким комиссионным.

Направление оптимизации стратегии

  1. Можно попытаться оптимизировать среднелинейный цикл, чтобы найти наиболее подходящие параметры для текущего рынка.
  2. Можно ввести другие показатели, такие как RSI, MACD и т. д., чтобы сопоставить тенденции и повысить выигрышность.
  3. Можно установить стоп-лосс и стоп-стоп, контролируя риски по отдельным сделкам.
  4. В зависимости от динамики рыночных колебаний можно регулировать размер рычага, увеличивая рычаг во время колебаний и уменьшая рычаг во время колебаний.
  5. Можно вводить алгоритмы машинного обучения, самостоятельно адаптирующие параметры оптимизации.

Подвести итог

Эта стратегия увеличивает прибыль, используя комбинацию линейных скрещиваний и леверинговых сделок, одновременно учитывая тенденции рынка. Однако леверинг также сопряжен с высоким риском, поэтому его следует использовать с осторожностью. Кроме того, в этой стратегии есть возможности для оптимизации и повышения эффективности стратегии путем введения дополнительных показателей, динамических параметров корректировки и т. Д. В целом, эта стратегия подходит для трейдеров, которые стремятся к высокой прибыли, но могут нести высокий риск.

Исходный код стратегии
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Crossover Strategy with Leverage, Conditional Entry, and MA Option", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Inputs for backtesting period
startDate = input(defval=timestamp("2023-01-01"), title="Start Date")
endDate = input(defval=timestamp("2024-04-028"), title="End Date")

// Input for leverage multiplier
leverage = input.float(3.0, title="Leverage Multiplier", minval=1.0, maxval=10.0, step=0.1)

// Input for choosing between EMA and MA
useEMA = input.bool(true, title="Use EMA (true) or MA (false)?")

// Input source and lengths for MAs
src = close
ema1_length = input.int(20, title='EMA/MA-1 Length')
ema2_length = input.int(55, title='EMA/MA-2 Length')

// Calculate the MAs based on user selection
pema1 = useEMA ? ta.ema(src, ema1_length) : ta.sma(src, ema1_length)
pema2 = useEMA ? ta.ema(src, ema2_length) : ta.sma(src, ema2_length)

// Tracking the crossover condition for strategy entry
crossedAbove = ta.crossover(pema1, pema2)

// Define a variable to track if a valid entry condition has been met
var bool readyToEnter = false

// Check for MA crossover and update readyToEnter
if (crossedAbove)
    readyToEnter := true

// Entry condition: Enter when price touches MA-1 after the crossover // and (low <= pema1 and high >= pema1)
entryCondition = readyToEnter

// Reset readyToEnter after entry
if (entryCondition)
    readyToEnter := false

// Exit condition: Price crosses under MA-1
exitCondition = ta.crossunder(pema1, pema2)

// Check if the current bar's time is within the specified period
inBacktestPeriod = true

// Execute trade logic only within the specified date range and apply leverage to position sizing
if (inBacktestPeriod)
    if (entryCondition)
        strategy.entry("Long", strategy.long, qty=strategy.equity * leverage / close)
    if (exitCondition)
        strategy.close("Long")


// Plotting the MAs for visual reference
ema1_color = pema1 > pema2 ? color.red : color.green
ema2_color = pema1 > pema2 ? color.red : color.green
plot(pema1, color=ema1_color, style=plot.style_line, linewidth=1, title='EMA/MA-1')
plot(pema2, color=ema2_color, style=plot.style_line, linewidth=1, title='EMA/MA-2')