Стратегия торговли BTC на основе системы скользящих средних Ишимоку


Дата создания: 2023-12-20 13:34:08 Последнее изменение: 2023-12-20 13:34:08
Копировать: 1 Количество просмотров: 666
1
Подписаться
1621
Подписчики

Стратегия торговли BTC на основе системы скользящих средних Ишимоку

Обзор

Эта стратегия называется “Ichimoku Kinko Hyo Strategy” или “Стратегия системы первой средней линии”. Это стратегия торговли BTC, основанная на первой средней линии в сочетании с другими техническими показателями.

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

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

Основная линия ((Kijun Sen): представляет собой направление рыночной тенденции, среднюю точку между высоким и низким уровнем за последние 26 дней, которая может служить в качестве линии поддержки и сопротивления. Когда цена закрытия нарушает основную линию, она создает сигнал покупки и продажи.

Трансформационная линия ((Tenkan Sen): представляет собой динамику цен на акции, среднюю точку между высоким и низким за последние 9 дней, которая может быть использована для определения времени покупки или продажи.

Будущий SPAN A: средняя линия, представляющая собой среднюю линию, является средним значением базовой линии и линии преобразования и может служить предупредительной линией средней линии.

Будущее SPAN B: представляет собой долгосрочную линию тренда, которая является средней точкой за последние 52 дня и может быть использована для составления облачной карты, которая определяет долгосрочные и краткосрочные тенденции.

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

Сигнал “покупаю” возникает, когда цена закрытия пробивается над базовой линией и находится над облачной картой; сигнал “продаю” возникает, когда цена закрытия падает над базовой линией и находится под облачной картой.

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

  1. Система “одноглазых средних линий” определяет тенденции точно, имеет высокий коэффициент победы

  2. Не упустите возможности, используя различные показатели

  3. Индекс RSI помогает определить переломный момент

  4. Интуитивное отображение долгосрочных и краткосрочных тенденций

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

  1. Система “одноглазых” отстает, и ее необходимо оценивать с помощью других показателей.

  2. Тенденционные рынки работают хорошо, но в целом они показывают колебания

  3. Параметры RSI должны быть настроены на рынок

  4. Облачные карты сложны и требуют мастерства

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

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

  1. Оптимизация параметров средней прямой, позволяющая быстрее определять тенденции

  2. Добавление показателей, таких как скользящая средняя, для повышения точности сигналов

  3. Настройка параметров RSI в зависимости от рынка

  4. Можно рассмотреть возможность включения механизма удержания убытков, контроля риска

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

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

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

//@version=3
strategy("My Ichimoku Strat v2", overlay=true,default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=1000, currency=currency.EUR,commission_type=strategy.commission.percent,commission_value=0.05)
// === BACKTEST RANGE ===
FromMonth = input(defval = 3, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2018, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)

// === SERIES SETUP ===



//**** Inputs *******
KijunSenLag = input(6,title="KijunSen Lag",minval=1)

//Kijun-sen
//Support resistance line, buy signal when price crosses it
KijunSen = sma((high+low)/2,26)
buy2 = crossover(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))
sell2= crossunder(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))


//Tenkan-Sen
TenkanSen = sma((high+low)/2,9)

//Senkou Span A 
SenkouSpanA = (KijunSen + TenkanSen)/2

//Senkou Span B 
SenkouSpanB = sma((high+low)/2,52)

//Cloud conditions : ignore buy if price is under the cloud
// Huge cloud means safe support and resistance. Little cloud means danger.
buy3 = close > SenkouSpanA and close > SenkouSpanB
sell3 = close < SenkouSpanA and close < SenkouSpanB


//Chikou Span
//Buy signal : crossover(ChikouSpan,close)
//Sell Signal : crossunder(ChikouSpan,close)
ChikouSpan = close
buy1=crossover(ChikouSpan,close[26])
sell1=crossunder(ChikouSpan,close[26])

plotshape(buy1,style=shape.diamond,color=lime,size=size.small)
plotshape(sell1,style=shape.diamond,color=orange,size=size.small)

//Alerts

buyCompteur = -1
buyCompteur := nz(buyCompteur[1],-1)
buyCompteur := buy2 or buy3 ? 1 : buyCompteur
buyCompteur := buyCompteur > 0 ? buyCompteur + 1 : buyCompteur
buyCompteur := sell2 or sell3 ? -1 : buyCompteur

sellCompteur = -1
sellCompteur := nz(sellCompteur[1],-1)
sellCompteur := sell2 or sell3 ? 1 : sellCompteur
sellCompteur := sellCompteur > 0 ? sellCompteur + 1 : sellCompteur
sellCompteur := buy2 or buy3 ? -1 : sellCompteur



//RSI
src = close, len = input(14, minval=1, title="RSI Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
buyRSI = crossover(rsi,40) and close > TenkanSen and rsi[5]<30 and (rsi-rsi[1])>5
sellRSI = crossunder(rsi,60) and close < TenkanSen and rsi[5]>70 and (rsi[1]-rsi)>5
plotshape(buyRSI,style=shape.triangleup,color=lime,transp=0,location=location.belowbar,size=size.small)

sell= sell2 and sell3 or (sell1 and buyCompteur <= 8) or sellRSI
buy=buy2 and buy3 or (buy1 and sellCompteur <=8) or buyRSI
plotchar(buy,char='B',size=size.small,color=lime) 
plotchar(sell,char='S',size=size.small,color=orange)


//plots
plot(KijunSen,title="Kijun-Sen",color=blue,linewidth=4)
plot(TenkanSen,title="Tenkan-Sen",color=red,linewidth=2)
cloudA = plot(SenkouSpanA,title="cloud A", color=lime,offset=26,linewidth=2)
cloudB = plot(SenkouSpanB,title="cloud B", color=orange,offset=26,linewidth=2)
plot(ChikouSpan,title="lag span",color=fuchsia, linewidth=2,offset=-26)
//plot()
fill(cloudA,cloudB,color=SenkouSpanA>SenkouSpanB?lime:orange)
//plot(close,color=silver,linewidth=4)

// === ALERTS ===
strategy.entry("L", strategy.long, when=(buy and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))
strategy.close("L", when=(sell and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))