これは,日本のキャンドルスタック技術分析に基づいた急速ブレイク戦略であり,トレンドとポジションを決定するために移動平均指標とサポートレジスタンス指標と組み合わせます.主なアイデアは,移動平均値とトレンド指標の確認後に迅速な価格ブレイクを待つことと利益を得ることです.
この戦略は,トレンド方向を決定するために20期間のシンプル・ムービング・メアダ (SMA) と200期間の指数関数移動・メアダ (EMA) を使用する.価格が上昇傾向にあるとき (SMAがEMAより上),現在の日本のキャンドルストック・リアルボディがオープン (ホワイトボディ) の上を閉じる時,それは購買力が強化されたことを示唆する.価格がダウントレンドにあるとき (SMAがEMAより下),現在の日本のキャンドルストック・リアルボディがオープン (ブラックボディ) の下を閉じる時,それは強化された販売圧力を示唆する.
トレンドとモメンタムが確認されると,戦略は急速な価格ブレイクを待って市場に参入する.いわゆる"ブレイクアウト"は,価格が3つの事前設定されたATRチャネル (200日間のATRと係数に基づいて計算される) の最初のチャネルラインを
市場に入ると,利益を取ることとストップ・ロスのルールは非常にシンプルです.価格がチャネルの外界に触れる限り (例えば利益を取ることまたはストップ・ロスのラインなど),すぐに利益を得たりストップ・ロスを取るでしょう.これは戦略の迅速な利益を確保します.
この戦略の最大の利点は,比較的低いリスクで迅速な利益を得ることです.ブレイクアウト後すぐに市場に参入することで,複数のポジションの調整を避けることができます.また,チャネルブレイクアウトによってもたらされる加速効果は,短い時間で大きな利益を得ることができます.
長期保有と比較して,このような効率的な開閉メカニズムは,戦略の無効率を大幅に削減し,資本効率をさらに向上させることができます.同時に,迅速な利益とストップロスのメカニズムは,単一の損失を効果的に制御することができます.
この戦略は,トレンド方向を決定するために主に移動平均指標に依存し,引き下げと統合のリスクがあります.価格がチャネル内で振動すると,超短期的な逆開と損失につながる可能性があります.
さらに,戦略は基本的出来事と重要な出来事の分析を組み合わせることなく,技術指標に過度に依存している.ブラック・スワン事件の場合,技術指標は失敗し,戦略は大きな損失を被る可能性があります.
リスクをコントロールするために チャンネル範囲を適切に拡大して オープニング頻度を減らすか ポジション管理モジュールを追加して 総資本に基づいて 単一のポジションを動的に調整することができます
戦略は以下の側面で最適化できます.
ポジション管理モジュールを追加します. 単一の損失パーセントを制御するために,アカウントサイズに基づいて単一のオープニングポジションを動的に調整します.
基本的なフィルタリングを追加します.技術指標が開示信号を誘発すると,異常を避けるために会社の基本値と重要なイベントをチェックします.
ストックプール管理を組み合わせる. ストックプールを動的に調整するためのルールを設定する. 安定性を向上させるためにさまざまな段階で最適なストックプールを選択する.
機械学習モデルを組み合わせます.AIを使用してトレンドと主要な価格レベルを予測し,チャネル範囲とエントリータイミングを決定するのに役立ちます.
この戦略は,単純性と効率性を備えています.移動平均値で主要なトレンドを決定し,日本のキャンドルでモメント方向を決定し,迅速なブレイクアウトで入力し,迅速な利益とストップロスを取り,退出します.高周波取引に適した短期的な利益を可能にします.しかし,引き下げと不確実性のリスクもあります.継続的な最適化は,さまざまな市場環境下で戦略を安定させることができます.
/*backtest start: 2023-11-26 00:00:00 end: 2023-12-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Kana with S/R Strategy", title = "KANA with S/R", overlay=true) len = input(20, minval=1, title="Length") multiplier1 = input(1, minval=1, title="multiplier1") multiplier2 = input(2, minval=1, title="multiplier2") multiplier3 = input(3, minval=1, title="multiplier3") srTimeFrame = input(240, minval=1, title="Support Resistance TimeFrame") useSR = input(true, type = bool, title="Use Support/Resistance") tpPercent = input(0.5, type=float, title = "Take Profit Percent") useTP = input(false, type=bool, title = "Use Take Profit") tp = (close * tpPercent / 100) / syminfo.mintick src = input(close, title="Source") mid = sma(src, len) plot(mid, title="SMA", color=blue) trend = ema(close, 200) plot(trend, title="Trend", color=green) upper1 = mid + atr(200) * multiplier1 upper2 = mid + atr(200) * multiplier2 upper3 = mid + atr(200) * multiplier3 lower1 = mid - atr(200) * multiplier1 lower2 = mid - atr(200) * multiplier2 lower3 = mid - atr(200) * multiplier3 plot(upper1, color = orange) plot(upper3, color = red) plot(lower1, color = orange) plot(lower3, color = red) haClose = request.security(heikinashi(syminfo.tickerid), timeframe.period, close) haOpen = request.security(heikinashi(syminfo.tickerid), timeframe.period, open) resistance = request.security(syminfo.tickerid,tostring(srTimeFrame), high) support = request.security(syminfo.tickerid,tostring(srTimeFrame), low) rsPos = (close - support[srTimeFrame]) / (resistance[srTimeFrame] - support[srTimeFrame]) MACD = ema(close, 120) - ema(close, 260) aMACD = ema(MACD, 90) hisline = MACD - aMACD longCondition = (mid > trend) and (haOpen[1] < haClose[1]) and (mid > mid[1]) and (close < upper1) and hisline > 0 and (useSR == true ? (rsPos > 100) : true) shortCondition = (mid < trend) and (haOpen[1] > haClose[1]) and (mid < mid[1]) and (close > lower1) and hisline < 0 and (useSR == true ? (rsPos < 0) : true) longExit = (close > upper3 ) or (close < lower2) shortExit = (close < lower3) or (close > upper2) if (longCondition) strategy.entry("Long", strategy.long) if (useTP) strategy.exit("Exit Long", "Long", profit = tp) if (longExit) strategy.close("Long") if (shortCondition) strategy.entry("Short", strategy.short) if (useTP) strategy.exit("Exit Short", "Short", profit = tp) if (shortExit) strategy.close("Short")