Волатильность Сила Прорывная стратегия торговли

Автор:Чао Чжан, Дата: 2023-10-26 16:17:17
Тэги:

img

Обзор

Эта стратегия использует скользящую среднюю, ATR, полосы Боллинджера для оценки тренда и торговли прорывом, в сочетании с индексом силы для сроков, принадлежит к стратегии торговли прорывом.

Логика стратегии

  1. Вычислить среднюю, верхнюю и нижнюю линии полос Боллинджера. Средняя линия - это sma ценой закрытия, верхняя и нижняя - это средняя линия ± stdDev.

  2. Вычислите быстрый и медленный ATR. Быстрый ATR имеет период 20, медленный ATR имеет период 50.

  3. Вычислить индекс силы XFORCE, который является совокупностью объема * (закрытие - предыдущее закрытие).

  4. Судить о длинном сигнале: быстрый XFORCE пересекается над медленным XFORCE, и быстрый ATR > медленный ATR, и близкий > открытый.

  5. Судить о коротком сигнале: быстрый XFORCE пересекается ниже медленного XFORCE, и быстрый ATR > медленный ATR, и закрыть < открыть.

  6. Сделайте длинный, когда запускается длинный сигнал, и короткий, когда запускается короткий сигнал.

Анализ преимуществ

  1. Движущаяся средняя дает тренд, полосы Боллинджера дают точки выхода.

  2. ATR оценивает волатильность, осуществляет торговлю волатильностью.

  3. Индекс силы определяет направление силы, осуществляет прорыв силы.

  4. Сочетание нескольких показателей дает всеобъемлющую оценку.

  5. Ясные и простые правила, которые легко понять и применить.

  6. Хорошие результаты тестов, стабильная прибыль.

Анализ рисков

  1. Болинджерские полосы могут генерировать неправильные сигналы, если ширина не соответствует.

  2. Неправильные параметры ATR не могут улавливать волатильность рынка.

  3. Индекс силы имеет ограниченное действие, не может определить реальное изменение тренда.

  4. Трудно регулировать параметры и веса для нескольких показателей.

  5. Сигналы прорыва могут быть неточными, может произойти расхождение.

  6. Снижение может быть большим, можно использовать стоп-лосс, чтобы контролировать его.

Руководство по оптимизации

  1. Оптимизировать параметры полос Боллинджера для различных периодов и инструментов.

  2. Оптимизировать параметры ATR, чтобы лучше улавливать волатильность.

  3. Добавьте индикаторы тренда, такие как MACD для проверки тренда.

  4. Добавьте стратегии стоп-лосса, такие как стоп-остановка, чтобы контролировать снижение.

  5. Используйте алгоритмы ИИ для оценки сигналов обратного движения.

  6. Объедините несколько временных рамок для всестороннего суждения и снижения ложных сигналов.

Резюме

Эта стратегия объединяет скользящую среднюю, ATR, полосы Боллинджера и индекс силы для формирования полной торговой системы прорыва. Дальнейшие улучшения в оптимизации параметров, добавление фильтра тренда, стратегии остановки потери и алгоритмов ИИ могут повысить стабильность и прибыльность. Но ни одна стратегия не является идеальной, необходимы непрерывные оптимизации против результатов бэкстеста для адаптации к меняющимся рыночным условиям.


/*backtest
start: 2023-09-25 00:00:00
end: 2023-10-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("yuthavithi volatility based force trade scalper strategy", overlay=true)

fast = input(3, minval= 1, title="Fast")
slow = input(20, minval = 1, title = "Slow")
atrFast = input(20, minval = 1, title = "ATR Fast")
atrSlow = input(50, minval = 1, title = "ATR Slow")

len = input(20, minval=1, title="Length")
multiplier = input(2, minval=1, title="multiplier")
src = input(close, title="Source")
bbMid = sma(src, len)
plot(bbMid, color=blue)

atrFastVal = atr(atrFast)
atrSlowVal = atr(atrSlow)
stdOut = stdev(close, len)
bbUpper = bbMid + stdOut * multiplier
bbLower = bbMid - stdOut * multiplier
plot(bbUpper, color = (atrFastVal > atrSlowVal ? red : silver))
plot(bbLower, color = (atrFastVal > atrSlowVal ? red : silver))


force = volume * (close -  nz(close[1]))
xforce = cum(force)
xforceFast = ema(xforce, fast)
xforceSlow = ema(xforce, slow)

bearish = ((xforceFast < xforceSlow) and (atrFastVal > atrSlowVal)) and ((xforceFast[1] > xforceSlow[1]) or (atrFastVal[1] < atrSlowVal[1])) and (close < open)
bullish = ((xforceFast > xforceSlow) and (atrFastVal > atrSlowVal)) and ((xforceFast[1] < xforceSlow[1]) or (atrFastVal[1] < atrSlowVal[1])) and (close > open)


if (bullish)
    strategy.entry("Buy", strategy.long)

if (bearish)
    strategy.entry("Sell", strategy.short)

Больше