Тенденция MACD в соответствии со стратегией

Автор:Чао Чжан, Дата: 2024-03-29 15:14:18
Тэги:

img

Обзор

Стратегия MACD Trend Following - это количественная торговая стратегия, основанная на индикаторе MACD. Основная идея этой стратегии заключается в использовании золотого креста и смертного креста индикатора MACD для определения направления тренда и установления длинных или коротких позиций в соответствующие времена. Когда линия MACD пересекает линию сигнала и выше нулевой оси, открывается длинная позиция; когда линия MACD пересекает линию сигнала и ниже нулевой оси, открывается короткая позиция. Стратегия использует самую последнюю низкую точку как стоп-лосс для длинных позиций и самую последнюю высокую точку как стоп-лосс для коротких позиций. Условие закрытия - когда линия MACD пересекает линию сигнала в противоположном направлении.

Принцип стратегии

Основной принцип стратегии MACD Trend Following заключается в использовании индикатора MACD для фиксации формирования и перелома трендов. Индикатор MACD состоит из разницы между двумя скользящими средними (быстрыми и медленными) и используется в сочетании с сигнальной линией для генерации торговых сигналов. Когда линия MACD пересекает линию сигнала выше и выше нулевой оси, это указывает на формирование восходящего тренда, и открывается длинная позиция. Когда линия MACD пересекает линию сигнала ниже и ниже нулевой оси, это указывает на формирование нисходящего тренда, и открывается короткая позиция. Стратегия использует самую последнюю значительную низкую точку MAC как стоп-лосс для длинных позиций и самую последнюю значительную высокую точку как потерю для коротких позиций для контроля риска. Когда линия MACD пересекает линию сигнала в противоположном направлении, текущая позиция закрывается.

Преимущества стратегии

  1. Стратегия MACD Trend Following может эффективно использовать трендовые возможности, устанавливая позиции в начале формирования тренда, полностью используя импульс тренда.

  2. Стратегия использует как золотой крест MACD, так и нулевую ось в качестве фильтрующих условий, которые могут лучше отфильтровывать ложные сигналы на колеблющемся рынке.

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

  4. Логика стратегии ясна, ее легко понять и реализовать, что делает ее подходящей для обучения новичков.

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

  1. По сути, индикатор MACD является отстающим, который может испытывать значительные снижения в начале перемены тренда.

  2. Эта стратегия может привести к частым сделкам на колеблющемся рынке, что приводит к высоким затратам на транзакции.

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

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

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

  1. Рассмотреть возможность введения других технических индикаторов или моделей поведения цен в качестве фильтрующих условий для повышения надежности и точности сигналов.

  2. Оптимизировать метод установки уровней стоп-лосса, например, использование ATR или стоп-лосса на основе процентов, чтобы лучше контролировать риск.

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

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

Резюме

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


/*backtest
start: 2023-03-23 00:00:00
end: 2024-03-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MACD trendfollow", shorttitle="MACD TF", overlay=true)
// switch = input(true, title="Enable MACD Bar Color")
// X001TK MACD trendfollow Strategy
//
// 
// This strategy combines the non standart approach in MACD strategy to buy once to buy when the MACD value goes above Signal line and a zero line, to sell on the opposite condition.
//
//
// This strategy goes long if the MACD (3,9,5) goes above its Signal and above zero
//
// You can set Stop loss on the recent lowest low when long position is opened and recent highest hugh in short
// 
//
// Exit rule is simple. We close the LONG position once MACD goes below Signal line and close SHORT on the opposite condition 
//
// 
// 
//
// Input
fastMAlen = input(3, minval=1, title="MACD fast moving average")
slowMAlen = input(9,minval=1, title="MACD slow moving average")
signalMACDlen = input(5,minval=1, title="MACD signal line moving average")
// switch = input(true, title="Enable MACD Bar Color")
length = input(1, minval=1)



// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2002, title = "From Year", minval = 2000)
ToMonth   = input(defval = 3, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2029, title = "To Year", minval = 2017)



// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 00, 00)        // backtest finish window
window()  => true // create function "within window of time"

// MACD Calculation
MACD = ema(close, fastMAlen) - ema(close, slowMAlen)
signalMACD = ema(MACD, signalMACDlen)
delta = MACD - signalMACD
fastMA = ema(close,fastMAlen)
slowMA = ema(close,slowMAlen)


// Colors
//bartrendcolor = MACD > signalMACD and MACD > 0? green : MACD < signalMACD and MACD < 0? red : MACD < signalMACD? gray :  gray 
//barcolor(switch?bartrendcolor:na)

barcolour=(MACD > signalMACD and MACD > 0)?#53B987:(MACD < signalMACD and MACD < 0)?#EB4D5C:na
barcolor(color=barcolour)


// === STRATEGY ===
// conditions

longCond =  MACD > signalMACD and MACD > 0 
XlongCond = MACD < signalMACD 
ShortCond = MACD < signalMACD and MACD < 0 
XShortCond = MACD > signalMACD 





strategy.entry("long", strategy.long, when=longCond==true and window()==true )
//strategy.exit(id="Close Long", stop=longStop)//, limit=longTake)
strategy.close("long", when=XlongCond==true and window()==true)
strategy.entry("short", strategy.short,  when=ShortCond==true and window()==true )
//strategy.exit(id="Close Short", stop=shortStop)//, limit=shortTake)
strategy.close("short", when=XShortCond==true and window()==true)

// === /STRATEGY ===

Больше