
この戦略は,一目平衡線を利用して日内株取引を実現し,短線取引戦略に属している.これは,一目平衡線の変換線,基準線および先行線の組み合わせを使用して,買付信号判断を行い,対照線SARを補助してストップ・ロスト・トラッキングを行い,二重保護を実現している.
一目均衡線は,変換線,基準線,先行1線,先行2線で構成されている.変換線は,当日の終止価格と過去9日の最高価格,最低価格平均の平均値であり,近年の株価均衡の状況を反映している.基準線は,過去26日の最高価格,最低価格平均であり,中長期の均衡の状況を表している.先行1線は,ベースラインと変換線の平均値であり,将来の動向の状況を反映している.先行2線は,過去52日の最高価格,最低価格平均値である.これらの均衡線は,組み合わせて,買い売り信号を形成している.
閉店価格が基准線を下から突破し,先行2線より高いとき,買取シグナルを生成する.閉店価格が基准線を下から突破し,先行1線より低いとき,売出シグナルを生成する.パラパラ線SARは止損を追跡するために使用され,価格がSARより低いとき,止損シグナルを発信する.
この戦略は,株式価格の将来の傾向と現在のトレンドの持続性を判断するために均衡線の組み合わせを使用し,典型的なトレンド追跡戦略の1つである. 買いと売るシグナルが発生したときに,トレンドをタイムリーに追跡して取引する. 同時に,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)