
Эта стратегия объединяет показатели EMA в многовременных рамках с оценкой формы K-линий, что позволяет более чувствительным захвате сигналов длинных линий и остановке выхода.
Эта стратегия основана на следующих показателях:
EMA средняя линия: используется 13-циклическая, 21-циклическая группа 2 EMA, чтобы определить, что цена прорыв формирует торговый сигнал.
Форма K-линии: определяет направление K-линии, используется в сочетании с индикатором EMA, фильтрует ложные прорывы.
Поддержка сопротивления: используется недавняя 10-циклическая highest высокая точка построена, чтобы оценить прорыв через эту область для повышения надежности сигнала.
Повышение цены: 120 циклов, когда цена закрытия закрытия оценивается как повышение цены открытия открытия, в качестве вспомогательного решения.
Правила генерации торговых сигналов:
Многоголовый сигнал: быстрая EMA вверх, прорыв медленной EMA, и для солнечной линии K-линии, закрытие пустого склада открыто.
Поверхностный сигнал: быстрая EMA падает ниже медленной EMA, а также на K-линию, чтобы сгладить позиции.
Стоп-убыток выхода: Стоп-убыток выхода из текущей позиции при появлении обратного сигнала.
Вышеуказанные риски могут быть смягчены методами, такими как избежание чрезмерной оптимизации, осторожный выбор параметров, строгий контроль размеров позиций.
Эта стратегия объединяет показатели EMA с K-линейными сущностными суждениями, что позволяет более надежно оценивать тенденции. В то же время, в сочетании с поддержкой сопротивления и временными условиями, она помогает обеспечить качество сигнала.
/*backtest
start: 2023-02-14 00:00:00
end: 2024-02-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title='ck - CryptoSniper Longs Only (Strategy)', shorttitle='ck - CryptoSniper Longs (S) v1', overlay=true, precision=2, commission_value=0.25, default_qty_type=strategy.percent_of_equity, pyramiding=0, default_qty_value=100, initial_capital=100)
open_long = 0
close_position = 0
last_long=close
last_short=close
//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance Channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=false
//-----------------Support and Resistance
RST = input(title='Support / Resistance length:', defval=10)
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
//--------------------Trend colour ema------------------------------------------------//
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
//=============Hull MA//
show_hma = false
hma_src = input(close, title="HullMA Source:")
hma_base_length = input(8, minval=1, title="HullMA Base Length:")
hma_length_scalar = input(5, minval=0, title="HullMA Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
//============ signal Generator ==================================//
Period=input(title='Period', defval='120')
ch1 = request.security(syminfo.tickerid, Period, open)
ch2 = request.security(syminfo.tickerid, Period, close)
// Signals//
long = crossover(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
short = crossunder(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short) ? 1 : -1
short_signal = crossover(last_short, last_long) ? -1 : 1
if (long_signal == 1)
strategy.entry("Long Open", strategy.long)
if (short_signal == -1)
strategy.close("Long Open")
if (long_signal[1] == 1 and short_signal[1] == 1)
open_long := 1
close_position := 0
if (short_signal[1] == -1 and long_signal[1] == -1)
open_long := 0
close_position := 1
plotshape(open_long == 1, title="Open Long", location=location.belowbar, style=shape.triangleup, size=size.small, color=green, transp=10)
plotshape(close_position == 1, title="Close Long", location=location.abovebar, style=shape.triangledown, size=size.small, color=red, transp=10)
//plot(0, title="Trigger", color=white)
///////////////////////////////////////////////////////////////////////////////////////////