Стратегия разворота паттерна «Двойная тень»


Дата создания: 2023-11-07 17:00:52 Последнее изменение: 2023-11-07 17:00:52
Копировать: 1 Количество просмотров: 664
1
Подписаться
1617
Подписчики

Стратегия разворота паттерна «Двойная тень»

Обзор

Двойная теневая форма обратной стратегии - это стратегия торговли короткой линией, основанная на K-линии. Эта стратегия определяет возможные возможности для обратной стратегии, идентифицируя специальные K-линии, в которых нет ни одной теневой линии на двух последовательных K-линиях. Преимущества стратегии просты и просты в реализации, но в то же время существуют определенные риски, о которых следует помнить.

Принципы

Центральная логика этой стратегии заключается в том, чтобы идентифицировать двустворчатость. В частности, стратегия определяет, удовлетворяет ли текущая линия K условию, что открытая цена равна минимальной цене, а закрытая цена равна максимальной цене, то есть нет нижней и верхней линии, которая называется теневой. Если предыдущая линия K также удовлетворяет этому условию, считается, что появились две последовательные линии тени, то есть двустворчатость.

Согласно теории технического анализа, такая двойная тень обычно предвещает приближение реверсии текущего тренда. Поскольку два последовательных K-линия цен колеблются в узком диапазоне, это указывает на то, что силы покупателей и продавцов сближаются, что предвещает возможность реверсии.

Определяя двойную тень, стратегия вступает в позицию плюс или минус по цене закрытия при открытии следующего K-линия. И выходит из позиции после установленного количества бар.

Преимущества

  • Стратегическая мысль ясна и понятна, формальность проста и легко реализуема.

  • С помощью классического обращения двойных теней, с определенным основанием для технического анализа.

  • Невысокая частота операций способствует снижению затрат и рисков.

  • Удобство добавления функций обратной связи и оптимизации параметров.

Риск

  • Формальные сделки зависят от статистической вероятности исторических графиков и не могут полностью избежать отклонения.

  • Несмотря на то, что двойные тени предвещают обратное, обратное не обязательно произойдет или будет поддерживаться.

  • Установление фиксированного интервала остановок затрудняет быстрое выполнение задач.

  • Если вы видите только одну или две линии K, это может привести к слишком радикальному вступлению в игру.

Оптимизация

  • Это может быть связано с трендовыми показателями, чтобы избежать обратных операций.

  • По возможности, вы можете войти в систему “Wait for Confirm” и ждать сигнала обратного подтверждения.

  • Прекращение прибыли и убытка может быть определено в зависимости от динамических настроек ATR, а не от фиксированного числа дней.

  • При помощи машинного обучения можно определить, какая форма двойной тени является более надежной.

Подвести итог

Стратегия двойного отклонения теней использует классическую концепцию форм-трейдинга, ее концепция проста и интуитивно понятна, она подходит как для начинающих, так и для использования в качестве одного из модулей робота. Однако необходимо обратить внимание на контроль риска, который можно улучшить путем оптимизации времени входа в игру и метода остановки. В целом, преимущества и недостатки этой стратегии достаточно очевидны и могут быть использованы в качестве ориентира.

Исходный код стратегии
/*backtest
start: 2023-10-30 00:00:00
end: 2023-11-06 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("No Shadow Candles", overlay=true)

//set inputs
bars_until_close_trade = input(1,"Bars Until Close", minval = 1)
backtest_option = input(true,"Backtest on Twice alert?", bool)

//set conditions
up = close > close[1] and low >= open and high <= close
down = close < close[1] and low >= close and high <= open

up2 = (close > close[1] and low >= open and high <= close) and (close[1] > close[2] and low[1] >= open[1] and high[1] <= close[1])
down2 = (close < close[1] and low >= close and high <= open) and (close[1] < close[2] and low[1] >= close[1] and high[1] <= open[1])

close_trade = barssince(up or down) == bars_until_close_trade
close_trade2 = barssince(up2 or down2) == bars_until_close_trade

//plot indicators
plotshape(up,"Up Marker", shape.triangleup, location.belowbar, color = olive, size = size.tiny, transp = 50)
plotshape(down,"Down Marker", shape.triangledown, location.abovebar, color = orange, size = size.tiny, transp = 50)
plotshape(up2,"Up Twice Marker", shape.triangleup, location.belowbar, color = white, size = size.small)
plotshape(down2,"Down Twice Marker", shape.triangledown, location.abovebar, color = white, size = size.small)
plotshape(close_trade,"Close Trigger", shape.circle, location.belowbar, color = fuchsia, size = size.tiny, transp = 50)
plotshape(close_trade2,"Close Trigger2 (After Twice Alert)", shape.circle, location.belowbar, color = red, size = size.small)

//Strategy Testing


// Component Code Start
// Example usage:
// if testPeriod()
//   strategy.entry("LE", strategy.long)
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(7, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Code Stop

//Entry and Close settings
if testPeriod() and backtest_option == true
    strategy.entry("up2", true, when = up2, limit = close)
    strategy.close("up2", when = close_trade)

if testPeriod() and backtest_option == false
    strategy.entry("up", true,  when = up, limit = close)
    strategy.close("up", when = close_trade)