
Эта стратегия является алгоритмической торговой стратегией, основанной на тренде, которая вычисляет среднюю линию EMA с двумя различными параметрами и выдает торговый сигнал при появлении золотой крест (Golden Cross) и смертельной крест (Death Cross). Эта стратегия одновременно объединяет несколько средних линий EMA для выхода с прибылью и устанавливает стоп-лосс для контроля риска.
Стратегия использует 4 средних линии EMA, включая группу средних линий EMA и EMA, их пересечения используются для создания сигналов покупки и продажи. Кроме того, стратегия использует две средние линии EMA между параметрами EMA и EMA, используемые для досрочного выхода из позиций, чтобы закрепить прибыль.
В частности, когда быстрый EMA пересекает медленный EMA, создается сигнал покупки; когда быстрый EMA пересекает медленный EMA, создается сигнал продажи. Это типичная стратегия пересечения движущейся средней двойной EMA.
Кроме того, в этой стратегии также установлены две остановки для длинной и короткой линий, чтобы предотвратить расширение убытков. В частности, множественная остановка была установлена на 6% от цены входа, а пустая остановка - на 3% от цены входа.
Основные преимущества этой стратегии по сравнению с типичной стратегией перекрёстного движения двойной EMA:
Установка нескольких средних линий EMA для выхода из прибыли позволяет лучше блокировать прибыль и предотвращать сокращение прибыли в последующих отклонениях.
Позиции с пустыми позициями имеют меньшую степень остановки, что позволяет выдерживать большие колебания в нормальных условиях, что предотвращает частые остановки.
Для выхода на прибыль можно установить разные параметры EMA, а также выбрать оптимальную точку выхода в зависимости от рыночных условий.
Общая стратегия обладает хорошей способностью отслеживать тренды, чтобы уловить прибыль от средне- и длиннолинейных трендов.
Основные риски этой стратегии включают:
В шокирующих ситуациях, торговые сигналы, генерируемые EMA, являются частыми и могут привести к чрезмерной торговле.
Краткая остановка может только предотвратить экстремальные события, но не может предотвратить резкое отступление от стратегических счетов.
Риск отмены стратегии сохраняется, а прибыль может значительно сократиться в случае долгосрочной корректировки.
Политика чувствительна к изменению параметров, неправильная конфигурация может привести к ее срыву.
С учетом вышеперечисленных рисков эта стратегия может быть оптимизирована в следующих аспектах:
Добавление алгоритмов машинного обучения, которые помогут оценить тенденции и снизить вероятность ошибочных сделок.
Добавление адаптивного механизма остановки убытков, позволяющего динамически корректировать размер остановки убытков в зависимости от степени волатильности рынка.
Установка уровня использования средств, избежание чрезмерного использования средств в стратегических счетах, увеличение механизма управления позициями.
Проверка торгуемых видов, выбор тенденций, торговля наиболее волатильными знаками.
Добавление модуля оптимизации параметров для автоматической оптимизации и обновления параметров.
Двойная стратегия пересечения движущихся средних ЭМА в целом является экономически эффективной стратегией отслеживания тенденций. Она имеет преимущества, такие как установка нескольких средних ЭМА для выхода из прибыли, небольшой стоп-лост и сильная способность отслеживать тенденции. Однако стратегия также имеет определенные риски, требующие оптимизации параметров и дополнительной стабильности стратегии с помощью алгоритмов машинного обучения и т. Д. В целом эта стратегия подходит для алгоритмических торгов инвесторам с определенным опытом торговли.
/*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.