유니버설 저격수 전략

저자:차오장, 날짜: 2023-12-20 11:04:15
태그:

img

전반적인 설명

이 전략은 다재다능한 단기 거래 전략을 구현하기 위해 여러 기술적 지표의 조합을 채택합니다. 트렌드 추적, 브레이크아웃 거래, 평균 반전 거래 및 대부분의 시장 환경에 적응 할 수있는 다른 거래 방법이 있습니다. 매우 보편적이고 실용적인 단기 전략에 속합니다.

전략 원칙

  1. 이 전략은 먼저 촛불 몸체 채널 지표를 사용하여 현재 트렌드 방향과 강도를 결정하기 위해 가장 높고 가장 낮은 가격 채널과 결합합니다.

  2. 다음으로, 중장기 트렌드 방향을 결정하기 위해 공통 EMA 지표를 사용합니다. 이중 EMA 지표 조합은 잘못된 신호를 필터링하는 데 사용됩니다.

  3. 다음으로, 전략은 현재 가격이 과잉 구매되거나 과잉 판매되는지 결정하기 위해 Hull MA 지표를 사용합니다. Hull MA 지표는 전환점을 더 정확하게 결정할 수 있습니다.

  4. 마지막으로, 전략은 보안 기능을 사용하여 더 높은 주기를 열고 큰 주기의 경향 방향을 결정하고 거래 신호를 생성합니다.

여러 부전략의 조합은 전략이 중간 주기의 경향을 포착하면서 긴 주기에 기초한 전체 추세 방향을 판단하여 다재다능한 보편적 거래 전략을 실현 할 수 있도록합니다.

이점 분석

이 전략의 가장 큰 장점은 포트폴리오 거래를 위한 여러 가지 기술적 지표를 결합하여 동시 트렌드 추적, 평균 반전 거래, 브레이크아웃 거래 및 기타 거래 방법을 실현할 수 있다는 것입니다. 이는 매우 다재다능하며 대부분의 시장 환경에 적응합니다.

특히 이 전략의 주요 장점은 다음과 같습니다.

  1. 촛불 몸통 채널 표시기를 사용하여 엔티티 브레이크오프를 결정하면 브레이크오프 신호를 효과적으로 식별할 수 있습니다.

  2. 거짓 신호를 필터링하기 위해 이중 EMA 콤보를 사용하면 신호 정확도가 향상됩니다.

  3. Hull MA 지표를 사용하여 과소매와 과소매 영역을 결정하면 전환점을 더 정확하게 결정할 수 있습니다.

  4. 시그널을 생성하기 위해 더 높은 사이클 K 라인의 시작 가격과 종료 가격의 크로스오버를 채택하면 소음으로 오해되는 것을 피할 수 있습니다.

  5. 여러 가지 거래 방법의 조합은 전략을 더 다양하고 보편적으로 만듭니다.

위험 분석

비록 전략은 다재다능한 거래 전략을 달성하기 위해 여러 지표를 결합하지만, 여전히 거래에 특정 위험이 있습니다. 주로:

  1. 브레이크업 거래는 가짜 브레이크업에 의해 오해를 받을 수 있고 잘못된 신호를 생성합니다.

  2. 평균 리버션 거래는 범위 제한 시장에서 손실을 유발하는 경향이 있습니다.

  3. 이중 EMA 조합의 필터링 기능은 여전히 제한되어 정상적인 신호를 필터링할 수 있습니다.

  4. 배형 MA 지표는 여전히 부착 곡선의 정확성이 부족합니다.

위 위험에 대응하여 다음과 같은 측면에서 최적화를 할 수 있습니다.

  1. 더 안정적인 지표를 사용하여 판단을 돕고 잘못된 파장을 피하십시오.

  2. 단일 손실을 통제하기 위해 스톱 로스 전략을 늘려라.

  3. 이중 EMA 매개 변수를 조정해서 최적의 조합을 찾습니다.

  4. 더 많은 지표를 통합하여 과잉 구매 및 과잉 판매 조건을 결정하려고 노력하십시오.

