이것은 이진 옵션의 돌파구 거래 전략으로, 볼링거 밴드 BB 지표와 결합된 모멘텀 지표 RSI를 활용합니다. 타이밍의 측면에서 TTM 지표는 시장이 통합 상태에 있는지 여부를 결정하는 데 사용됩니다. 이를 통해 진입의 신뢰성을 향상시킵니다.
이 전략의 기본 논리는 TTM 지표 세트가 돌파구를 형성하는 조건 하에서 볼린거 밴드 및 RSI 지표에 기초하여 돌파구 방향을 결정하는 것입니다. 구체적으로, 전략은 BB의 20 기간과 RSI의 30 기간을 사용합니다. 시장이 압축을 통과 할 때, RSI가 특정 변동 범위 (30-70) 내에 있고 BB가 큰 돌파구를 가지고있을 때 개척 방향을 결정합니다. 또한, 전략은 불필요한 반복 개척을 피하기 위해 포지션을 열기 전에 이전 K 라인의 개척 방향을 검사합니다.
이 전략의 주요 장점은 다음과 같습니다.
시장의 거래 상태를 판단하고 통합 시장에서 무의미한 거래를 피하기 위해 TTM 지표를 사용하십시오. TTMS 지표의 압축 및 확장은 주요 트렌드 방향을 더 잘 결정하고 개설 포지션에 대한 기준을 제공합니다.
RSI와 BB의 조합은 개설 포지션을 더 신뢰할 수 있습니다. RSI 지표는 가격이 과소매 또는 과소매 여부를 판단합니다. BB 지표는 가격이 큰 돌파구가 발생했는지 여부를 판단합니다. 두 가지의 조합은 전략이 강력한 방향 트렌드에서 이익을 창출하도록합니다.
전략 논리는 반복적인 오픈을 피하는 것과 같은 특정 최적화를 고려합니다. 이것은 불필요한 이익과 손실 전환을 어느 정도 줄일 수 있습니다.
이 전략의 주요 위험은 다음과 같습니다.
파기 실패 위험. TTM 지표가 트렌드를 정확하게 판단하지 않을 때, RSI와 BB는 여전히 잘못된 파장을 가질 수 있습니다. 이 시점에서 전략은 지표에 따라 포지션을 열고 결국 함락 될 수 있습니다. 이 위험을 제어하기 위해 포지션 크기를 줄이는 것을 고려하십시오.
시장이 변동할 때 손해를 보는 것이 쉽다. 시장이 변동 상태에 있을 때 TTM 지표의 성능은 이상적이지 않다. RSI 및 BB 지표는 또한 여러 가지 잘못된 신호를 줄 수 있다. 이 때 손해를 보는 것이 매우 쉽다. 이 위험을 통제하기 위해, 명백한 변동 시장에서 이 전략을 사용하는 것을 피한다.
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
TTM 지표의 매개 변수를 최적화하여 지표의 길이와 인수를 조정합니다. 이것은 통합 및 돌파구에 대한 TTM의 판단을 향상시킬 수 있습니다.
RSI 및 BB 매개 변수를 최적화합니다. 적절한 주기 수를 단축하면 보다 신속하고 정확한 돌파 신호를 얻을 수 있습니다. 동시에 BB 채널의 대역폭은 다른 값을 테스트 할 수 있습니다.
스톱 로스 로직을 높여라. 전략은 스톱 로스를 설정하지 않기 때문에 단일 손실이 너무 커지는 것을 방지하기 위해 이동 스톱 로스 또는 예상 스톱 로스를 추가하는 것을 고려하십시오.
다양한 종류의 매개 변수를 테스트 할 수 있습니다. 현재 전략은 1 분 차트에 실행됩니다. 다른 종류의 매개 변수 (5 분과 같은) 에 대해서는 더 나은 매개 변수 조합을 얻기 위해 지표 매개 변수를 다시 테스트하고 최적화 할 수 있습니다.
이 전략은 트렌드 정확도를 결정하기 위해 TTM를 활용하고, 돌파 방향을 결정하기 위해 RSI와 BB를 사용합니다. 간단한 돌파 방향 전략과 비교하면, 엔트리 타이밍과 지표 매개 변수 최적화가 더 유리하며, 이윤을 높일 수 있습니다. 그러나 이 전략은 또한 오스실레이션 시장에서 실패 및 적응성 문제에 대한 특정 위험을 야기합니다. 이것은 사용 중에 포지션 사이즈를 조정하고 오스실레이션 시장에서 사용하지 않도록해야합니다. 추가 매개 변수 및 스톱 손실 최적화로,이 전략은 신뢰할 수있는 옵션 거래 전략이 될 수 있습니다.
/*backtest start: 2022-11-14 00:00:00 end: 2023-11-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy (title="EA_Binary Option Spfrat Strategy", shorttitle="Spyfrate_Binary Option 5min", overlay=false, pyramiding=1999, initial_capital=60000, currency=currency.USD) // TTM Squeeze code lengthttm = input(title="Length", defval=20, minval=0) bband(lengthttm, mult) => sma(close, lengthttm) + mult * stdev(close, lengthttm) keltner(length, mult) => ema(close, lengthttm) + mult * ema(tr, lengthttm) e1 = (highest(high, lengthttm) + lowest(low, lengthttm)) / 2 + sma(close, lengthttm) osc = linreg(close - e1 / 2, lengthttm, 0) diff = bband(lengthttm, 2) - keltner(lengthttm, 1) osc_color = osc[1] < osc[0] ? osc[0] >= 0 ? #00ffff : #cc00cc : osc[0] >= 0 ? #009b9b : #ff9bff mid_color = diff >= 0 ? green : red conso = diff >= 0?1:0 //plot(osc, color=osc_color, style=histogram, linewidth=2) //plot(0, color=mid_color, style=circles, linewidth=3) // BB Init source = close length = input(50, minval=1) mult = input(0.2, title="Mult Factor", minval=0.001, maxval=50) alertLevel=input(0.1) impulseLevel=input(0.75) showRange = input(false, type=bool) //RSI CODE src = close, up = rma(max(change(src), 0), 30) down = rma(-min(change(src), 0), 30) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) //BB CODE basis = sma(source, length) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev bbr = source>upper?(((source-upper)/(upper-lower))/10): source<lower?(((source-lower)/(upper-lower))/10) : 0.05 bbi = bbr - nz(bbr[1]) //Rule long1 = rsi>50.5 and rsi<70 and bbi>0.15 and osc>0.00100 and conso>0 short1 = rsi<49.5 and rsi>30 and bbi<-0.15 and osc<-0.00100 and conso>0 // long = long1[1] == 0 and long1 == 1 short = short1[1] == 0 and short1 == 1 longclose = long[5] == 1 shortclose = short[5] == 1 //Alert strategy.entry("short", strategy.short, when=short) strategy.entry("long", strategy.long, when=long) plot(long,"long",color=green,linewidth=1) plot(short,"short",color=red,linewidth=1) strategy.close("long",when=longclose) strategy.close("short",when=shortclose) //strategy.exit(id="long",qty = 100000,when=longclose) //strategy.exit(id="short",qty = 100000,when=shortclose) plot(longclose,"close",color=blue,linewidth=1) plot(shortclose,"close",color=orange,linewidth=1) //strategy.exit(id="Stop", profit = 20, loss = 100)