Торговая стратегия Moon Flag MACD Momentum StochRSI


Дата создания: 2024-02-23 15:06:59 Последнее изменение: 2024-02-23 15:06:59
Копировать: 0 Количество просмотров: 584
1
Подписаться
1617
Подписчики

Торговая стратегия Moon Flag MACD Momentum StochRSI

Обзор

Трейдинг-стратегия MACD Dynamic StochRSI - это количественная торговая стратегия, использующая три показателя MACD, Dynamic и StochRSI для оценки. Эта стратегия применяется в основном для торговли солнечными линиями в биткоине и эфириуме.

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

В этой стратегии используются следующие ключевые показатели:

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

  2. Самодельный динамический индикатор: по сути похож на индикатор Стоха, используемый для определения краткосрочной динамики рынка.

  3. StochRSI: оценка рыночной активности и перекупа и перепродажи.

При входе в многоголовый курс необходимо одновременно удовлетворить три условия: MACD> 0 (представляет собой среднесрочную тенденцию вверх), показатель собственной динамики> 0 (представляет собой краткосрочную динамику вверх) и цена закрытия, повышенная за день до закрытия (представляет собой текущую тенденцию вверх).

Плановый многоголовый сигнал является более сложным, требуя одновременного удовлетворения 4 условий: MACD < 0, индекс автокреативности < 0, закрытие цены за день до снижения и StochRSI > 20.

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

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

  1. Необходимо использовать комплексные методы оценки, чтобы избежать ложных сигналов.

  2. Параметры MACD выбраны с учетом 50- и 200-дневных линий, которые важны для рынка

  3. После изменения параметров тестирования показателей эффективность стратегии не сильно изменилась, избежав риска перенастройки

  4. Отслеживаемые данные являются достаточно надежными.

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

  1. Системы взлома подвержены арбитражу, что может привести к увеличению количества сделок и стоимости просчетов.

  2. Высокая сложность комплексного многопоказательного суждения, большая сложность корректировки и оптимизации параметров

  3. Опасность использования коротких линий в дневное время

Оптимизация стратегии

  1. Вместе с другими показателями, такими как анализ объемов торгов

  2. Добавление алгоритмов машинного обучения для оптимизации динамических параметров

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

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

Месячный флаг 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")