Эта стратегия оценивает ценовую тенденцию с помощью расчета быстрой скользящей средней, медленной скользящей средней и индикатора MACD, и строит золотой крест и мертвый крест торговых сигналов.
Эта стратегия в основном строится на основе трех показателей.
Первое, это вычисляет быстрый скользящий средний и два медленно движущихся средних. Когда быстрый MA выходит выше двух медленных MA, генерируется сигнал покупки. Когда быстрый MA падает ниже двух медленных MA, генерируется сигнал продажи. Это судит о взаимосвязи между краткосрочными и долгосрочными тенденциями для реализации золотого креста и мертвого креста торговли.
Во-вторых, он рассчитывает индикатор MACD, включая линию MACD, линию сигнала и гистограмму. Когда гистограмма MACD > 0, это индикатор бычьего; когда гистограмма MACD < 0, это индикатор медвежьего. Это помогает судить о надежности сигналов золотого креста и мертвого креста.
Наконец, он включает в себя механизмы получения прибыли, остановки потери и отслеживания остановки потери.
Преимущества этой стратегии включают:
Существуют также некоторые риски:
Решения:
Стратегия также может быть оптимизирована в следующих аспектах:
В общем, это простая, но эффективная стратегия, которая использует золотой крест, мертвый крест и MACD для оценки тренда и реализации стоп-лосса. Преимущества - отслеживание тренда и блокировка прибыли с высокой настраиваемостью. Это универсальная стратегия оптимизации параметров, подходящая для разных торговых инструментов.
/*backtest start: 2023-12-14 00:00:00 end: 2023-12-21 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy('The Puria Method', shorttitle = 'Puria',overlay = true) //=== GENERAL INPUTS === // short ma maFastSource = input(defval = close, title = "Fast MA Source") maFastLength = input(defval = 5, title = "Fast MA Period", minval = 1) // long ma 1 maSlow1Source = input(defval = low, title = "Slow MA1 Source") maSlow1Length = input(defval = 85, title = "Slow MA Period", minval = 1) // long ma 2 maSlow2Source = input(defval = low, title = "Slow MA2 Source") maSlow2Length = input(defval = 75, title = "Slow MA Period", minval = 1) //macd macdFastLength = input(defval = 12, title = "Fast MACD Period", minval = 1) macdSlowLength = input(defval = 26, title = "Slow MACD Period", minval = 1) macdSmaLength = input(defval = 9, title = "SMA MACD Period", minval = 1) // the risk management inputs inpTakeProfit = input(defval = 30, title = "Take Profit", minval = 0) inpStopLoss = input(defval = 10, title = "Stop Loss", minval = 0) inpTrailStop = input(defval = 5, title = "Trailing Stop Loss", minval = 0) inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0) // if an input is less than 1, assuming not wanted so we assign 'na' value to disable it. useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na // === SERIES SETUP === maFast = ema(maFastSource, maFastLength) maSlow1 = wma(maSlow1Source, maSlow1Length) maSlow2 = wma(maSlow2Source, maSlow2Length) [_, signal, histLine] = macd(close, macdFastLength, macdSlowLength, macdSmaLength) // === PLOTTING === fast = plot(maFast, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50) slow1 = plot(maSlow1, title = "Slow MA1", color = red, linewidth = 2, style = line, transp = 50) slow2 = plot(maSlow2, title = "Slow MA2", color = red, linewidth = 2, style = line, transp = 50) // === LOGIC === signalUp = crossover(maFast, maSlow1) and crossover(maFast, maSlow2) and histLine > 0 signalDown = crossunder(maFast, maSlow1) and crossunder(maFast, maSlow2) and histLine < 0 // ===STRATEGY=== strategy.entry(id = "Long", long = true, when = signalUp) strategy.entry(id = "Short", long = false, when = signalDown) strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset) strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)