この戦略は,イチモク・クラウドラインを使用して日中株取引を実施する.これは短期取引戦略に属している.イチモク・クラウドの変換ライン,ベースライン,リードラインを使用して取引信号を生成し,ストップ・ロスト・トラッキングのためにパラボリックSARを使用して,ダブル・プロテクションを達成する.
イチモク・クラウドは,変換線,ベースライン,リードライン1とリードライン2から構成される. 変換線は,過去9日間の閉店価格と最高値と最低値の平均値で,株式価格の最近の均衡状態を反映する. ベースラインは,過去26日間の最高値と最低値の平均値で,中期から長期間の均衡状態を表現する. リードライン1は,将来のトレンドを反映するベースラインと変換ラインの平均値である. リードライン2は,過去52日間の最高値と最低値の平均値である. これらの均衡線が組み合わせて取引信号を形成する.
閉じる価格がベースラインを上向きに突破し,リードライン2より上になると,買い信号が生成される.閉じる価格がベースラインを下向きに突破し,リードライン1より下になると,売り信号が生成される.パラボリックSARはストップ・ロスの追跡に使用され,価格がSAR以下になるとストップ・ロスの信号を生成する.
この戦略は,将来の価格動向と現在のトレンドの持続可能性を決定するために平衡線の組み合わせを利用する.これは典型的なトレンドフォロー戦略に属している.購入・売却のシグナルが現れたときにトレードすることによってトレンドを追いかける.一方,SARストップ・ロスト・アンド・テイク・プロフィートメカニズムは損失を拡大するのを避ける.
均衡線は,異なる期間の価格情報を含み,傾向の変化を事前に反映する.組み合わせを使用すると,単一の指標と比較して正確性が向上する.より正確に取引信号を識別することができます.
SARはストップ・ロスの株価を柔軟に追跡することができる.バランスラインと組み合わせると,利益を取った後にタイムリーストップ・ロスを可能にし,拡大した損失を回避する.
この戦略は,曲線フィッティングのような複雑な技術指標なしで最小限のパラメータを有し,実行がシンプルで実用的です. 既定値はすでに良い結果を達成することができます.
短期取引に適した日中価格変動からの取引信号を識別します.利益を得るために日中変動を完全に活用できます.
トレーディングのトレンドは引き上げ率を高くします.取引損失を制限するために合理的なストップロスのレベルを設定する必要があります.
ランジ・バインド市場では,収益性に不利な頻繁に取引信号が生成される可能性がある.パラメータは,一部の信号をフィルタリングするために調整することができる.
シンプルなパラメータは過度に最適化されやすい.実際の取引性能が理想的ではない場合もある.過度に適性を防ぐために強度テストを実施すべきである.
戦略の有効性を最大化するために,明確なトレンドを持つトレンドストックを選択する必要があります.
不確実な信号をフィルタリングし,不正取引を避けるために移動平均値のような他の指標を追加することができます.
SAR パラメータは,より柔軟なストップ・ロスのために,市場の変動に基づいて動的に調整できます.
より体系的な最適化と組み合わせテストにより,性能を改善するためのより良いパラメータセットを見つけることができます.
ポジションのサイズとレバレッジは,リスク制御のために,指数傾向などの市場状況に基づいて動的に調整できます.
この戦略は,ストップロスの追跡のためにイチモク・クラウドの取引信号とパラボリックSARを使用する.これはシンプルで実践的な短期間の取引戦略である.ブレイクアウト取引のためのイチモク・クラウドのトレンド予測能力を活用する.ストップロスのメカニズムは損失を拡大することを避ける.適切な引き下げ制御,ストック選択,パラメータチューニングが実装に必要な.これらのことを対処することで,イントラデイ取引の尊敬すべきパフォーマンスを備えた戦略を実装することは容易である.
/*backtest start: 2023-01-01 00:00:00 end: 2023-01-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // // Based on the trading strategy described at // http://stockcharts.com/school/doku.php?id=chart_school:trading_strategies:ichimoku_cloud // // See Also: // - Backtesting and forwardtesting (of TradingView Strategies) <https://www.tradingview.com/wiki/Strategies#Backtesting_and_forwardtesting> // - 9 Mistakes Quants Make that Cause Backtests to Lie <https://blog.quantopian.com/9-mistakes-quants-make-that-cause-backtests-to-lie-by-tucker-balch-ph-d/> // - When Backtests Meet Reality <http://financial-hacker.com/Backtest.pdf> // - Why MT4 backtesting does not work <http://www.stevehopwoodforex.com/phpBB3/viewtopic.php?f=28&t=4020> // // // ----------------------------------------------------------------------------- // Copyright 2018 sherwind // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // The GNU General Public License can be found here // <http://www.gnu.org/licenses/>. // // ----------------------------------------------------------------------------- // strategy(title="Ichimoku Cloud Strategy", shorttitle="Ichimoku Strategy", overlay=true, pyramiding=3) conversionPeriods = input(9, minval=1, title="Conversion Line Periods"), basePeriods = input(26, minval=1, title="Base Line Periods") laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"), displacement = input(26, minval=1, title="Displacement") usePSARTrailStop = input(true, title="Use Parabolic SAR for Trailing Stop") psarStart = input(0.02, title="Parabolic SAR Start") psarIncrement = input(0.02, title="Parabolic SAR Increment") psarMaximum = input(0.2, title="Parabolic SAR Maximum") donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) leadLineDisp1 = leadLine1[displacement] leadLineDisp2 = leadLine2[displacement] psar = sar(psarStart, psarIncrement, psarMaximum) // BUY Signal: // close > leading span b and // leading span a > leading span b and // close crosses over base line and // close > parabolic sar buySignal = close > leadLineDisp2 and leadLineDisp1 > leadLineDisp2 and crossover(close, baseLine) and (usePSARTrailStop ? close > psar : not usePSARTrailStop) // Sell Signal: // close < leading span a and // leading span a < leading span b and // close crosses under base line and // close < psar sellSignal = close < leadLineDisp1 and leadLineDisp1 < leadLineDisp2 and crossunder(close, baseLine) and (usePSARTrailStop ? close < psar : not usePSARTrailStop) hasLong = strategy.position_size > 0 hasShort = strategy.position_size < 0 strategy.entry("ichimoku-long", strategy.long, when = buySignal) strategy.entry("ichimoku-short", strategy.short, when = sellSignal) strategy.exit("trailstop-long", "ichimoku-long", stop = psar, when = hasLong and usePSARTrailStop) strategy.exit("trailstop-short", "ichimoku-short", stop = psar, when = hasShort and usePSARTrailStop)