Стратегия торговли по тренду, основанная на наклоне и пересечении скользящей средней


Дата создания: 2023-09-20 14:32:22 Последнее изменение: 2023-09-20 14:32:22
Копировать: 0 Количество просмотров: 951
1
Подписаться
1617
Подписчики

Обзор

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

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

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

  2. Когда быстрая EMA пересекает среднескоростную EMA, а среднескоростная EMA поворачивает наклон, образуется полисигнал.

  3. Когда быстрая EMA пересекает среднескоростную EMA, а среднескоростная EMA имеет отрицательный уклон, создается сигнал заикания.

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

  5. Склонение EMA отражает изменение тренда.

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

  1. По мнению экспертов, это может быть более точным, чем если бы EMA работала в нескольких группах.

  2. В этом случае EMA будет иметь возможность выделить тенденции и колебания.

  3. Изменение среднелинейного скольжения указывает на изменение тренда.

  4. В этом случае, как отмечается в сообщении, “все цены на криптовалюту будут перемещены в сторону криптовалюты”.

  5. Всегда держите позицию, чтобы максимально использовать трендовые возможности.

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

  1. По данным EMA, держать позиции в условиях шока рискованно.

  2. Параметры EMA неправильно установлены, возможно, мы пропустили поворотный момент.

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

  4. Невозможно эффективно контролировать индивидуальные убытки.

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

  1. Тестируйте различные комбинации параметров EMA, чтобы найти наиболее эффективные.

  2. Добавить другие показатели, чтобы оценить сильные и слабые стороны, такие как MACD.

  3. Добавление механизмов контроля риска.

  4. По оценкам, тенденция сильна или слабая, поэтому не стоит открывать позиции слишком рано.

  5. Оптимизация управления капиталом и корректировка размеров позиций.

  6. Применение метода “задержки” при колебаниях тренда.

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

Стратегия использует множественное сочетание суждений о тенденциях в EMA, и это разумно. Однако существует определенная слепота, которая зависит только от EMA, и есть большое пространство для оптимизации, и можно ввести больше суждений о показателях.

Исходный код стратегии
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("EMA Slope + EMA Cross Strategy (by ChartArt)", shorttitle="CA_-_EMA_slope_cross", overlay=true)

// ChartArt's EMA Slope + EMA Cross Strategy
//
// Version 1.0
// Idea by ChartArt on March 10, 2018.
//
// This strategy uses divergences between
// three moving averages and their slope
// directions as well as crosses between
// the price and the moving averages
// to switch between long/short positions.
//
// The strategy is non-stop in the market
// and always either long or short.
// 
// In addition the moving averages are colored
// depending if they are trending up or down.
//
// List of my work: 
// https://www.tradingview.com/u/ChartArt/

// Input
price = input(close)
MA1_Length = input(2,step=1, title="EMA 1 Length")
MA2_Length = input(4,step=1, title="EMA 2 Length")
MA3_Length = input(20,step=1, title="EMA 3 Length")

switch1=input(true, title="Show Bar Color?")
switch2=input(true, title="Show Moving Averages?")

// Calculation
MA1 = ema(price, MA1_Length)
MA2 = ema(price, MA2_Length)
MA3 = ema(price, MA3_Length)

// Strategy
long = crossunder(price, MA3) or ( change(price)<0 and change(MA1)<0 and crossunder(price,MA1) and change(MA2)>0 )
short = crossover(price, MA3) or ( change(price)>0 and change(MA1)>0 and crossover(price,MA1)  and change(MA2)<0 ) 

if long
    strategy.entry("Long", strategy.long, comment="Long")

if short
    strategy.entry("Short", strategy.short, comment="Short")

// Strategy Alert
alertcondition(long, title='EMA Slope + EMA Cross Strategy, Long Alert', message='Go Long!')
alertcondition(short, title='EMA Slope + EMA Cross Strategy, Short Alert', message='Go Short!')

// MA trend bar color
up =  change(MA2)>0 and change(MA3)>0
dn =  change(MA2)<0 and change(MA3)<0
bar_color = up?green:dn?red:blue
barcolor(switch1?bar_color:na)

// MA trend output color
MA2_color = change(MA2)>0?lime:change(MA2)<0?red:blue
MA3_color = change(MA3)>0?lime:change(MA3)<0?red:blue

// MA output
EMA2 = plot(switch2?MA2:na, title="EMA 2", style=linebr, linewidth=2, color=MA2_color)
EMA3 = plot(switch2?MA3:na, title="EMA 3", style=linebr, linewidth=4, color=MA3_color)
fill(EMA2, EMA3, color=silver, transp=50)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)