Стратегия пересечения скользящих средних EMA с отслеживанием импульса


Дата создания: 2024-02-26 16:40:29 Последнее изменение: 2024-02-26 16:40:29
Копировать: 0 Количество просмотров: 604
1
Подписаться
1617
Подписчики

Стратегия пересечения скользящих средних EMA с отслеживанием импульса

Обзор

Эта стратегия является алгоритмической торговой стратегией, основанной на тренде, которая вычисляет среднюю линию EMA с двумя различными параметрами и выдает торговый сигнал при появлении золотой крест (Golden Cross) и смертельной крест (Death Cross). Эта стратегия одновременно объединяет несколько средних линий EMA для выхода с прибылью и устанавливает стоп-лосс для контроля риска.

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

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

В частности, когда быстрый EMA пересекает медленный EMA, создается сигнал покупки; когда быстрый EMA пересекает медленный EMA, создается сигнал продажи. Это типичная стратегия пересечения движущейся средней двойной EMA.

Кроме того, в этой стратегии также установлены две остановки для длинной и короткой линий, чтобы предотвратить расширение убытков. В частности, множественная остановка была установлена на 6% от цены входа, а пустая остановка - на 3% от цены входа.

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

Основные преимущества этой стратегии по сравнению с типичной стратегией перекрёстного движения двойной EMA:

  1. Установка нескольких средних линий EMA для выхода из прибыли позволяет лучше блокировать прибыль и предотвращать сокращение прибыли в последующих отклонениях.

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

  3. Для выхода на прибыль можно установить разные параметры EMA, а также выбрать оптимальную точку выхода в зависимости от рыночных условий.

  4. Общая стратегия обладает хорошей способностью отслеживать тренды, чтобы уловить прибыль от средне- и длиннолинейных трендов.

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

Основные риски этой стратегии включают:

  1. В шокирующих ситуациях, торговые сигналы, генерируемые EMA, являются частыми и могут привести к чрезмерной торговле.

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

  3. Риск отмены стратегии сохраняется, а прибыль может значительно сократиться в случае долгосрочной корректировки.

  4. Политика чувствительна к изменению параметров, неправильная конфигурация может привести к ее срыву.

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

С учетом вышеперечисленных рисков эта стратегия может быть оптимизирована в следующих аспектах:

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

  2. Добавление адаптивного механизма остановки убытков, позволяющего динамически корректировать размер остановки убытков в зависимости от степени волатильности рынка.

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

  4. Проверка торгуемых видов, выбор тенденций, торговля наиболее волатильными знаками.

  5. Добавление модуля оптимизации параметров для автоматической оптимизации и обновления параметров.

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

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

Исходный код стратегии
/*backtest
start: 2023-02-19 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RealTraderAkeme

//@version=5
strategy("AKEME_EMA_CROSS_V6", overlay=true)

////////////////////////////////////////////////////////////PARAMETERS/////////////////////////////////////////////////////////////////
emaFast_op = input(title="Fast_EMA", defval=6)
emaSlow_op = input(title="Slow_EMA", defval=26)
emaExit_op = input(title="Sell_EMA_Exit",defval=10)
emabuyExit_op = input(title="Buy_EMA_Exit",defval=20)
Order_Value = input(defval=1000, title="Order_Value in Pounds") 
Direction_Of_Trade = input(title="Trade Direction", defval="Both")


////////////////////////////////////////////////////////////INPUTS//////////////////////////////////////////////////////////////////

fastEMA = ta.ema(close, emaFast_op)
slowEMA = ta.ema(close,emaSlow_op)
emaExit = ta.ema(close,emaExit_op)
emabuyExit = ta.ema(close,emabuyExit_op)
Entry_Ratio = strategy.openprofit/Order_Value


//////////////////////////////////////////////////////////GRAPHS//////////////////////////////////////////////////////////////////

plot(fastEMA, color=color.orange, linewidth = 2)
plot(slowEMA,color = color.blue, linewidth = 2)
plot(emaExit,color = color.gray, linewidth = 2)
plot(series=emabuyExit, color= color.rgb(210, 74, 235), linewidth=2)


/////////////////////////////////////////////////////Conditions//////////////////////////////////////////////////////////////////////
longOK  = (Direction_Of_Trade == "Long") or (Direction_Of_Trade == "Both")
shortOK = (Direction_Of_Trade == "Short") or (Direction_Of_Trade == "Both")


///////////////////////////////////////////////////////////ENTRIES&EXITS///////////////////////////////////////////////////////////////
longCondition = ta.crossover(fastEMA, slowEMA) and longOK 
if (longCondition)  
    strategy.entry("Buy", strategy.long) 

shortCondition = ta.crossunder(fastEMA, slowEMA) and shortOK
if (shortCondition)
    strategy.entry("Sell", strategy.short)

if (strategy.position_size > 0 and shortCondition)
    strategy.exit(id="exit Buy", stop=close)
    
if (strategy.position_size < 0 and longCondition)
    strategy.exit(id="exit Sell", stop=close)


/////////////////////////////////////////////////////TAKE PROFIT CONDITIONS////////////////////////////////////////////////////////

if  ta.crossunder(fastEMA, emabuyExit) and Entry_Ratio > 0.08333
    strategy.close("Buy",comment = "Exit")

if  ta.crossover(fastEMA, emaExit) and Entry_Ratio > 0.016666
    strategy.close("Sell",comment = "Exit")


if Entry_Ratio > 0.4166666 //0.4166666 
    strategy.close("Buy",comment = "Exit", qty_percent = 100)

if Entry_Ratio > 0.0833333//0.0833333
    strategy.close("Sell",comment = "Exit")//50

if Entry_Ratio > 0.1111111//4000
    strategy.close("Sell",comment = "Exit", qty_percent = 50)

if ta.crossover(fastEMA, emaExit) and Entry_Ratio > 0.278 //Percentage 
    strategy.close("Sell",comment = "Exit")

////////////////////////////////////////////STOP LOSS AS PERCENTAGE OF ENTRY CONDITIONS///////////////////////////////////////////

if Entry_Ratio < -0.05555555555
    strategy.close("Buy",comment = "Exit")
if Entry_Ratio < -0.027777777777
    strategy.close("Sell",comment = "Exit")// The Sell Stoloss is half the buying stoploss.