
この戦略は,動態指標RSIとブリン帯指標BBを組み合わせたバイナリーオプションのブレークスルー取引戦略である.時間的に,TTM指標を使用して,市場が整合状態にあるかどうかを判断し,入場の信頼性を向上させる.
戦略の基本的論理は,TTM指標集合の形成突破に基づいて,ブリン帯とRSI指標を組み合わせて,価格の突破方向を決定する.具体的には,戦略は20周期BBと30周期RSIを使用する.市場突破縮小の後に,RSIが一定の波動範囲 ((30-70) で,BBは大きな突破がある場合 (波動範囲の0.15倍) で,ポジション開設方向を決定する.さらに,戦略は,ポジション開設前に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)