Двойная EMA Золотой крест Долгосрочная стратегия


Дата создания: 2024-02-23 12:17:40 Последнее изменение: 2024-02-23 12:17:40
Копировать: 0 Количество просмотров: 656
1
Подписаться
1617
Подписчики

Двойная EMA Золотой крест Долгосрочная стратегия

Обзор

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

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

  1. Использование трех циклов ЭМА может быть настроено, чтобы рассчитать краткосрочную ЭМА, среднесрочную ЭМА и долгосрочную ЭМА.

  2. Если цена выше долгосрочной EMA, то это свидетельствует о том, что она находится в многостороннем тренде.

  3. Если краткосрочная EMA пересекает среднюю EMA снизу, образуя золотую крестку, это еще раз подтверждает усиление многосторонней тенденции.

  4. Когда оба вышеперечисленных условия выполняются одновременно, открывать позиции нужно больше.

Анализ преимуществ

Наибольшим преимуществом этой стратегии является возможность эффективно идентифицировать тенденции, использовать решение в сочетании с многоциклической EMA, чтобы избежать заблуждения от шума краткосрочного рынка. В то же время, настройка стоп-убытков в качестве средства контроля риска позволяет контролировать потери в определенном диапазоне.

Анализ рисков

Основным риском этой стратегии является многоосновная позиция. Невозможность своевременного закрытия позиции при обратном движении рынка, что может привести к увеличению убытков. Кроме того, неправильная циклическая настройка EMAS также может привести к частой торговле и увеличению стоимости торговли.

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

  1. Увеличение количества управляемых позиций, снижение позиций при достижении определенной пропорции вывода.

  2. Добавлена новаторская высокая параметровая настройка Stop Loss.

  3. Оптимизация циклических параметров EMAS, снижение частоты торгов.

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

Эта стратегия в целом является стратегией стабильного высококачественного длиннолинейного хранения. Умение распознавать тенденции сильнее, а риск находится под контролем.

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

//@version=5
strategy("Strategia EMA Long con Opzioni di Uscita Avanzate e Periodi EMA Personalizzabili", overlay=true)

// Parametri di input generali
useVolatilityFilter = input.bool(true, title="Usa Filtro di Volatilità")
atrPeriods = input.int(14, title="Periodi ATR", minval=1)
atrMultiplier = input.float(1.5, title="Moltiplicatore ATR", step=0.1)
useTrailingStop = input.bool(true, title="Usa Trailing Stop")
trailingStopPercent = input.float(15.0, title="Percentuale Trailing Stop", minval=0.1, step=0.1) / 100.0
useEMAExit = input.bool(true, title="Usa Uscita EMA Corta incrocia EMA Media al Ribasso")

// Parametri di input per periodi EMA personalizzabili
emaLongTermPeriod = input.int(200, title="Periodo EMA Lungo Termine", minval=1)
emaShortTermPeriod = input.int(5, title="Periodo EMA Breve Termine", minval=1)
emaMidTermPeriod = input.int(10, title="Periodo EMA Medio Termine", minval=1)

// Calcolo delle EMA con periodi personalizzabili
longTermEMA = ta.ema(close, emaLongTermPeriod)
shortTermEMA = ta.ema(close, emaShortTermPeriod)
midTermEMA = ta.ema(close, emaMidTermPeriod)

// Calcolo ATR e soglia di volatilità
atr = ta.atr(atrPeriods)
atrThreshold = ta.sma(atr, atrPeriods) * atrMultiplier

// Condizione di entrata
enterLongCondition = close > longTermEMA and shortTermEMA > midTermEMA
enterLong = useVolatilityFilter ? (enterLongCondition and atr > atrThreshold) : enterLongCondition

if (enterLong)
    strategy.entry("Enter Long", strategy.long)

// Tracking del prezzo di entrata e del massimo prezzo raggiunto per il trailing stop
var float entryPrice = na
var float maxPriceSinceEntry = na
if (strategy.position_size > 0)
    maxPriceSinceEntry := math.max(na(maxPriceSinceEntry) ? high : maxPriceSinceEntry, high)
    entryPrice := na(entryPrice) ? strategy.position_avg_price : entryPrice
else
    maxPriceSinceEntry := na
    entryPrice := na

// Calcolo del valore del trailing stop
trailStopPrice = maxPriceSinceEntry * (1 - trailingStopPercent)

// Implementazione delle condizioni di uscita
exitCrossUnder = close < longTermEMA
emaCross = ta.crossunder(shortTermEMA, midTermEMA)

if (useEMAExit and emaCross)
    strategy.close("Enter Long", comment="EMA Cross Exit")

if (useTrailingStop)
    strategy.exit("Trailing Stop", from_entry="Enter Long", stop=trailStopPrice)

// Visualizzazioni
plot(longTermEMA, color=color.yellow, title="EMA Lungo Termine")
plot(shortTermEMA, color=color.blue, title="EMA Breve Termine")
plot(midTermEMA, color=color.green, title="EMA Medio Termine")
plot(useVolatilityFilter ? atrThreshold : na, color=color.purple, title="ATR Threshold")
plot(strategy.position_size > 0 ? trailStopPrice : na, color=color.orange, title="Trailing Stop Value", style=plot.style_linebr)