価格モメンタム追従戦略


作成日: 2024-01-03 17:32:14 最終変更日: 2024-01-03 17:32:14
コピー: 0 クリック数: 586
1
フォロー
1619
フォロワー

価格モメンタム追従戦略

概要

この戦略は,価格動力の指標を用いて取引の方向性を判断する.具体的には,平均線と平均価格をそれぞれ計算し,価格が平均線と平均価格を横切るときに買入シグナルを生成する.偽信号をフィルターするために,以前に同様のシグナルがないことを要求する.その後,シグナル状態を保存し,平均線判断と組み合わせて最終的な開場シグナルを生成する.戦略は,ストップ・ロズとストップ・ストップの設定を同時に含む.

戦略原則

この戦略は,主に価格動力の指標に基づいてトレンドの方向を判断する.まずは価格の平均線と平均価格を計算する.

swmaClose = swma(close)  
vwapClose = vwap(close)

その中でswma運動平均はvwap取引量加重平均価格である。この両方が価格平均を反映できる。

価格と平均値の大きさの関係を比較して,平均線と平均値の横断を判断し,看板信号であるかどうかを判断する.

swmaLong = close > swmaClose
vwapLong = close > vwapClose 

偽信号をフィルタリングするために,次の2つの指標を要求します.

triggerLong = vwapLong and not vwapLong[1] and not swmaLong and not swmaLong[1]

の信号を保存する:

saveLong = false, saveLong := triggerLong ? true : not vwapLong ? false : saveLong[1]

最後に,上昇信号が保存され,価格が再び平均線を越えると,開場信号が生成されます.

startLong = saveLong and swmaLong

偽信号をフィルタリングすることで,より信頼性の高い信号が送られます.

戦略には,止損停止セットも含まれている.止損距離は設定可能で,止損停止セットは止損停止の一定倍数である.

優位分析

この戦略の利点は以下の通りです.

  1. 価格動力の指標を用いて,トレンドの方向を判断する
  2. ダブルメーターとマルチステップ判断を組み合わせて,偽信号をフィルタリングして,戦略をより信頼性のあるものにします.
  3. ストップ・ロスト・ストップの設定は合理的で,単一取引のリスクをコントロールできます.
  4. 戦略パラメータは,異なる市場環境に対応して構成可能
  5. 戦略の論理はシンプルで直接的で,理解しやすい.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. 平均線指標は遅滞しており,価格変動の一部を逃している可能性があります.
  2. 効果はパラメータ設定に依存し,異なるパラメータの組み合わせによって効果は大きく異なる.
  3. 買点信号が少ないため,券漏れのリスクがある.
  4. 複数のステップで判断することで,一部の機会をフィルタリングし,利益のレベルに影響を及ぼす可能性があります.

対策として

  1. 異なる均線パラメータをテストし,パラメータ設定を最適化できます.
  2. 判断の論理を適切に簡素化し,買点信号を増やす.
  3. ストップ・ストップ・ストップの比率を調整し,単一損失を制御する

最適化の方向

この戦略は以下の方向から最適化できます.

  1. MACD,DMIなどの価格動向指標をテストする
  2. 売り込み信号の判断を高め,両方向取引を実現する
  3. 取引量指数と組み合わせることで,潜在的偽突破を回避する.
  4. 回測結果による最適化パラメータ設定
  5. 市場環境に応じて自動的に調整するパラメータを考慮する
  6. 機械学習アルゴリズムを追加し,パラメータの自己適応最適化を実現する

これらの最適化により,戦略の柔軟性,安定性,収益性が向上します.

要約する

この価格動量追跡策略は,全体として,シンプルで直接で,論理的に明確なトレンド追跡策略である. 策略は,価格動量方向を判断する価格平均線と平均価格を使用し,信号品質を向上させるため,多段階の検証メカニズムを設計している. 策略は,合理的なストップストップの設定も含んでいる. コード量から見ると,策略の論理は非常に簡潔で,わずか20行以上のpineスクリプトで実現できる.

ストラテジーソースコード
/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title = "Simple Price Momentum", shorttitle = "SPM", overlay = true, initial_capital = 20000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_value = 0.025)

// How To Create A Simple Trading Strategy With TradingView
// https://docs.google.com/document/d/1fXxCtPuGgTXb-RuBJNbwlfgkeiLTK5060LfTrzRlr5k/view

swmaClose = swma(close)
vwapClose = vwap(close)

swmaLong = close > swmaClose
vwapLong = close > vwapClose

triggerLong = vwapLong and not vwapLong[1] and not swmaLong and not swmaLong[1]
saveLong = false, saveLong := triggerLong ? true : not vwapLong ? false : saveLong[1]

startLong = saveLong and swmaLong
startLong := input(false, "Consecutive Orders") ? startLong : startLong and not startLong[1]

stopLoss = input(250, "Stop Loss", step = 50)
takeProfit = input(10, "Reward/Risk") * stopLoss

strategy.entry("Open Long", strategy.long, when = startLong)
strategy.exit("Exit Long", "Open Long", profit = stopLoss, loss = takeProfit)

// bgcolor(swmaLong ? color.blue : na)
// bgcolor(vwapLong ? color.orange : na)
// bgcolor(triggerLong ? color.purple : na)
// bgcolor(saveLong ? color.yellow : na)
bgcolor(startLong[1] ? color.green : na)