この戦略は,主に単純な移動平均値と取引量の組み合わせを使用して,市場の傾向の方向性を決定します.市場傾向が比較的強いときに適切なエントリーと出口点を特定しようとします. 定量戦略に従う傾向のカテゴリーに属します.
この戦略は,異なる期間の2つの単純な移動平均値を採用して市場傾向を決定する.より短い期間の移動平均値は価格変動傾向をより迅速に捉えることができ,より長い期間の移動平均値はノイズをフィルタリングするのに役立ちます.より短い期間のMAがより長い期間のMAを横切ったときに購入信号が生成され,上昇傾向の開始を示します.より短いMAがより長いMAを下回る傾向の開始を示します.
さらに,この戦略にはトレンドシグナルを確認するための取引量指標も含まれています.有効な買いと売却シグナルは,取引量が特定の期間の平均値よりも高くなる場合にのみ起動し,それによって潜在的な誤ったブレイクをフィルタリングします.
ポジションに入ると,戦略は適切なエントリーポイントを選択するために動的なサポート/レジスタンスレベルも考慮する.価格はサポートレベルを超える場合にのみ購入し,価格はレジスタンスレベル以下である場合にのみ販売する.これはレンジバインド市場のウィプソーのリスクを一定程度軽減するのに役立ちます.
この戦略には以下の顕著な利点があります.
シグナルルールはシンプルで明快で 簡単に理解し パラメータを調整し 量子取引の初心者にも適しています
価格動向とボリューム分析を組み合わせて 市場の動向を把握し 誤ったブレイクをフィルタリングします
動的サポート/レジスタンスレベルを使用して,有利なエントリータイミングを選択し,鞭打ちされるリスクを軽減します.
バックテストデータも豊富で パラメータは複数の最適化を経て 比較的安定したライブパフォーマンスを得ています
この戦略には,主に次の側面において,いくつかの潜在的なリスクがあります.
戦略に従う傾向として,範囲限定市場では一貫した損失を被る可能性があります.
シンプル・ムービング・メアリーは価格変動にゆっくり反応し,迅速な逆転を及ばない.
動的サポート/レジスタンスのレベルを決定する際に,誤ったブレイクリスクを完全に回避できないため,一定の遅れがある可能性があります.
最適化には過剰なフィットメントの危険性があります.ライブパフォーマンスがバックテスト結果から一定の程度に逸脱する可能性があります.
上記のリスクは以下によって軽減できます.
この戦略の改善にはまだ大きな余地があります.
移動平均の種類を試してみてください 例えば指数的なMA,KAMA
容積の多次元分析を行う.例えば,高潮容量,収縮.
機械学習を用いてパラメータの自動調整/更新を有効にする.
損失を削減し,市場を順位に合わせて ポジションを順位に変えるために 逆転指標を追加します.
基本データを含めて,個々の株のフェアバリューを決定する.
基準値特有のパラメータセットとバックテストワークフローの設計
概要すると,これは一般的な適用性のある典型的なトレンドフォロー戦略テンプレートです.価格アクション,ボリュームおよび他の次元を合成してノイズを効果的にフィルターします. しかし,トレンドフォロー戦略として,依然として体系的なリスクを持ち,信頼性のあるライブ取引を行う前に継続的な改善と最適化が必要です.
/*backtest start: 2023-12-16 00:00:00 end: 2024-01-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("PVSRA Strategy", overlay=true) // Price Action shortMaPeriod = input(50, "Short MA Period") longMaPeriod = input(25, "Long MA Period") shortMa = sma(close, shortMaPeriod) // Simple Moving Average for short period longMa = sma(close, longMaPeriod) // Simple Moving Average for long period // Volume Analysis volMaPeriod = input(25, "Volume MA Period") volMa = sma(volume, volMaPeriod) // Simple Moving Average for volume // Support and Resistance support = lowest(low, 30) resistance = highest(high, 30) // Entry Conditions longCondition = crossover(shortMa, longMa) and (volume > volMa) and (close > support) shortCondition = crossunder(shortMa, longMa) and (volume > volMa) and (close < resistance) // Plotting plot(shortMa, color=color.blue, title="Short MA") plot(longMa, color=color.red, title="Long MA") plot(support, color=color.green, title="Dynamic Support") plot(resistance, color=color.red, title="Dynamic Resistance") // Entering and Exiting Positions if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short)