Эта стратегия использует в сочетании с использованием двойной равновесной линии, относительно сильного индикатора ((RSI) и парализованного индикатора ((PSAR), чтобы осуществить суждение о ценовом обратном пункте, совершить покупку и продажу операций в момент возникновения обратной точки, относятся к стратегии обратной торговли.
Эта стратегия использует следующие технические показатели для определения точек обратного курса:
Двойная средняя линия: рассчитывается средняя линия быстрого движения ((MA быстрого движения) и средняя линия медленного движения ((MA медленного движения)). Когда быстрое движение проходит через медленную линию, рассматривается как многоголовый рынок, делается больше; когда быстрое движение проходит через медленную линию, рассматривается как пустой рынок, делается пустое.
RSI: RSI определяет состояние перекупа и перепродажи, рассчитывая средний рост и уменьшение закрытия за определенный период времени. RSI больше 70 является зоной перекупа, меньше 30 - зоной перепродажи.
PSAR: параллельная линия SAR указывает на направление тренда. Ниже точки SAR находится рынок с большим количеством точек, а выше - рынок с пустыми точками.
Индикатор ADX: ADX определяет силу тренда, рассчитывая направленную силу изменения цены. Значение ADX больше 20 указывает на тенденцию, меньше 20 - на свертывание.
Логика сигналов покупки и продажи по этим показателям выглядит следующим образом:
Сигналы покупки: на быстрой линии через медленную, RSI меньше 30 ((оперебойная зона), точка SAR выше цены, ADX больше 20, сигнал покупки.
Сигналы продажи: быстрый вниз, медленный вниз, RSI больше 70 (в зоне сверхпокупок), точка SAR ниже цены, ADX больше 20 - сигналы продажи.
При появлении сигнала покупки и продажи, создавайте позиции на 10% и пустые позиции соответственно.
Используя двойную равномерную линию для определения направления большого тренда, добавляя такие показатели, как RSI и SAR, чтобы устранить ошибочные сигналы, можно более точно определить точку переворота.
Используйте различные комбинации показателей, чтобы избежать ошибочных сигналов, вызванных одним техническим показателем.
Установка стоп-убытков позволяет эффективно контролировать риски.
Стратегические действия просты, понятны и просты в реализации.
Эта стратегия может применяться в различных ситуациях, в зависимости от того, что происходит на рынке.
При создании пустого сигнала двойной равнолинейной линии может возникнуть ложный прорыв, который необходимо оценить в сочетании с другими показателями. Можно соответствующим образом увеличить цикл равнолинейной линии или добавить показатель Бринского пояса, чтобы оценить подлинность прорыва.
RSI может привести к ошибке в параметрах. Следует соответствующим образом скорректировать RSI параметры, а также добавить другие показатели, подтверждающие сигнал RSI.
При значении ADX ниже 20, следует приостановить торговлю, чтобы избежать обратной торговли в безнаправленном рынке. Или соответствующим образом снизить циклические параметры ADX.
SetStringry имеет слишком маленький стоп, что может привести к ненужным потерям. Стоп следует устанавливать разумно в зависимости от степени волатильности рынка.
Частота сделок может быть слишком высокой, и можно соответствующим образом регулировать биопсимиальный цикл, чтобы снизить частоту сделок.
Тестирование среднелинейных комбинаций различных длинных циклов для поиска оптимальных параметров.
Тестирование различных параметров RSI для оптимизации суждений о перекупке.
Попробуйте добавить другие показатели, такие как BRI, KDJ и т. д., чтобы обогатить логику оценки сигналов купли-продажи.
Динамические механизмы остановки убытков в зависимости от разных сортов и рыночных условий.
Добавление стратегии управления позициями, позволяющей прибыли лучше отслеживать тенденции.
Тестируйте различные параметры ADX, чтобы найти наилучшие значения для определения силы тренда.
Добавлен модуль автоматического остановки убытков, позволяющий стратегии автоматически останавливать убытки.
Эта стратегия использует двойную равномерную линию для определения большого направления, в сочетании с RSI, SAR и другими показателями для фильтрации обратного сигнала, после установки параметров оптимизации можно эффективно определить точку обратного направления цены, чтобы захватить тенденцию до и после обратного направления. В реальном положении следует обратить внимание на контроль риска, разумно установить стоп-лосс, и продолжить оптимизацию параметров, чтобы стратегия была более стабильной и прибыльной. В целом, эта стратегия в сочетании с перекрестными показателями, четко продуманная и простая в использовании, является надежной стратегией обратного торговли.
/*backtest
start: 2023-10-10 00:00:00
end: 2023-11-09 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//Based on Senpai BO 3
strategy(title="Senpai_Strat_3", shorttitle="Senpai_Strat_3", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
src = close
//psar
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
psar = sar(start, increment, maximum)
//ADX Init
adxlen = input(30, title="ADX Smoothing")
dilen = input(30, title="DI Length")
dirmov(len) =>
up = change(high)
down = -change(low)
truerange = rma(tr, len)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
[adx, plus, minus]
[sig, up, down] = adx(dilen, adxlen)
// BB Init
source = close
length = input(50, minval=1)
mult = input(0.5, title="Mult Factor", minval=0.001, maxval=50)
alertLevel=input(0.1)
impulseLevel=input(0.75)
showRange = input(false, type=bool)
//RSI CODE
up1 = rma(max(change(src), 0), 14)
down1 = rma(-min(change(src), 0), 14)
rsi = down1 == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up1 / down1))
//BB CODE
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
bbr = source>upper?(((source-upper)/(upper-lower))/10): source<lower?(((source-lower)/(upper-lower))/10) : 0.05
bbi = bbr - nz(bbr[1])
//////////////////// Algo
//if (rsi>50 and n1>n2)
//strategy.exit("Close", "Short")
// strategy.entry("Long", strategy.long)
//if (rsi<50 and n2>n1)
//strategy.exit("Close", "Long")
// strategy.entry("Short", strategy.short)
//col = ma30 > ma50 > ma200 and rsi <=53?lime: ma50 < ma200 and rsi >= 60?red : silver
//short1 = sig<18.5 and high>=upper and rsi>=70 and psar<close = 100%
//long1 = sig<18.5 and low<=lower and rsi<=30 and psar>close = 100%
short1 = sig<18.5 and high>=upper and rsi>=70 and psar<close
long1 = sig<18.5 and low<=lower and rsi<=30 and psar>close
//Entry
long = long1[1] == 0 and long1 == 1
short = short1[1] == 0 and short1 == 1
longclose = long[3] == 1
shortclose = short[3] == 1
strategy.entry("short", strategy.short,qty = 10, when=short)
strategy.entry("long", strategy.long,qty=10, when=long)
strategy.close("long",when=longclose)
strategy.close("short",when=shortclose)
/////////////////////
///PLOT
plot(long,"long",color=green,linewidth=1)
plot(short,"short",color=red,linewidth=1)
plot(longclose,"close",color=blue,linewidth=1)
plot(shortclose,"close",color=orange,linewidth=1)
//plot(short,"short",color=red,linewidth=1)
//
//strategy.exit(id="long",qty = 100000,when=longclose)
//strategy.exit(id="short",qty = 100000,when=shortclose)
//strategy.exit(id="Stop", profit = 20, loss = 100)