
この戦略は,クラシック商品通路指数 ((CCI) をベースに,多頭のみを行う.CCI指標が極低のレベル ((CCI <-150またはユーザ定義の値) にあり,また強度を得るとき ((CCI>前根K線のCCI) と同時に,価格の強度自体にフィルタリングを行う (すなわち,開札価格の一定幅より高いK線の閉札価格が送信されなければなりません - 固定0.25%),システムは市場に入ります.
この戦略は,トレンドの全長を追求するのではなく,高い勝利率 (約50%以上) を獲得する取引に使用されます. したがって,潜在的な損失を目の当たりにすることさえ耐えられないトレーダーに適用されます.
CCI指標とその区間帯をta.sma () とta.dev () 関数を使って構成する.
Inputで取引開始日を選択し,反測ウィンドウを設定します.
入場条件:CCIの下線を突破して上昇を開始し,同時に信号K線の閉盘価格が開盤価格より0.25%高いことを要求する.
出場条件1:CCIで上線し,止出場する.
出場条件2:ストップラインを下回り,負債で出場する.
CCI指標の強度に応じて入場時間を選択し,同時にストップ・ローズ・コントロールのリスクを活用する.
この戦略の利点は以下の通りです.
CCIの指標は,過剰買いと過剰売りを識別し,反転の機会を有効に捉えるのに役立ちます.
誤った操作による過度のリスクを避けるため,多方向に操作するだけです.
価格の強度分析により,入場時に価格が支柱になっていることを確認します.
損失を抑えるメカニズムは,単一の損失を制御し,資金を効果的に管理します.
返信パラメータは柔軟で,入場フィルタ条件を調整できます.
資金管理に重点を置く投資家に適しています.
戦略が明確で,コードが簡潔で分かりやすい.
この戦略にはリスクもあります.
短線は下向きで,多方向に走るだけで,短線を逃すのが簡単です.
CCIのパラメータを正しく設定しない場合,失効する可能性があります.
ストップ・ローズ設定が緩やかすぎると,損失を効果的にコントロールできなくなります.
取引が強すぎると,ストップダメージは破綻し,大きな損失を招く.
取引頻度が高すぎると取引コストが圧迫されます.
対応するリスク管理策:
CCIパラメータを最適化して,最適な値を探します.
ストップの幅を調整し,リスクとストップが突破される確率の間のバランスをとる.
取引コストを考慮し,入場頻度を制御する.
傾向と区間判断を組み合わせて,一方的な取引を避ける.
この戦略は以下の点で最適化できます.
ダイナミックストップを使用して,市場の変動に応じてストップ距離を調整します.
MACDなどの指標と組み合わせて,過剰な緩和を避ける.
売る機会を増やし,CCIが熱くなると空白を考える.
取引コストの要素を考慮して,最小のストップ距離を設定します.
オプティマイゼーションパラメータと戦略の時間枠を組み合わせて,最適の組み合わせを探します.
機械学習によるパラメータの自動最適化.
資金管理モジュールを追加し,ポジションを動的に調整する.
総じて,この戦略は,CCI指標の超買超売特性を利用し,価格が支柱を形成している場合に多額を出し,損失を制御し,高勝率取引を追求する.戦略の優点は,操作が簡単で,リスクが制御されていることにある.存在する欠陥は,単に多額を出し,損失を止めて固定するなどである.これらの問題は,パラメータ最適化,売点を増やす,動的損失を止めるなどによって改善することができる.この戦略は,高勝率を追求し,資金管理を重視する投資家に適している.
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title='CCI High Performance long only', overlay=false )
src = input(close)
length = input.int(20, title='Period', minval=1)
lossp = input.float(8, title='Stop Loss percentage', minval=0.5, step=0.5)
scart = input.float(0.25, title='Close of the signal bar higher than Open %', minval = 0)
upperline = input.int(150, title='Upper Band', minval=0, step=10)
lowline = input.int(-150, title='Low Band', maxval=0, step=10)
// construction of CCI (not on close but in totalprice) and of bands
ma = ta.sma(src, length)
cci = (src - ma) / (0.015 * ta.dev(src, length))
plot(cci, 'CCI', color=color.new(#996A15, 0))
band1 = hline(upperline, 'Upper Band', color=#C0C0C0, linestyle=hline.style_dashed)
band0 = hline(lowline, 'Lower Band', color=#C0C0C0, linestyle=hline.style_dashed)
fill(band1, band0, color=color.new(#9C6E1B, 90), title='Background')
// === INPUT BACKTEST RANGE ===
fromMonth = input.int(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromDay = input.int(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromYear = input.int(defval = 2016, title = "From Year", minval = 1970)
thruMonth = input.int(defval = 1, title = "Thru Month", minval = 1, maxval = 12)
thruDay = input.int(defval = 1, title = "Thru Day", minval = 1, maxval = 31)
thruYear = input.int(defval = 2112, title = "Thru Year", minval = 1970)
// === FUNCTION EXAMPLE limit for backtest ===
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
//ENTRY CONDITIONS
// strategy: enter when CCI is under the low line and starts increasing. The filter is that the signal candle should mark a close higher than a x-percent
// (0.25%) of the open
// Exit when either when it reaches the target of a prices highest than high level of CCI or fixed stop loss (in percentage)
scart_level = open * (1+scart/100)
entryl = cci[1] < lowline[1] and cci > cci[1] and close > scart_level and window()
exit1 = cci> upperline
strategy.entry('Long', strategy.long, when=entryl)
strategy.close('Long', when=exit1, comment='target')
// money management (only stop loss)
losspel = strategy.position_avg_price * (1 - lossp / 100)
fixed_stop_long = close < losspel
strategy.close('Long', when=fixed_stop_long, comment='Stop Loss')