Стратегии покупки и продажи точек, основанные на последовательных прорывах и откатах TD


Дата создания: 2024-04-01 11:23:26 Последнее изменение: 2024-04-01 11:23:26
Копировать: 3 Количество просмотров: 755
1
Подписаться
1617
Подписчики

Стратегии покупки и продажи точек, основанные на последовательных прорывах и откатах TD

Обзор

Эта стратегия является стратегией, основанной на последовательности TD, для прорыва и отмены точек купли-продажи. Она определяет потенциальные точки обратного тренда, идентифицируя 8-ю и 9-ю коренные линии K в последовательности TD. В то же время, стратегия учитывает отступ после прорыва последовательности TD, чтобы повысить точность входных точек. Кроме того, стратегия использует подвижные средние как вспомогательный инструмент для определения тренда.

Стратегический принцип

  1. Вычислить последовательность TD: сравнив текущую цену закрытия с ценой закрытия до 4 K-линий, чтобы определить, появилась ли последовательная линия K с 8 или 9 восходящих (уходящих) K-линий.
  2. Определить точки купли-продажи: когда появляются 8 или 9 последовательных K-линий (вверх и вниз), отметьте потенциальную точку продажи (вверх и вниз) на 8 или 9 линии K.
  3. Рассмотрение отступления: наблюдается ли отступление после прорыва последовательности TD. Если прорыв остается на линии 13, 14, 15 или 16 K, то прорыв считается действительным, в противном случае считается недействительным.
  4. Определение тренда: использование 10-дневных и 20-дневных скользящих средних для определения текущего направления тренда в качестве ориентира для принятия решений о покупке или продаже.

Стратегические преимущества

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

Стратегический риск

  1. В условиях волатильности рынка в серии TD может быть больше ложных сигналов, что приводит к частым сделкам и потерем средств.
  2. Эта стратегия чувствительна к выбору параметров, которые могут потребовать оптимизации и корректировки в различных рыночных условиях.
  3. При отсутствии четкого механизма остановки убытков в стратегии может возникнуть большой риск вывода при резких колебаниях на рынке.

Направление оптимизации стратегии

  1. Введение большего количества технических показателей, таких как RSI, MACD и т.д., для повышения надежности сигналов и эффективности фильтрации.
  2. Для отступления после прорыва серии TD можно рассмотреть возможность введения более гибких критериев суждения, таких как использование показателей, таких как ATR, для динамической корректировки толерантности отступления.
  3. Для определения тенденций можно попробовать использовать больше комбинаций временных периодов, таких как отношения между короткими, средне- и долгосрочными движущимися средними, чтобы получить более полное определение тенденций.
  4. Введение четких механизмов остановки, таких как динамическая остановка на основе ATR, для контроля максимального убытка от одной сделки.

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

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

Исходный код стратегии
/*backtest
start: 2023-03-26 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Dipak Shankarrao Chavhan", shorttitle="Dipak Chavhan", overlay=true, pyramiding=0, default_qty_value=10)
Numbers = input(true)
SR = input(true)

var int TD = 0
var int TS = 0
var int TDUp = 0
var int TDDn = 0

TD := close > close[4] ? TD[1] + 1 : 0
TS := close < close[4] ? TS[1] + 1 : 0
TDUp := TD - valuewhen(TD < TD[1], TD, 1)
TDDn := TS - valuewhen(TS < TS[1], TS, 1)

plotshape(Numbers ? (TDUp == 8 ? true : na) : na, style=shape.triangleup, text="8", color=color.new(color.green, 0), location=location.belowbar)
plotshape(Numbers ? (TDUp == 9 ? true : na) : na, style=shape.triangleup, text="9", color=color.new(color.green, 0), location=location.belowbar)
plotshape(Numbers ? (TDDn == 8 ? true : na) : na, style=shape.triangledown, text="8", color=color.new(color.red, 0), location=location.abovebar)
plotshape(Numbers ? (TDDn == 9 ? true : na) : na, style=shape.triangledown, text="9", color=color.new(color.red, 0), location=location.abovebar)

priceflip = barssince(close < close[4])
sellsetup = close > close[4] and priceflip
sell = sellsetup and barssince(priceflip != 9)
sellovershoot = sellsetup and barssince(priceflip != 13)
sellovershoot1 = sellsetup and barssince(priceflip != 14)
sellovershoot2 = sellsetup and barssince(priceflip != 15)
sellovershoot3 = sellsetup and barssince(priceflip != 16)
priceflip1 = barssince(close > close[4])
buysetup = close < close[4] and priceflip1
buy = buysetup and barssince(priceflip1 != 9)
buyovershoot = buysetup and barssince(priceflip1 != 13)
buyovershoot1 = buysetup and barssince(priceflip1 != 14)
buyovershoot2 = buysetup and barssince(priceflip1 != 15)
buyovershoot3 = buysetup and barssince(priceflip1 != 16)
TDbuyh = valuewhen(buy, high, 0)
TDbuyl = valuewhen(buy, low, 0)
TDsellh = valuewhen(sell, high, 0)
TDselll = valuewhen(sell, low, 0)
plot(SR ? (TDbuyh ? TDbuyl : na) : na, style=plot.style_circles, linewidth=2, color=color.red)
plot(SR ? (TDselll ? TDsellh : na) : na, style=plot.style_circles, linewidth=2, color=color.lime)

sma1 = sma(close, 10)
sma2 = sma(close, 20)



if TDbuyh
    strategy.entry("Enter Long", strategy.long)
else if TDselll
    strategy.entry("Enter Short", strategy.short)