
Эта стратегия используется для определения ценовых тенденций путем вычисления быстрых и медленных движущихся средних и MACD-индикаторов, создания торгового сигнала Gold Fork Dead Fork и блокирования прибыли в сочетании со стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп.
Стратегия построена на основе трех основных показателей:
Во-первых, вычислить быстрое движение средних и двух медленно движущихся средних. При прохождении двух медленно движущихся средних через быстрое движение средних генерируется сигнал покупки. При прохождении двух медленно движущихся средних под быстрое движение средних генерируется сигнал продажи.
Во-вторых, рассчитывается индикатор 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)