Простая и эффективная количественная торговая стратегия MACD


Дата создания: 2024-01-26 14:20:04 Последнее изменение: 2024-01-26 14:20:04
Копировать: 0 Количество просмотров: 622
1
Подписаться
1617
Подписчики

Простая и эффективная количественная торговая стратегия MACD

Обзор

Эта стратегия является простой и эффективной стратегией количественной торговли MACD, специально разработанной для криптовалютного рынка, для торговли в более высокие временные периоды, такие как 1 час, 4 часа, 1 день и т. Д.

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

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

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

Это очень простая и эффективная стратегия, наибольшие преимущества которой заключаются в следующем:

  1. Использование MACD для определения направления рынка - это проверенный и надежный индикатор технического анализа, который позволяет точно определить тенденции;

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

  3. MACD наиболее эффективен на рынках с высокой волатильностью, особенно для криптовалют.

  4. Стратегическая логика проста и понятна, легко понятна и реализуема, с низким порогом, легко применима;

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

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

Однако эта стратегия несет в себе определенные риски, в основном в следующих аспектах:

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

  2. Не использование стратегии стоп-стоп может привести к значительным одиночным убыткам счета;

  3. Некоторые задержки и ложные сигналы могут привести к ненужным потерям;

  4. Не учитывается влияние времени и частоты торгов на прибыль.

Эти риски требуют дальнейшего совершенствования и оптимизации этой стратегии.

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

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

  1. Попробуйте различные параметры и комбинации показателей, чтобы найти оптимальные параметры.

  2. Добавление стратегии “стоп-стоп” для ограничения максимального размера убытков;

  3. Оптимизация выбора времени входа, установление более строгих методов проверки сигнала, чтобы обеспечить эффективность сигнала;

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

Оптимизация этих направлений может значительно повысить стабильность, рентабельность и боеспособность этой стратегии.

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

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

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SoftKill21

//@version=4
strategy("MACD crypto strategy", overlay=true)

// Getting inputs
//fast_length = input(title="Fast Length", type=input.integer, defval=12)
//slow_length = input(title="Slow Length", type=input.integer, defval=26)
//src = input(title="Source", type=input.source, defval=close)
//signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
//sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true)
//sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

fast_length = 12
slow_length = 26
src = input(title="Source", type=input.source, defval=close)
signal_length = 9
sma_source = true
sma_signal = false

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal



longcondition = hist > 0 
shortcondition = hist < 0 

//sl = input(0.5, title="SL")
//tp = input(0.1, title="tp")

strategy.entry("long",1,when=longcondition)
strategy.entry("short",0,when=shortcondition)

//strategy.exit("x_long", "long" ,loss = close * sl / syminfo.mintick, profit = close * tp / syminfo.mintick , alert_message = "closelong")
//strategy.entry("short",0, when= loss = close * sl / syminfo.mintick)

//strategy.exit("x_short", "short" , loss = close * sl / syminfo.mintick, profit  = close * tp / syminfo.mintick,alert_message = "closeshort")

// risk = input(2, type=input.float,title="Risk percentage of BALANCE")
// strategy.risk.max_intraday_loss(risk, strategy.percent_of_equity)