
Эта стратегия, в сочетании с подвижными средними, измеренными и шокирующими показателями, образует тройной фильтр, предназначенный для захвата средне-коротких трендов и получения лучшей прибыли в трендовых ситуациях.
Стратегия состоит из трех основных частей:
Тренд-фильтр построен с использованием 20-дневных и 60-дневных скользящих средних индексов. При прохождении долгосрочных скользящих средних над краткосрочными скользящими средними формируется сигнал покупки; при прохождении долгосрочных скользящих средних ниже краткосрочных скользящих средних формируется сигнал продажи.
Для определения направления денежных потоков используйте количественный показатель, рассчитанный на объем сделок, разделенный на объем сделок. Повышение количества указывает на чистый приток денежных средств, а снижение количества указывает на чистый отток денежных средств. Количественный показатель является многомерным преобразованием, которое может служить сигналом об обратном тренде.
Используйте 20-дневный Donchian Channel Width для вычисления параметров буринской полосы, чтобы сформировать восходящую и нисходящую орбиту. Когда цена приближается к восходящей полосе, это указывает на возможное давление на обратный курс; когда цена приближается к нисходящей полосе, это указывает на возможное возможное подъемное отскок.
Комбинируя эти три части, построить многопространственную стратегию, чтобы уловить короткую линию тренда. Когда краткосрочные движущиеся средние пересекают долгосрочную движущуюся среднюю, и количественный ценовой индикатор находится в тенденции к росту, цена только что вышла из трассы Бринского пояса, образуется сигнал покупки; когда краткосрочные движущиеся средние пересекают долгосрочную движущуюся среднюю, и количественный ценовой индикатор находится в тенденции к снижению, цена только что вышла из трассы Бринского пояса, образуется сигнал продажи.
Эта стратегия имеет следующие преимущества:
Трехмерная фильтрация эффективно предотвращает ложные прорывы.
В то же время, учитывая тенденции, движение капитала и перекуп, сигналы становятся более надежными.
Параметры показателя оптимизированы для различных циклов и разновидностей.
Выводы контролируемы, доходы стабильны.
Логика понятна и понятна, параметры могут быть изменены.
Однако эта стратегия также несет в себе некоторые риски:
Риск изменения тренда. Когда рынок меняет тренд, это может привести к остановке.
Отсталость в количественном и ценовом показателях. Отсталость в количественном и ценовом показателях может привести к изменению цены, что может привести к пропуску точек купли-продажи.
Трудность корректировки параметров. Различные сорта и периоды требуют корректировки параметров, иначе эффект может быть плохим.
Контроль вывода должен быть улучшен. Контроль вывода может быть дополнительно оптимизирован с помощью динамического остановки убытков или управления позицией.
Эта стратегия может быть оптимизирована в следующих аспектах:
Добавление стратегии остановки убытков, дополнительный контроль отмены путем перемещения остановки, отслеживания остановки убытков и т. Д.
Добавление модуля управления позициями, изменение размеров позиций в соответствии с динамикой волатильности рынка.
Оптимизация параметров показателя для поиска оптимального сочетания параметров в различных циклах разновидностей.
Повышение точности сигналов с помощью машинного обучения.
Вместе с эмоциональными показателями, новостной лентой и другими элементами повышается оценка внезапных событий.
Стратегия использует в своем составе движущиеся средние, метрические и буринские индикаторы, чтобы лучше отслеживать тенденции на коротких и средних линиях. Более эффективная стратегия может быть достигнута путем дальнейшей оптимизации стоп-лосса, управления позициями и выбора параметров. Логика стратегии ясна и понятна, индикаторы и параметры могут быть скорректированы в соответствии с различными потребностями и обладают большой гибкостью.
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 29/04/2019
// This is combo strategies for get
// a cumulative signal. Result signal will return 1 if two strategies
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
// The strategy sells at market, if close price is lower than the previous close price
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Secon strategy
// The Average Directional Movement Index Rating (ADXR) measures the strength
// of the Average Directional Movement Index (ADX). It's calculated by taking
// the average of the current ADX and the ADX from one time period before
// (time periods can vary, but the most typical period used is 14 days).
// Like the ADX, the ADXR ranges from values of 0 to 100 and reflects strengthening
// and weakening trends. However, because it represents an average of ADX, values
// don't fluctuate as dramatically and some analysts believe the indicator helps
// better display trends in volatile markets.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
vFast = sma(stoch(close, high, low, Length), KSmoothing)
vSlow = sma(vFast, DLength)
pos = 0.0
pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0)))
pos
fADX(Len) =>
up = change(high)
down = -change(low)
trur = rma(tr, Len)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur)
sum = plus + minus
100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len)
ADXR(LengthADX, LengthADXR, Signal1, Signal2) =>
xADX = fADX(LengthADX)
xADXR = (xADX + xADX[LengthADXR]) / 2
pos = 0.0
pos := iff(xADXR < Signal1, 1,
iff(xADXR > Signal2, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal and Average Directional Movement Index Rating", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
LengthADX = input(title="Length ADX", defval=14)
LengthADXR = input(title="Length ADXR", defval=14)
Signal1 = input(13, step=0.01)
Signal2 = input(45, step=0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posADXR = ADXR(LengthADX, LengthADXR, Signal1, Signal2 )
pos = iff(posReversal123 == 1 and posADXR == 1 , 1,
iff(posReversal123 == -1 and posADXR == -1, -1, 0))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
if (possig == 0)
strategy.close_all()
barcolor(possig == -1 ? red: possig == 1 ? green : blue )