
Эта стратегия является стратегией высокого и низкого уровня, подходящей для криптовалютного рынка. Она использует несколько индикаторов, таких как MACD, PSAR, ATR, Elliott Wave и т. Д., чтобы торговать в более высоких временных периодах, таких как 1 час, 4 часа или 1 день. Преимущество стратегии заключается в высоком уровне возврата риска, средний коэффициент прибыли может достигать 1,5 - 2,5.
Торговые сигналы этой стратегии исходят из высоких и низких точек цены и комплексного суждения о нескольких показателях. Конкретная логика заключается в следующем:
Определите, есть ли в линии K промежутки между высокими и низкими ценами, то есть высокие - высокие, низкие - низкие.
Проверьте уровень прямоугольника MACD.
Проверьте показатели PSAR, чтобы определить направление тенденции.
Проверьте трендовые показатели ATR и MA, чтобы определить направление тренда.
Проверьте индикатор Elliott Wave, чтобы определить направление тренда.
Если вышеперечисленные 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)