
Трейдинг-стратегия MACD Dynamic StochRSI - это количественная торговая стратегия, использующая три показателя MACD, Dynamic и StochRSI для оценки. Эта стратегия применяется в основном для торговли солнечными линиями в биткоине и эфириуме.
В этой стратегии используются следующие ключевые показатели:
MACD: быстрый SMA цикл 50, медленный SMA цикл 200, представляет собой 50-дневную и 200-дневную линии, которые часто используются на рынке. Этот индикатор определяет долгосрочные тенденции рынка.
Самодельный динамический индикатор: по сути похож на индикатор Стоха, используемый для определения краткосрочной динамики рынка.
StochRSI: оценка рыночной активности и перекупа и перепродажи.
При входе в многоголовый курс необходимо одновременно удовлетворить три условия: MACD> 0 (представляет собой среднесрочную тенденцию вверх), показатель собственной динамики> 0 (представляет собой краткосрочную динамику вверх) и цена закрытия, повышенная за день до закрытия (представляет собой текущую тенденцию вверх).
Плановый многоголовый сигнал является более сложным, требуя одновременного удовлетворения 4 условий: MACD < 0, индекс автокреативности < 0, закрытие цены за день до снижения и StochRSI > 20.
Стратегия, которая анализирует среднесрочные и долгосрочные тенденции, краткосрочную динамику и текущие тенденции, представляет собой более устойчивую прорывную систему.
Необходимо использовать комплексные методы оценки, чтобы избежать ложных сигналов.
Параметры MACD выбраны с учетом 50- и 200-дневных линий, которые важны для рынка
После изменения параметров тестирования показателей эффективность стратегии не сильно изменилась, избежав риска перенастройки
Отслеживаемые данные являются достаточно надежными.
Системы взлома подвержены арбитражу, что может привести к увеличению количества сделок и стоимости просчетов.
Высокая сложность комплексного многопоказательного суждения, большая сложность корректировки и оптимизации параметров
Опасность использования коротких линий в дневное время
Вместе с другими показателями, такими как анализ объемов торгов
Добавление алгоритмов машинного обучения для оптимизации динамических параметров
Снижение частоты торгов, переход на более высокий цикл для суждения
Месячный флаг MACD динамика StochRSI Trading Strategy включает в себя множество показателей, определяющих тенденции и интенсивность рынка, имеет хорошую обратную эффективность, высокую надежность и подходит для применения и оптимизации опытных количественных трейдеров на высококачественных цифровых валютах.
/*backtest
start: 2023-02-16 00:00:00
end: 2024-02-22 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/
// // © MoonFlag
//@version=5
strategy("MoonFlag 1D MACD Momentum StochRSI Strategy", max_bars_back=500, overlay=false, initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=80, pyramiding=0, calc_on_order_fills=true)
d(gaps_1, data)=>
float out = 0.
out :=(ta.wma(ta.wma(ta.wma(data, math.round(((1 * gaps_1) - math.round((1 * gaps_1) / 3)) / 2)), math.round((1 * gaps_1) / 3)) , int(((1 * gaps_1) - math.round((1 * gaps_1) / 3)) / 2)))
out
MoonFlagAverage(gaps_1,data)=>
float out = 0.
out:=d(gaps_1,d(gaps_1, d(gaps_1, data)))
out
fastLength = input.int(50, "MACD SMA Fast Length")
slowlength = input.int(200, "MACD SMA Slow Length")
MACDLength = 9//input.int(9, "MACD Length")
MACD = ta.ema(close, fastLength) - ta.ema(close, slowlength)
aMACD = ta.sma(MACD, MACDLength)
MACDdelta = MACD - aMACD
//plot (MACD, "MACD1", color.red)
//plot (aMACD, "aMACD1", color.green)
//plot (delta, "MACD delta", color.white)
fastLength2 = input.int(12, "MoonFlag Momentum Length")
slowlength2 = 2*fastLength2//input.int(50, "MoonFlag Momentum Slow Length")
MACDLength2 = 20//input.int(20, "Momentum Delta")
MoonFlag_MACD2 = MoonFlagAverage(fastLength2, close) - MoonFlagAverage(slowlength2,close)
MoonFlag_aMACD2 = MoonFlagAverage(MACDLength2, MoonFlag_MACD2)
MoonFlag_delta = MoonFlag_MACD2 - MoonFlag_aMACD2
MoonFlag_delta_line=0
if MoonFlag_delta < 0
MoonFlag_delta_line:=-100
else
MoonFlag_delta_line:=100
//plot (MoonFlag_MACD2, "MoonFlag Momentum Fast Length", color.red)
//plot (MoonFlag_aMACD2, "MoonFlag Momentum Slow Length", color.green)
//plot (MoonFlag_delta2, "MoonFlag Delta", color.white)
uptrend = (close + high)/(close[1] + high[1])
downtrend = (close + low)/(close[1] + low[1])
lineColor = color.green
if uptrend > 1
lineColor := color.green
if downtrend < 1
lineColor := color.red
smoothK = 2//input.int(2, minval=1, title="K smoothing Stoch RSI")
smoothD = 3//input.int(3, minval=1, title= "D smoothing for Stoch RSI")
lengthRSI = 7//input.int(7, minval=1, title="RSI Length")
lengthStoch = 8//input.int(8, minval=1, title="Stochastic Length")
src = close//input(close, title="RSI Source")
rsi1 = ta.rsi(src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
StochRSI = ta.sma(k, smoothD)
MACDdirection_line = 0
MACDdirection_line := MACDdirection_line[1]
if (MACDdelta > 0)
MACDdirection_line := 50
if (MACDdelta < 0)
MACDdirection_line := -50
useStochRSI = input.bool(true,"Include Condition (StochRSI > 20) with Exit Long/Enter Short")
StochRSI_val = 20//input.int(20,"StochRSI greater than to exit short")
h1 = hline(StochRSI_val)
StochRSIGreaterThanSetValue = true
if useStochRSI
if (StochRSI > StochRSI_val)
StochRSIGreaterThanSetValue := true
else
StochRSIGreaterThanSetValue := false
stoch20 = lineColor
if StochRSI < StochRSI_val
stoch20 := color.white
yearin = input.int(2019, title="Start backtesting from year:")
includeShorts = false//input.bool(false, "Include Shorts")
plot(MoonFlag_delta_line,"MoonFlag Momentum Direction", color.white)
plot(MACDdirection_line,"MACD Direction", color = color.orange)
plot(StochRSI, "StochRSI", color=lineColor)
if (year>=yearin)
if (MACDdelta > 0) and (uptrend > 1) and MoonFlag_delta_line > 0
strategy.entry("buy2", strategy.long, comment="buy")
if (MACDdelta < 0) and (downtrend < 1) and MoonFlag_delta_line < 0 and StochRSIGreaterThanSetValue
if includeShorts
strategy.entry("sell", strategy.short, comment="sell")
else
strategy.close("buy2", comment = "sell")