최적화 방향

위의 분석에 따르면 전략은 주로 다음 방향으로 최적화 될 수 있습니다.

  1. 칼만 라인, 볼링거 밴드 등과 같은 더 주류 및 안정적인 지표 조합을 보조 판단으로 사용하십시오.

  2. 한 번의 손실을 엄격히 통제하기 위해 손해를 막는 전략을 늘려라.

  3. 최적의 매개 변수 조합을 찾기 위한 매개 변수 최적화

  4. 기계 학습 모델 판단을 높여 인공지능을 활용하여 과반 구매 및 과반 판매 영역을 결정합니다.

  5. 다양한 시장 환경에 기반한 전략 방법을 동적으로 조정하기 위해 적응성 논리 판단을 향상시킵니다.

요약

이 전략은 트렌드 트래킹, 브레이크아웃 트레이딩, 평균 리버션 트레이딩과 같은 여러 거래 방법의 유기적 통합을 달성하여 포트폴리오 트레이딩에 대한 여러 지표를 결합합니다. 이것은 매우 다재다능하고 보편적인 단기 거래 전략입니다. 이 전략의 가장 큰 장점은 대부분의 시장 환경에 대한 광범위한 적용 가능성입니다. 그것은 더 보편적인 전략 아이디어에 속합니다. 물론, 여전히 거래에 특정 위험이 있습니다. 우리는 전략의 성능을 더욱 향상시키기 위해 더 안정적인 지표, 스톱 로스 증대, 매개 변수 최적화, 기계 학습 및 기타 많은 측면을 적용하여 전략을 최적화 할 수 있습니다. 일반적으로 이것은 참조하고 배울 수있는 매우 가치있는 보편적 단기 거래 전략입니다.


/*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=2
//╭╮╱╱╭╮╭╮╱╱╭╮
//┃╰╮╭╯┃┃┃╱╱┃┃
//╰╮┃┃╭┻╯┣╮╭┫╰━┳╮╭┳━━╮
//╱┃╰╯┃╭╮┃┃┃┃╭╮┃┃┃┃━━┫
//╱╰╮╭┫╰╯┃╰╯┃╰╯┃╰╯┣━━┃
//╱╱╰╯╰━━┻━━┻━━┻━━┻━━╯
//╭━━━┳╮╱╱╱╱╱╱╱╭╮
//┃╭━╮┃┃╱╱╱╱╱╱╱┃┃
//┃┃╱╰┫╰━┳━━┳━╮╭━╮╭━━┫┃
//┃┃╱╭┫╭╮┃╭╮┃╭╮┫╭╮┫┃━┫┃
//┃╰━╯┃┃┃┃╭╮┃┃┃┃┃┃┃┃━┫╰╮
//╰━━━┻╯╰┻╯╰┻╯╰┻╯╰┻━━┻━╯
//━╯
// http://www.vdubus.co.uk/
strategy(title='Vdub FX SniperVX3 / Strategy  v3', shorttitle='Vdub_FX_SniperVX3_Strategy', overlay=true, pyramiding=0, initial_capital=1000, currency=currency.USD)

//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=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")

//-----------------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)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=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
plot_color = direction > 0  ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color)

//-------------------- 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
plot_color2 = direction2 > 0  ? lime: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)

//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(8, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA")

//============ signal Generator ==================================//
Piriod=input('720')
ch1 = request.security(syminfo.tickerid, Piriod, open)
ch2 = request.security(syminfo.tickerid, Piriod, close)
longCondition = crossover(request.security(syminfo.tickerid, Piriod, close),request.security(syminfo.tickerid, Piriod, open))
if (longCondition)
    strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, Piriod, close),request.security(syminfo.tickerid, Piriod, open))
if (shortCondition)
    strategy.entry("SELL", strategy.short)

///////////////////////////////////////////////////////////////////////////////////////////

더 많은