Классическая стратегия следования за двойным трендом


Дата создания: 2023-11-01 16:54:29 Последнее изменение: 2023-11-01 16:54:29
Копировать: 0 Количество просмотров: 578
1
Подписаться
1617
Подписчики

Классическая стратегия следования за двойным трендом

Обзор

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

Подробности стратегии

В основном, эта стратегия позволяет осуществлять двойной отслеживание тенденций с помощью следующих шагов:

  1. Вычислить классические точки Pivot, включая центральную точку Pivot, поддержку S1, сопротивление R1, поддержку S2, сопротивление R2 и т. д.

  2. Используйте RSI, чтобы определить направление тенденции акций. RSI выше 80 - это зона перекупа, а ниже 20 - зона перепродажи.

  3. Если цена закрытия превышает R2 за предыдущий день, то она считается сильной; если цена закрытия превышает S2 за предыдущий день, то она считается слабой.

  4. В зависимости от направления тренда на уровне дневной линии, в сочетании с Pivot Point и RSI, разрабатывается стратегия торговли на день.

    • Если дневной курс силен ((завершающая цена> R2), то следует наблюдать обратную точку покупки ниже точки Pivot, или купить ниже S1.

    • Если дневная линия слабая ((завершающая цена

  5. Установка стоп-убытков: S1 с сильным стопом на предыдущий день, R1 с слабым стопом на предыдущий день.

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

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

Основные преимущества этой стратегии:

  1. Возможность одновременно отслеживать долгосрочные и краткосрочные тенденции, гибко адаптироваться к изменениям рынка.

  2. У пивотной точки есть определенная способность определять тенденции, которая позволяет эффективно определять тенденции средней и длинной линии.

  3. Показатели RSI и другие могут помочь определить точку входа в краткосрочной перспективе.

  4. Правила стратегических действий ясны, просты и доступны.

  5. “Все, что мы делаем, - это пытаемся контролировать риски, и у нас есть четкая точка остановки”.

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

Основные риски этой стратегии:

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

  2. Такие показатели, как RSI, могут подавать ошибочные сигналы. Параметры могут быть адаптированы соответствующим образом или использоваться в комбинации с другими показателями.

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

  4. Стратегическое отступление может быть большим и требует психологической подготовки и финансовой поддержки.

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

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

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

  1. Попробуйте различные комбинации параметров, такие как настройка параметров RSI, оптимизация методов расчета пивотной точки и т. Д., чтобы найти оптимальную комбинацию параметров.

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

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

  4. Оптимизация управления позициями, надлежащий контроль размера отдельных позиций, снижение влияния отдельных потерь.

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

  6. Тестирование эффективности различных сортов и корректировка параметров для достижения оптимального эффекта.

  7. Добавление стратегии автоматического отключения, чтобы закрепить прибыль.

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

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

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

//@version=2
strategy(title="swing trade", shorttitle="vinay_swing", overlay=true)
pf = input(false,title="Show Filtered Pivots")
sd = input(true, title="Show Daily Pivots?")

//moving average
len = input(50, minval=1, title="Length")
src = input(close, title="Source")
out = ema(src, len)

//RSI INPUT
length = input( 7 )
overSold = input( 20 )
overBought = input( 80 )
price = close
vrsi = rsi(price, length)


// Classic Pivot
pivot = (high + low + close ) / 3.0
// Filter Cr
bull= pivot > (pivot + pivot[1]) / 2 + .0025
bear= pivot < (pivot + pivot[1]) / 2 - .0025
// Classic Pivots
r1 = pf and bear ? pivot + (pivot - low) : pf and bull ? pivot + (high - low) : pivot + (pivot - low)
s1 = pf and bull ? pivot - (high - pivot) : pf and bear ? pivot - (high - low) : pivot - (high - pivot)
r2 = pf ? na : pivot + (high - low)
s2 = pf ? na : pivot - (high - low)
BC = (high + low) / 2.0
TC = (pivot - BC) + pivot

//Pivot Average Calculation
smaP = sma(pivot, 3)

//Daily Pivots 
dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1])
dtime_pivotAvg = request.security(syminfo.tickerid, 'D', smaP[1])
dtime_r1 = request.security(syminfo.tickerid, 'D', r1[1]) 
dtime_s1 = request.security(syminfo.tickerid, 'D', s1[1]) 
dtime_r2 = request.security(syminfo.tickerid, 'D', r2[1]) 
dtime_s2 = request.security(syminfo.tickerid, 'D', s2[1])
dtime_BC = request.security(syminfo.tickerid, 'D', BC[1])
dtime_TC = request.security(syminfo.tickerid, 'D', TC[1])

offs_daily = 0
plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",style=circles, color=fuchsia,linewidth=1) 
plot(sd and dtime_r1 ? dtime_r1 : na, title="Daily R1",style=circles, color=#DC143C,linewidth=1) 
plot(sd and dtime_s1 ? dtime_s1 : na, title="Daily S1",style=circles, color=lime,linewidth=1) 
plot(sd and dtime_r2 ? dtime_r2 : na, title="Daily R2",style=circles, color=maroon,linewidth=1) 
plot(sd and dtime_s2 ? dtime_s2 : na, title="Daily S2",style=circles, color=#228B22,linewidth=1)
plot(sd and dtime_BC ? dtime_BC : na, title="Daily BC",style=circles, color=black,linewidth=1)
plot(sd and dtime_TC ? dtime_TC : na, title="Daily TC",style=circles, color=black,linewidth=1)

bull1=  (close > dtime_r2)
bull2= (low < dtime_pivot) or (low < dtime_s1) 
bull3= dtime_pivot > dtime_pivot[1]
bullishenglufing=bull2 and bull3
bullishenglufing1=bull1 and (close > out) and (crossover(vrsi, overBought))
longCondition = bull1[1] and ((low < dtime_TC) or (low < dtime_BC) or (low < dtime_s1))

bear1=  (close < dtime_s2)
bear2= (high > dtime_pivot) or (high < dtime_r1) 
bear3= dtime_pivot < dtime_pivot[1]
bearishenglufing=bear2 and bear3
bearishenglufing1=bear1 and (close < out) and (crossunder(vrsi, overSold))
shortCondition = bear1[1] and ((high > dtime_BC) or (high > dtime_TC) or (high > dtime_r1))

plotshape(bullishenglufing, style = shape.triangleup, location = location.belowbar, color = green, size = size.tiny)
plotshape(bearishenglufing, style = shape.triangledown, location = location.abovebar, color = red, size = size.tiny)

if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)