カイロウ戦略は,イチモク・クラウド,MACD,チャイキンマネーフロー (CMF),真の強度指数 (TSI) を含む複数の技術指標を統合した定量的な取引戦略である.この戦略は,市場における中長期の取引機会を発見することを目的としている.
カイロー戦略の核心理念は,市場動向,過買い・過売り地域を判断するために,イチモク・クラウドの長/短信号,MACDの長/短指標,CMFの資本流れ指標,TSIの強度指数を組み合わせることです.イチモク・クラウドは,トレンド方向と主要なサポート/レジスタンスを明確に決定することができます.MACDは購入/販売力の対比と過買い/過売り現象を反映しています.CMFは資本の流入と流出を判断します.TSIは市場の実際の購入・販売力を示します.
具体的には,戦略は主に以下の指標に基づいて判断します.
上記の5つの条件が同時に満たされると,長い信号が生成され,テンカン線がキジュン線以下を横切るような条件が逆転すると,短い信号が生成されます.
この戦略は,単一指標判断によって生じる騒音を避けるために,複数の指標の長と短条件を組み合わせます.同時に,イチモク・クラウドを使用して主要なサポートとレジスタンス領域を決定し,実際の資本流の方向を決定するために遅延スパンジの影の方向を組み合わせることで,トレンドの後期段階に入り,より前に重要なポイントで退出することが可能になり,それによってより大きな利益を得ることができます.
カイロウ戦略の最大の利点は,市場における過剰購入/過剰販売現象を判断し,購入・販売ポイントを正確に決定するために,複数の指標を包括的に使用することです. 具体的な利点は:
複数の指標の統合により信号の精度が向上単一のインジケーターは誤った信号に易くなりますが,この戦略は イチモク・クラウド,MACD,CMF,TSIなどを統合することで,ノイズを効果的にフィルタリングし,信号の信頼性を向上させます.
イチモククラウドで主要なサポートとレジスタンスを特定するイチモク・クラウドは,主要なサポートとレジスタンスレベルを明確に表示します. 戦略は,トレンドの後期に市場に参入するために,これらの領域の周りに長と短点を展開することができます.
滞納期間を用いて,実際の資本流量を決定する.遅延のスパンでは,実際の資金ではなく,アービトラージオーダーから誤った動きを検出する差異を示しています.
MACD で過買い/過売表示. MACDは急激に過買い/過売状態を表示します. イチモク・クラウドレベルと共に,長と短入口信号を正確に決定します.
CMFとの資本流出を示すCMFインジケーターは,大手のプレーヤーの動きを,オーバーボリュムの変化によって反映し,アービタージフローからの誤解を招くシグナルを避ける.
購入/販売力の強さを TSI で示す価格変動の大きさを削除することで,TSIは,底辺の反転と上位の低下を特定するために,購入/販売力の実際の強さを正確に表示します.
カイロウ戦略は利点にもかかわらず,注意すべきリスクも伴います.主なリスクと最適化方向は以下の通りです.
パラメータ最適化既存のパラメータは最適ではない可能性があります.より安定した利益のためのより良いパラメータを見つけるために,より体系的な最適化方法が使用できます.
ストップ・ロスのメカニズムの欠如. 現在,ストップ・ロスのメカニズムはない. 市場における重大な逆転は,制御不能な損失につながる可能性がある. 合理的な遅延または制限オーダーストップ・ロスは実施されるべきである.
取引頻度が高い複数のインテグレートインジケーターは,取引頻度が過剰に高くなる可能性があります. 取引数を合理的に制御するためにパラメータチューニングを使用する必要があります.
業績変動複数の指標との相互作用は,特定の市場条件において,より大きな業績変動を引き起こす可能性がある.モデル組み合わせによる重量化方法が検討される.
信号の差異リスク指標が矛盾する信号を示す場合,エントリー決定は困難になります.そのようなケースでは手動的なレビューと分析が必要です.
カイロー戦略は,多指標量的な取引戦略である.入口と出口のタイミングを独自に決定するために,イチモククラウド,MACD,CMF,TSIなどの補完的な強みを充分活用する.ストップ損失メカニズム,パラメータチューニング,重量割り当てなど,戦略運用の安定性を大幅に向上させるための側面の最適化にも余地がある.
/*backtest start: 2023-10-22 00:00:00 end: 2023-11-21 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Ichimoku with MACD/ CMF/ TSI ", overlay=true) //Inputs ts_bars = input(10, minval=1, title="Tenkan-Sen Bars") ks_bars = input(30, minval=1, title="Kijun-Sen Bars") ssb_bars = input(52, minval=1, title="Senkou-Span B Bars") cs_offset = input(26, minval=1, title="Chikou-Span Offset") ss_offset = input(26, minval=1, title="Senkou-Span Offset") long_entry = input(true, title="Long Entry") short_entry = input(true, title="Short Entry") middle(len) => avg(lowest(len), highest(len)) // Ichimoku Components tenkan = middle(ts_bars) kijun = middle(ks_bars) senkouA = avg(tenkan, kijun) senkouB = middle(ssb_bars) // Plot Ichimoku Kinko Hyo plot(tenkan, color=#0496ff, title="Tenkan-Sen") plot(kijun, color=#991515, title="Kijun-Sen") plot(close, offset=-cs_offset+1, color=#459915, title="Chikou-Span") sa=plot(senkouA, offset=ss_offset-1, color=color.green, title="Senkou-Span A") sb=plot(senkouB, offset=ss_offset-1, color=color.red, title="Senkou-Span B") fill(sa, sb, color = senkouA > senkouB ? color.green : color.red, title="Cloud color") ss_high = max(senkouA[ss_offset-1], senkouB[ss_offset-1]) ss_low = min(senkouA[ss_offset-1], senkouB[ss_offset-1]) // Entry/Exit Signals fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) src = input(title="Source", type=input.source, defval=hl2) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true) sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false) // Plot colors col_grow_above = #26A69A col_grow_below = #FFCDD2 col_fall_above = #B2DFDB col_fall_below = #EF5350 col_macd = #0094ff col_signal = #ff6a00 // Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal tk_cross_bull = tenkan > kijun tk_cross_bear = tenkan < kijun cs_cross_bull = mom(close, cs_offset-1) > 0 cs_cross_bear = mom(close, cs_offset-1) < 0 price_above_kumo = close > ss_high price_below_kumo = close < ss_low //CMF lengthA = input(10, minval=1, title="CMF Length") ad = close==high and close==low or high==low ? 0 : ((2*close-low-high)/(high-low))*volume mf = sum(ad, lengthA) / sum(volume, lengthA) //TSI long = input(title="Long Length", type=input.integer, defval=20) short = input(title="Short Length", type=input.integer, defval=20) price = close double_smooth(src, long, short) => fist_smooth = ema(src, long) ema(fist_smooth, short) pc = change(price) double_smoothed_pc = double_smooth(pc, long, short) double_smoothed_abs_pc = double_smooth(abs(pc), long, short) tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc) bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and hist > 0 and mf > 0.1 and tsi_value > 0 bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and hist < 0 and mf < -0.1 and tsi_value < 0 strategy.entry("Long", strategy.long, when=bullish and long_entry) strategy.entry("Short", strategy.short, when=bearish and short_entry) strategy.close("Long", when=bearish and not short_entry) strategy.close("Short", when=bullish and not long_entry)