Эта стратегия является стратегией высокого / низкого уровня, подходящей для рынков криптовалют. Она интегрирует MACD, PSAR, ATR, Elliott Wave и другие множество индикаторов для торговли в более высокие временные рамки, такие как 1 час, 4 часа или 1 день. Преимущество этой стратегии заключается в высоком соотношении риска и вознаграждения со средним коэффициентом прибыли от 1,5 до 2,5.
Торговые сигналы этой стратегии исходят из высоких/низких уровней цен и составных суждений нескольких индикаторов.
Судить, есть ли диапазон высокого/низкого уровня, сформированный последовательными более высокими максимумами или более низкими минимумами на графике цен.
Проверьте уровень гистограммы MACD.
Проверьте индикатор PSAR на направление тренда.
Проверьте направление тренда на основе ATR и MA.
Подтвердите направление тренда с помощью индикатора волны Эллиота.
Если все 5 условий указывают в одном направлении, генерируются длинные или короткие сигналы.
Высокое соотношение риска и вознаграждения до 1:30.
Высокий средний коэффициент прибыли, обычно между 1,5 и 2,5.
Сочетание нескольких показателей помогает эффективно отфильтровывать ложные прорывы.
Относительно низкий показатель победы около 10-20%.
Существуют потенциальные риски сокращения объемов.
На показатели могут влиять рыночные режимы.
Нужна хорошая психологическая выносливость.
Соответствующие меры:
Увеличьте капитал, чтобы сбалансировать процент выигрыша.
Установите строгий стоп-лосс для каждой сделки.
Корректировать параметры на основе различных рынков.
Укрепить психологию и контролировать размеров позиций.
Тестные параметры, основанные на различных крипто и рынках.
Добавьте стоп-лосс и прибыль, чтобы оптимизировать управление деньгами.
Увеличьте процент побед с помощью методов машинного обучения.
Добавьте фильтр социального настроения для торговых сигналов.
Рассмотрим подтверждение в нескольких временных рамках.
В заключение, это агрессивная стратегия торговли криптовалютами с высоким риском и высокой доходностью. Ее преимущество заключается в высоком соотношении вознаграждения риска и факторе прибыли. Основные риски связаны с относительно низким уровнем выигрыша, который требует сильной психологии.
/*backtest start: 2023-12-21 00:00:00 end: 2023-12-28 00:00:00 period: 45m basePeriod: 5m 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/ // © SoftKill21 //@version=4 strategy("Crypto strategy high/low", overlay=true) fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) src = input(title="Source", type=input.source, defval=close) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true) sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false) //sar start = input(0.02) increment = input(0.02) maximum = input(0.2) var bool uptrend = na var float EP = na var float SAR = na var float AF = start var float nextBarSAR = na if bar_index > 0 firstTrendBar = false SAR := nextBarSAR if bar_index == 1 float prevSAR = na float prevEP = na lowPrev = low[1] highPrev = high[1] closeCur = close closePrev = close[1] if closeCur > closePrev uptrend := true EP := high prevSAR := lowPrev prevEP := high else uptrend := false EP := low prevSAR := highPrev prevEP := low firstTrendBar := true SAR := prevSAR + start * (prevEP - prevSAR) if uptrend if SAR > low firstTrendBar := true uptrend := false SAR := max(EP, high) EP := low AF := start else if SAR < high firstTrendBar := true uptrend := true SAR := min(EP, low) EP := high AF := start if not firstTrendBar if uptrend if high > EP EP := high AF := min(AF + increment, maximum) else if low < EP EP := low AF := min(AF + increment, maximum) if uptrend SAR := min(SAR, low[1]) if bar_index > 1 SAR := min(SAR, low[2]) else SAR := max(SAR, high[1]) if bar_index > 1 SAR := max(SAR, high[2]) nextBarSAR := SAR + AF * (EP - SAR) // Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal CCI = input(20) ATR = input(5) Multiplier=input(1,title='ATR Multiplier') original=input(true,title='original coloring') thisCCI = cci(close, CCI) lastCCI = nz(thisCCI[1]) bufferDn= high + Multiplier * sma(tr,ATR) bufferUp= low - Multiplier * sma(tr,ATR) if (thisCCI >= 0 and lastCCI < 0) bufferUp := bufferDn[1] if (thisCCI <= 0 and lastCCI > 0) bufferDn := bufferUp[1] if (thisCCI >= 0) if (bufferUp < bufferUp[1]) bufferUp := bufferUp[1] else if (thisCCI <= 0) if (bufferDn > bufferDn[1]) bufferDn := bufferDn[1] x=0.0 x:=thisCCI >= 0 ?bufferUp:thisCCI <= 0 ?bufferDn:x[1] swap=0.0 swap:=x>x[1]?1:x<x[1]?-1:swap[1] swap2=swap==1?color.lime:color.red swap3=thisCCI >=0 ?color.lime:color.red swap4=original?swap3:swap2 //elliot wave srce = input(close, title="source") sma1length = input(5) sma2length = input(35) UsePercent = input(title="Show Dif as percent of current Candle", type=input.bool, defval=true) smadif=iff(UsePercent,(sma(srce, sma1length) - sma(srce, sma2length)) / srce * 100, sma(srce, sma1length) - sma(srce, sma2length)) col=smadif <= 0 ? color.red : color.green longC = high > high[1] and high[1] > high[2] and close[2] > high[3] and hist > 0 and uptrend and smadif < 0 and swap4==color.lime //longC = high > high[1] and high[1] > high[2] and high[2] > high[3] and high[3] > high[4] and close[4] > high[5] shortC = low < low[1] and low[1] < low[2] and close[2] < low[3] and hist < 0 and not uptrend and smadif > 0 and swap4==color.red //shortC = low < low[1] and low[1] < low[2] and low[2] < low[3] and low[3] < low[4] and close[4] < low[5] tp=input(0.15, title="tp") sl=input(0.005, title="sl") strategy.entry("long",1,when=longC) strategy.entry("short",0,when=shortC) strategy.exit("x_long", "long" ,loss = close * sl / syminfo.mintick, profit = close * tp / syminfo.mintick , alert_message = "closelong") //strategy.entry("short",0, when= loss = close * sl / syminfo.mintick) strategy.exit("x_short", "short" , loss = close * sl / syminfo.mintick, profit = close * tp / syminfo.mintick,alert_message = "closeshort") //strategy.entry("long",1, when = loss = close * sl / syminfo.mintick) //strategy.close("long",when= hist < 0) //strategy.close("short", when= hist > 0)