Стратегия торговли криптовалютой на основе индикаторов MACD и Stochastic


Дата создания: 2024-02-01 11:52:15 Последнее изменение: 2024-02-01 11:52:15
Копировать: 0 Количество просмотров: 773
1
Подписаться
1617
Подписчики

Стратегия торговли криптовалютой на основе индикаторов MACD и Stochastic

Обзор

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

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

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

После вычисления MACD-показателя, стратегия накладывает случайный показатель %K на сам MACD-показатель. Формула вычисления случайного показателя %K:

%K = (текущая цена закрытия - минимальная цена за N дней) / (максимальная цена за N дней - минимальная цена за N дней) * 100

Случайный индикатор отражает изменения цены акции от недавнего диапазона. Колебания в диапазоне %K от 20 до 80 означают, что цена акции находится в скорректированном диапазоне. Когда %K пересекает линию 20 снизу вверх, это сигнал для покупки.

Эта стратегия объединяет торговый сигнал MACD и случайный индикатор %K для торгов на криптовалютном рынке. Вызывает сигнал покупки, когда случайный индикатор %K пересекает 20 вверх, и сигнал продажи, когда случайный индикатор %K пересекает 80 вниз.

Стратегические преимущества

Эта стратегия, объединенная с анализом тенденций и индикаторами перекупа и перепродажи, позволяет эффективно идентифицировать важные переломные моменты на рынке. По сравнению с использованием MACD или случайных индикаторов, комбинация %K и MACD может повысить надежность сигнала и уменьшить количество ложных сигналов.

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

Риски и решения

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

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

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

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

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

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

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

Эта стратегия, в сочетании с MACD-индикатором и случайным индикатором %K, использует метод взаимной проверки сигналов обоих показателей для разработки стратегии торговли криптовалютой. Такая стратегия комбинированных показателей может в некоторой степени повысить точность сигналов. Но мы также должны быть осторожны с возможными эффектами шума и отставания, которые могут быть вызваны слишком сложными комбинациями показателей.

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

//@version=3
strategy("Schaff Trend Cycle Strategy", shorttitle="STC Backtest", overlay=true)

fastLength = input(title="MACD Fast Length",  defval=23)
slowLength = input(title="MACD Slow Length",  defval=50)
cycleLength = input(title="Cycle Length",  defval=10)
d1Length = input(title="1st %D Length",  defval=3)
d2Length = input(title="2nd %D Length",  defval=3)
src = input(title="Source", defval=close)
highlightBreakouts = input(title="Highlight Breakouts ?", type=bool, defval=true)

macd = ema(src, fastLength) - ema(src, slowLength)
k = nz(fixnan(stoch(macd, macd, macd, cycleLength)))
d = ema(k, d1Length)
kd = nz(fixnan(stoch(d, d, d, cycleLength)))

stc = ema(kd, d2Length)
stc := 	stc > 100 ? 100 : stc < 0 ? 0 : stc

upper = input(75, defval=75)
lower = input(25, defval=25)

long =  crossover(stc, lower) ? lower : na
short = crossunder(stc, upper) ? upper : na

long_filt = long and not short
short_filt = short and not long

prev = 0
prev := long_filt ? 1 : short_filt ? -1 : prev[1]

long_final = long_filt and prev[1] == -1
short_final = short_filt and prev[1] == 1

//alertcondition(long_final, "Long", message="Long")
//alertcondition(short_final,"Short", message="Short")

//plotshape(long_final, style=shape.arrowup, text="Long", color=green, location=location.belowbar)
//plotshape(short_final, style=shape.arrowdown, text="Short", color=red, location=location.abovebar)

strategy.entry("long", strategy.long, when = long )
strategy.entry("short", strategy.short, when = short)