Стратегия прорыва силовой линии K


Дата создания: 2023-10-07 15:59:26 Последнее изменение: 2023-10-07 15:59:26
Копировать: 0 Количество просмотров: 632
1
Подписаться
1617
Подписчики

Обзор

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

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

Стратегия прорыва К-линии основана на следующих моментах:

  1. Используйте индекс товарного коридора (CCI) для определения того, находится ли акция в зоне перекупа. Когда CCI превышает 100, считается сигналом о перекупе, когда CCI превышает 100, считается сигналом о перепродаже.

  2. Оценить форму K-линии, чтобы определить сигнал прорыва. Красная K-линия, когда цена закрытия выше цены открытия, определяется как тенденция к росту, а зеленая K-линия, когда цена закрытия ниже цены открытия, определяется как тенденция к снижению.

  3. Комбинированные показатели объема торгов рассматриваются только в том случае, если объем торгов увеличивается.

  4. При выявлении восходящей тенденции и показывания перепродажи на показателях CCI, совершаются покупки. При выявлении нисходящей тенденции и показывания перекупа на показателях CCI, совершаются продажи.

  5. Установите стоп-стоп. После покупки установите определенный пропорциональный стоп-стоп для контроля риска снижения, а также установите определенный пропорциональный стоп-стоп для блокировки прибыли.

В частности, эта стратегия использует показатель CCI для определения перекупа, K-линии для определения направления тренда, объема. Если это возможно, выполняются операции longing (купка) или shorting (продажа) путем остановки убытков, чтобы контролировать риск и блокировать прибыль.

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

Стратегия прорыва K-линии имеет следующие преимущества:

  1. Для принятия решений используются различные индикаторы, что делает торговые сигналы более надежными. Индикатор CCI определяет точки купли-продажи, K-линия определяет направление тенденции, а объем отражает рыночные силы.

  2. Используя K-линию, чтобы помочь определить направление тренда, можно более точно уловить возможность обратного обхода цены. Например, красная K-линия в сочетании с CCI - это время покупки.

  3. Установка стоп-стоп-механизмов позволяет эффективно контролировать риск, предотвращать увеличение убытков и блокировать прибыль.

  4. С помощью фильтрации фальшивых сигналов можно рассматривать торговые сигналы только в том случае, если они увеличивают объем торгов.

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

  6. Стратегия может быть оптимизирована для расширения, например, для добавления дополнительных факторов, машинного обучения и т. Д., Чтобы повысить стабильность и доходность стратегии.

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

Также существуют риски, связанные со стратегией прорыва K-линии:

  1. Сигналы о покупке и продаже, исходящие от индикаторов CCI, могут задерживаться, что приводит к тому, что мы упускаем оптимальные точки входа. Можно соответствующим образом оптимизировать параметры CCI для повышения чувствительности.

  2. Ложный прорывный сигнал при оценке K-линейной формы может привести к ненужным потерям. Можно добавить дополнительные показатели для подтверждения или скорректировать стоп-убыток.

  3. Повышение объемов сделок также может быть отражением рыночных манипуляций, поэтому необходимо обратить внимание на взаимосвязь между ценами и объемами, чтобы избежать ловушек.

  4. Статика может привести к преждевременному остановке или упусканию большего количества движения. Можно рассматривать динамическую корректировку остановки остановки.

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

  6. Долгосрочные данные не обязательно отражают реальные показатели, в которых необходимо обратить внимание на риски манипуляции.

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

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. Оптимизация параметров CCI, повышение чувствительности показателя CCI к оценке точек купли-продажи.

  2. Добавление других вспомогательных индикаторов, таких как MACD, Bollinger Band и т.д., повышает точность сигналов о покупке и продаже.

  3. Присоединяйте алгоритмы машинного обучения, используя обучение историческим данным для прогнозирования точек торговли.

  4. Применяется динамический метод остановки убытков, при котором коэффициент остановки убытков корректируется в зависимости от степени волатильности рынка.

  5. Оптимизация логики суждения при увеличении объема сделок, предотвращение отклонения цены.

  6. Оптимизация параметров в соответствии с различными характеристиками акций и рыночной обстановкой, повышение стабильности стратегии.

  7. Добавление механизмов отслеживания тенденций, оптимизация эффективности стратегий на разных этапах.

  8. Улучшение структуры стратегий, введение модульного управления, повышение гибкости кода и расширяемости.

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

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

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © vikris

