
差分反転取引戦略は,購買先の看板オプションと看板先の看板オプションの比率を計算し,その比率が反転したときに取引シグナルを生成する.この戦略は,単純な資金管理ルールと組み合わせて,利益を上げます.それはNDXとSPXの30分周期に適用されます.振動指数は,正しい反転点を反映するために調整する必要があります.
この戦略の核心指標は,看板・看板オプション比率の平均線とその標準差である.まずは,過去20日の看板・看板オプション比率の平均値を計算し,それから過去30日の基準差を計算する.比率上の穿越比率の平均値が標準差の1.5倍に加えられると,多めに行い,比率の下の穿越比率の平均値が標準差の1.5倍に減ると,空にする.
増額後,比率が再び平均値以上に戻ると,空白ポジションを平らげます. ストップラインは,開設価格の1%に設定します. ストップラインは,開設価格の3倍のストップ距離に設定します.
この戦略の最大の利点は,市場情緒の逆転点を捕捉することである.市場が過度に悲観的または過度に楽観的であるとき,看板看板オプション比率が異常な状態に現れて,このとき反転操作を行うと局所的な逆転のチャンスを捕捉することができる.また,資金管理規則は,単一取引のリスクと利益を効果的に制御するために,止損と止まり距離を設定している.
この戦略の主なリスクはパラメータ設定の問題である.パラメータ設定が不適切である場合,取引信号があまりにも頻繁になり,より大きな反転の機会を捉えることができない.また,反転信号は偽破裂され,損失を引き起こす可能性がある.信号をより安定して信頼できるようにパラメータを最適化することを推奨する.
逆転シグナルを検証するために他の指標と組み合わせることを考えることができる.偽の突破によって誤導されないように.例えば,取引量指標を足し,取引量が増大するときにのみ逆転シグナルを考慮することができる.また,いくつかのトレンド指標を足し,逆転操作を避けることができる.異なる市場の異なる時間周期の下のパラメータ設定をテストすることができる.要するに,取引戦略を設定するためにより多くの要因を統合することで,結果をより信頼できることができる.
この戦略は,看板・下落オプション比率を計算し,単純な資金管理原理と組み合わせて,市場の逆転点を捕捉しようとします.その優点は,局所的な逆転の機会を掴むことにあるが,偽の突破によって誤導されるリスクもあります.最適化パラメータ設定,より多くの検証指標を追加するなどによって,戦略の安定性と収益性を向上させることができます.全体的に,この戦略は,市場の感情を利用して逆転点を判断する考え方を提供しているが,さらにテストと最適化が必要で,実物での適用が必要です.
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © I11L
//@version=5
strategy("I11L Long Put/Call Ratio Inversion", overlay=false, pyramiding=1, default_qty_value=10000, initial_capital=10000, default_qty_type=strategy.cash)
SL = input.float(0.01,step=0.01)
CRV = input.float(3)
TP = SL * CRV
len = input.int(30,"Lookback period in Days",step=10)
ratio_sma_lookback_len = input.int(20,step=10)
mult = input.float(1.5,"Standard Deviation Multiple")
ratio_sma = ta.sma(request.security("USI:PCC","D",close),ratio_sma_lookback_len)
median = ta.sma(ratio_sma,len)
standartDeviation = ta.stdev(ratio_sma,len)
upperDeviation = median + mult*standartDeviation
lowerDeviation = median - mult*standartDeviation
isBuy = ta.crossunder(ratio_sma, upperDeviation)// and close < buyZone
isCloseShort = (ratio_sma > median and strategy.position_size < 0)
isSL = (strategy.position_avg_price * (1.0 - SL) > low and strategy.position_size > 0) or (strategy.position_avg_price * (1.0 + SL) < high and strategy.position_size < 0)
isSell = ta.crossover(ratio_sma,lowerDeviation)
isTP = strategy.position_avg_price * (1 + TP) < high
if(isBuy)
strategy.entry("Long", strategy.long)
if(isCloseShort)
strategy.exit("Close Short",limit=close)
if(isSL)
strategy.exit("SL",limit=close)
if(isTP)
strategy.exit("TP",limit=close)
plot(ratio_sma,color=color.white)
plot(median,color=color.gray)
plot(upperDeviation,color=color.rgb(0,255,0,0))
plot(lowerDeviation,color=color.rgb(255,0,0,0))
bgcolor(isBuy?color.rgb(0,255,0,90):na)
bgcolor(isSell?color.rgb(255,0,0,90):na)