이 전략은 단기 거래 전략에 속하는 듀얼 라인 도박 거래를 위해 볼링거 밴드, EMA 및 촛불 패턴을 사용합니다.
이 전략은 다음과 같은 부분으로 구성됩니다.
볼링거 밴드 닫기 가격과 표준편차를 기반으로 상위 및 하위 레일을 생성합니다. 가격이 상위 레일에 접근 할 때 짧게, 하위 레일에 접근 할 때 길게 이동합니다.
EMA 21일 지수 이동 평균을 계산하고 가격이 EMA를 넘으면 거래 신호를 생성합니다.
촛대 패턴 가격 반전 포인트를 식별 하락 어두운 구름 덮개와 상단 뚫림 패턴과 같은 거래를 촉발.
이중 라인 도박 볼링거, EMA 크로스오버 및 촛불 패턴의 신호를 기반으로 동시에 장과 단위로 이동하십시오.
논리는 다음과 같습니다.
볼링거 밴드를 사용하여 잠재적 인 반전 지점을 식별하고, 상부 레일에서 짧고, 하부 레일에서 길게 이동하십시오. 21 일간의 EMA를 계산하고 골든 크로스에서 길게 이동하고, 죽음의 크로스에서 짧게 이동하십시오. 또한 반전을 식별하기 위해 촛불 패턴을 사용하며, 아래 어두운 구름에서 길게 이동하고, 상위 파격에서 짧게 이동하십시오. 최종 쌍방향 거래 결정을 내리기 위해 세 가지 신호를 모두 결합하십시오.
이 전략은 거래 결정의 효율성을 향상시키기 위해 여러 확인 신호를 통합합니다. 이점은 여러 가지 검증과 역행에 대한 신속한 대응으로 더 높은 수익성입니다.
이 전략의 주요 장점은 다음과 같습니다.
볼링거, EMA 및 촛불을 함께 사용하면 신호를 검증함으로써 정확성을 향상시킵니다. 이것은 잘못된 신호와 잘못된 거래를 피하는 데 도움이됩니다.
결합된 신호는 전환이 진행되기 전에 적시에 거래할 수 있는 잠재적인 전환점을 빠르게 식별합니다.
긴 포지션과 짧은 포지션을 두 가지 방향으로 큰 움직임에서 이익을 얻습니다. 이것은 일방적인 시장에서 위험을 줄입니다.
짧은 기간 볼링거와 EMA는 짧은 기간의 움직임을 포착 할 수 있으며 빈번한 거래에 적합하며 고 빈도의 변동에 반응합니다.
완전한 전략 코드는 라이브 트레이딩에 직접 사용할 수 있습니다. 합리적인 매개 변수 선택 또한 개인 트레이더에 매우 쉽게 사용할 수 있습니다.
잠재적인 위험은 다음과 같습니다.
볼링거, EMA 및 촛불 신호의 윙사 (Whipsaw) 는 연속적인 스톱 손실을 일으킬 수 있습니다. 합리적인 스톱 손실을 보장하기 위해 매개 변수를 조정하십시오.
장기 및 단위 보유는 손실을 증폭시킬 수 있습니다. 위험을 지원하기 위해 충분한 자본이 필요합니다. 낮은 포지션 크기가 권장됩니다.
빈번한 단기 거래는 시장을 면밀히 추적해야 합니다. 예상치 못한 큰 손실을 제한하기 위해 Stop Profit/Loss를 설정하세요.
볼링거와 EMA는 상대적으로 작은 최적화 공간을 가지고 있습니다. 매개 변수를 적용 할 때 유연성이 필요합니다.
전략의 일부는 때때로 불분명 할 수있는 촛불 신호에 의존합니다. 그러한 경우 다른 지표와 결합하십시오.
이 전략은 다음과 같은 측면에서 개선될 수 있습니다.
KD와 같은 다른 지표를 추가하면 MACD는 신호 소스를 다양화하고 의사 결정 정확도를 향상시킵니다.
ML 알고리즘을 사용하여 역사적 데이터를 분석하고 수동 개입을 줄이기 위해 일부 지표 신호를 증강하거나 대체합니다.
성과에 기반한 적응 스톱프로피를 도입하고 위험을 줄이기 위해 스톱 손실을 추적합니다.
시장 조건에 따라 자본 할당, 위치 크기 및 위험 관리 전략을 최적화합니다.
백테스팅과 종이 거래를 활용하여 매개 변수를 반복적으로 최적화하고 실시간 거래 결정을 돕습니다.
백테스트 결과를 기반으로 전략을 매개 변수화하고 자동화 거래 시스템으로 통합하여 손 자유 실행.
이 전략은 복수의 검증을 위해 볼링거, EMA 및 촛불 신호를 통합합니다. 이중 라인 거래는 수익성을 더욱 향상시킵니다. 빠른 반응으로 단기 빈번한 거래에 적합합니다. 효과적인 스톱 이익 / 손실 및 매개 변수 최적화는 위험을 줄이는 동시에 성능을 더욱 향상시킬 수 있습니다. 전반적으로이 간단하고 실용적인 전략은 강력한 실용적 가치를 가지고 있습니다.
/*backtest start: 2022-09-30 00:00:00 end: 2023-10-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //Design by MrPhu in August,10,2018 strategy("TrumpShipper_Long_Short V26", overlay=true) filterFractals = input(true, title=" Follow Code #Trump On/Off") dt = 0.0001 confidence=(request.security(syminfo.tickerid, 'D', close)-request.security(syminfo.tickerid, 'D', close[1]))/request.security(syminfo.tickerid, 'D', close[1]) prediction = confidence > dt ? true : confidence < -dt ? false : prediction[1] if (prediction) strategy.exit("Close", "Short ") strategy.entry("Long ", strategy.long) if (not prediction) strategy.exit("Close", "Long ") strategy.entry("Short ", strategy.short) ///////////Bollinger Band/////////////// length = 20 crc = close, title="Source" mult = 2.0 basis = sma(crc, length) dev = mult * stdev(crc, length) upper = basis + dev lower = basis - dev spanColor = prediction ? green : red, transp=90 p1 = plot(upper, title="Short", style=line, linewidth=1, color=spanColor) p2 = plot(lower, title="Long", style=line, linewidth=1, color=spanColor) fill(p1, p2, color=spanColor, transp=90, title="Fill") ///////////// Optional_TimeFrame = 'D' M_HIGH = request.security(syminfo.tickerid, Optional_TimeFrame, high) M_OPEN = request.security(syminfo.tickerid, Optional_TimeFrame, open) M_LOW = request.security(syminfo.tickerid, Optional_TimeFrame, low) H_RANGE = M_HIGH-M_OPEN L_RANGE = M_OPEN-M_LOW H_236 = M_HIGH - H_RANGE * 0.236 H_382 = M_HIGH - H_RANGE * 0.382 H_500 = M_HIGH - H_RANGE * 0.500 H_618 = M_HIGH - H_RANGE * 0.618 H_764 = M_HIGH - H_RANGE * 0.764 L_236 = M_LOW + L_RANGE * 0.236 L_382 = M_LOW + L_RANGE * 0.382 L_500 = M_LOW + L_RANGE * 0.500 L_618 = M_LOW + L_RANGE * 0.618 L_764 = M_LOW + L_RANGE * 0.764 pl1=plot(M_HIGH, color=M_HIGH != M_HIGH[1] ?na:black, style=line, linewidth=1, transp=80) pl2=plot(H_236, color=H_236 != H_236[1] ?na:gray, style=line, linewidth=1, transp=80) pl3=plot(H_382, color=H_382 != H_382[1] ?na:black, style=line, linewidth=1, transp=80) pl4=plot(H_500, color=H_500 != H_500[1] ?na:red, style=line, linewidth=1, transp=80) pl5=plot(H_618, color=H_618 != H_618[1] ?na:gray, style=line, linewidth=1, transp=80) pl6=plot(H_764, color=H_764 != H_764[1] ?na:gray, style=line, linewidth=1, transp=80) pl7=plot(M_OPEN, color=M_OPEN != M_OPEN[1] ?na:blue, style=line, linewidth=2) pl8=plot(L_236, color=L_236 != L_236[1] ?na:gray, style=line, linewidth=1, transp=80) pl9=plot(L_382, color=L_382 != L_382[1] ?na:black, style=line, linewidth=1, transp=80) pl10=plot(L_500, color=L_500 != L_500[1] ?na:red, style=line, linewidth=1, transp=80) pl11=plot(L_618, color=L_618 != L_618[1] ?na:black, style=line, linewidth=1, transp=80) pl12=plot(L_764, color=L_764 != L_764[1] ?na:gray, style=line, linewidth=1, transp=80) pl13=plot(M_LOW, color=M_LOW != M_LOW[1] ?na:black, style=line, linewidth=1, transp=80) SHOW_MA = false MA_SRC = hlc3 MA_LENGTH = 21 _MA = ema(MA_SRC, MA_LENGTH) pl14=plot(not SHOW_MA ? na : _MA, color=teal, linewidth=2) SHOW_SIGNALS = true BUYX(_F) => cross(_F, MA_SRC) and rising(_MA, 1) SELX(_F) => cross(_F, MA_SRC) and falling(_MA, 1) SEL_SIGNAL = SELX(H_236) or SELX(H_382) or SELX(H_500) or SELX(H_618) or SELX(H_764) or SELX(L_236) or SELX(L_382) or SELX(L_500) or SELX(L_618) or SELX(H_764) BUY_SIGNAL = BUYX(H_236) or BUYX(H_382) or BUYX(H_500) or BUYX(H_618) or BUYX(H_764) or BUYX(L_236) or BUYX(L_382) or BUYX(L_500) or BUYX(L_618) or BUYX(H_764) //================= Chart 30m =================///// //Jurij h_left = 10 h_right = 10 //barCount = nz(barCount[1]) + 1 //check history and realtime PTZ h_left_low = lowest(h_left) h_left_high = highest(h_left) newlow = low <= h_left_low newhigh = high >= h_left_high central_bar_low = low[h_right + 1] central_bar_high = high[h_right + 1] full_zone_low = lowest(h_left + h_right + 1) full_zone_high = highest(h_left + h_right + 1) central_bar_is_highest = central_bar_high >= full_zone_high central_bar_is_lowest = central_bar_low <= full_zone_low plotchar(central_bar_is_highest ? -1 : 0, offset=-h_right-1 ,color=red, text="Top") plotchar(central_bar_is_lowest ? 1 : 0, offset=-h_right-1 ,location=location.belowbar, color=green, text="Bottom")