//@version=4
strategy("[VJ]War Machine PAT Intra", overlay=true, calc_on_every_tick = false)

// ********** Strategy inputs - Start **********

// Used for intraday handling
// Session value should be from market start to the time you want to square-off 
// your intraday strategy
// Important: The end time should be at least 2 minutes before the intraday
// square-off time set by your broker
var i_marketSession = input(title="Market session", type=input.session, 
     defval="0915-1455", confirm=true)

// Make inputs that set the take profit % (optional)
longProfitPerc = input(title="Long Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=5.0) * 0.01

shortProfitPerc = input(title="Short Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=5.0) * 0.01
     
// Set stop loss level with input options (optional)
longLossPerc = input(title="Long Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=5.0) * 0.01

shortLossPerc = input(title="Short Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=5.0) * 0.01    

trendFactor = input(title="Trend Factor(Lower means trending)", type=input.integer, minval=1, step=1, defval=50)

oversold = input(title="Oversold", type=input.integer, minval=1, step=1, defval=25)

overbought = input(title="Overbought", type=input.integer, minval=1, step=1, defval=75)

// ********** Strategy inputs - End **********


// ********** Supporting functions - Start **********

// A function to check whether the bar or period is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0
// Figure out take profit price
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

// Determine stop loss price
longStopPrice  = strategy.position_avg_price * (1 - longLossPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)


// ********** Supporting functions - End **********


// ********** Strategy - Start **********
// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)

// Trade only if intraday session is active

//=================Strategy logic goes in here===========================
//Vol Confirmation
vol = volume > volume[1]

//Engulfing candle confirm
bullishEC = close > open[1] and close[1] < open[1]
bearishEC = close < open[1] and close[1] > open[1]

//Candles colors
greenCandle = (close > open)
redCandle = (close < open)

length = input(title="Length", type=input.integer, defval=14, minval=1, maxval=2000)
src = hlc3
upper = sum(volume * (change(src) <= 0 ? 0 : src), length)
lower = sum(volume * (change(src) >= 0 ? 0 : src), length)
_rsi(upper, lower) =>
    100.0 - (100.0 / (1.0 + upper / lower))
mf = _rsi(upper, lower)
ci = 100 * log10(sum(atr(1), length) / (highest(length) - lowest(length))) / log10(length)

//tradeSignal = ((rsiOS or rsiOS[1]) and bullishEC) or ((rsiOB or rsiOB[1]) and bearishEC)




//Final Long/Short Condition
longCondition =  redCandle and mf < oversold and ci <trendFactor and vol
shortCondition = greenCandle and mf >overbought and ci <trendFactor and vol
 
//Long Strategy - buy condition and exits with Take profit and SL
if (longCondition and intradaySession)
    stop_level = longStopPrice
    profit_level = longExitPrice
    strategy.entry("My Long Entry Id", strategy.long)
    strategy.exit("TP/SL", "My Long Entry Id", stop=stop_level, limit=profit_level)


//Short Strategy - sell condition and exits with Take profit and SL
if (shortCondition and intradaySession)
    stop_level = shortStopPrice
    profit_level = shortExitPrice
    strategy.entry("My Short Entry Id", strategy.short)
    strategy.exit("TP/SL", "My Short Entry Id", stop=stop_level, limit=profit_level)
 
 
// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")

// ********** Strategy - End **********