Бычья-медвежья долгосрочная стратегия


Дата создания: 2023-11-10 11:37:37 Последнее изменение: 2023-11-10 11:37:37
Копировать: 0 Количество просмотров: 676
1
Подписаться
1617
Подписчики

Бычья-медвежья долгосрочная стратегия

Обзор

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

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

  1. Используйте RSI, чтобы определить наличие многостороннего отклонения

    • Определение параметров RSI (по умолчанию 14 циклов)
    • Расчет текущего RSI
    • Оценить наличие следующих отклонений:
      • Низкие и низкие точки RSI
      • В этот момент цены были низкими.
      • После этого RSI показывает более высокие и более низкие точки.
      • В это время цены на нефть были на высоком и низком уровнях.
  2. Определить, что RSI ниже порогового значения

    • Определение порога определения RSI-нижней точки (по умолчанию 40)
    • Если текущий RSI ниже этого порога, возможно, пришло время купить.
  3. Определить, что цена закрытия ниже начального минимума

    • Если да, то дополнительная проверка отклоняется от сигнала покупки
  4. Определение условий выхода из убытков

    • Настройка стоп-лосса в процентах (по умолчанию 5%)
    • Если вывод достигнет этого процента, то остановка выхода
  5. Определение условий выхода из прибыли

    • Настройка RSI высоких точек для определения порогового значения (по умолчанию 75)
    • Если RSI достигнет этого порога, то прибыль выйдет.

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

  1. Использование RSI для определения отклонения от предыдущих позиций позволяет эффективно отслеживать кратковременный отскок цены

  2. В сочетании с оценкой низких точек RSI, можно определить конкретные точки покупки перед отскоком

  3. Установка условий стоп-лосса и стоп-стоп, позволяющих управлять рисками и доходами от торгов

  4. Эта стратегия ссылается на характеристики RSI в большом количестве биткоин-фиктивных сделок, что очень подходит для коротких биткоин-линий.

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

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

  1. RSI может быть неэффективным, что может привести к убыткам в торговле

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

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

  4. Для многонаправленной торговли необходимо следить за тенденциями на большом уровне и избегать контртртрнаступлений.

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

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

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

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

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

  3. Можно объединить более широкие оценки тенденций, чтобы избежать переоценки при обратном тренде.

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

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

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

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

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

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

//@version=5
strategy("Bullish Divergence Short-term Long Trade Finder", overlay=false)

max_range = 50 
min_range = 5
///pivot_left = 25
pivot_right = 5

//Inputs
src = input(close, title="Source")
rsiBearCondMin = input.int(50, title="RSI Bearish Condition Minimum")
rsiBearCondSellMin = input.int(60, title="RSI Bearish Condition Sell Min")
rsiBullCondMin = input.int(40, title="RSI Bull Condition Minimum")
pivot_left = input.int(25, title="Look Back this many candles")
SellWhenRSI = input.int(75, title="RSI Sell Value")
StopLossPercent = input.int(5, title="Stop loss Percentage")
rsiPeriod = input.int(14, title="RSI Length")
rsiOversold = input.int(30, title="RSI Oversold Level")
rsiOverbought = input.int(70, title="RSI Overbought Level")

//RSI Function/ value 
rsi_value = ta.rsi(src, rsiPeriod)
rsi_hour = request.security(syminfo.tickerid,'60',rsi_value)
rsi_4hour = request.security(syminfo.tickerid,'240',rsi_value)
rsi_Day = request.security(syminfo.tickerid,'D',rsi_value)
plot(rsi_value, title="RSI", linewidth = 2, color = color.black, display =display.all)
hline(50, linestyle = hline.style_dotted)
rsi_ob = hline(70, linestyle=hline.style_dotted)
rsi_os = hline(30, linestyle=hline.style_dotted)
fill(rsi_ob, rsi_os, color.white)
SL_percent = (100-StopLossPercent)/100 

pivot_low_true = na(ta.pivotlow(rsi_value, pivot_left, pivot_right)) ? false : true

//create a function that returns truee/false
confirm_range(x) => 
    bars = ta.barssince(x == true) //counts the number of bars since thee last time condition was true
    min_range <= bars and bars <= max_range // makees sure bars is less than max_range(50) and greater than min_range(5) 


// RSI higher check / low check
RSI_HL_check = rsi_value<rsiBullCondMin and rsi_value > ta.valuewhen(pivot_low_true and rsi_value<rsiBullCondMin, rsi_value,1) and confirm_range(pivot_low_true[1]) 

// price check for lower low
price_ll_check = low < ta.valuewhen(pivot_low_true, low, 1)

bullCond = price_ll_check and RSI_HL_check and pivot_low_true

//pivot_high_true = na(ta.pivothigh(rsi_value, pivot_left, pivot_right))  ? false : true
pivot_high_true = na(ta.pivothigh(rsi_value, pivot_left, pivot_right))   ? false : true

// RSI Lower check / high check ensuring that the RSI dips below 30 to start divergence 
RSI_LH_check = rsi_value < ta.valuewhen(pivot_high_true and rsi_value>rsiBearCondMin, rsi_value,1) and confirm_range(pivot_high_true[1]) //and rsi_value[pivot_right] >= 65

// price check for lower low
price_hh_check = high > ta.valuewhen(pivot_high_true, high, 1)

bearCond = price_hh_check and RSI_LH_check and pivot_high_true and rsi_value[3] > rsiBearCondSellMin

plot(pivot_low_true ? rsi_value : na, offset=-5, linewidth=3, color=(bullCond ? color.green : color.new(color.white, 100)))

plotshape(bullCond ? rsi_value : na , text = "BUY", style =  shape.labelup, location = location.absolute, color = color.green, offset =0, textcolor = color.white )

plot(pivot_low_true ? rsi_value : na, offset=-5, linewidth=3, color=(bearCond ? color.red : color.new(color.white, 100)))

plotshape(bearCond ? rsi_value : na , text = "Sell", style =  shape.labelup, location = location.absolute, color = color.red, offset =0, textcolor = color.white )
//[bbUpperBand, bbMiddleBand, bbLowerBand] = ta.bb(src, bbPeriod, bbDev)

//Entry Condition
longCondition = false

//bullEntry = bullCond and RSI_HL_check and confirm_range(pivot_low_true[1])
if bullCond and close < ta.valuewhen(pivot_low_true, low, 1) and rsi_hour <40 ///and rsi_4hour<40 //and rsi_Day<50
    strategy.entry("Long", strategy.long)
    
//Exit Condition
if (strategy.position_size > 0 and close < strategy.position_avg_price*SL_percent)
    strategy.close("Long")
if (strategy.position_size > 0 and (rsi_value > SellWhenRSI or bearCond))
    strategy.close("Long")