この戦略の主なアイデアは,重度の移動平均の周りの重要なサポート/レジスタンスレベルをテストする反転によってポジションを取ることです.価格が上昇/下落し,移動平均をテストするために引き下げると,サポート/レジスタンスレベルを形成し,逆転機会を生む可能性があります.
この戦略は,重量移動平均指標に基づいています.まず,特定の長さのWMAを計算し,その後,価格がWMAから一定の範囲で突破するかどうかを監視します.ブレイクアウト距離が限界に達すると,矢印をグラフ化しポジションを開きます.ロングに行くには,価格が最初にいくつかの範囲で破裂する必要があります.ショートに行くには,価格は最初にいくつかの範囲で破裂する必要があります.ブレイクアウトを通じて逆転信号を形成し,WMA
ストラテジーは,トレイルパラメータを通じてトライリングストップ損失と固定ストップ損失の選択肢を提供しているため,ストップ損失範囲を調整することでリスクを制御することができる.また,制限オーダーで部分的な利益をロックする.さらに,タイムフィルターは,ポジションを開設するための特定の期間を制限することができます.
逆転戦略の最大の利点は,リバースセットアップと移動平均を組み合わせて,ポジションを開設するための重要な市場ターニングポイントを把握することにある.逆転戦略は,しばしば良い勝利率とリスク報酬比を有し,リスクは容易に制御できる.この戦略には,包括的なストップロストメカニズムと部分利益採取方法も備わっており,リスクを軽減し安定性を向上させるのにさらに役立ちます.
移動平均値に基づいているため,WMA長さ,ブレイクアウト範囲などの値を調整することで,異なる市場での適応性をテストすることで,パラメータの最適化に十分な余地があります.
最大のリスクは失敗した逆転です.もし価格が逆転信号を形成した後,ストップロスを起動したり,利益を得たりできず,元の方向に動いていれば,かなりの浮動損失が発生します.
また,パラメータ最適化にも大きく依存している.不適切なパラメータ設定は価格逆転タイミングを容易に見逃したり,誤った信号を生成したりする.十分なバックテストを通じて,市場の振る舞いを適切に理解し,パラメータ選択を慎重に評価することが必要です.
信号の質と精度を向上させるため,より多くの指標を導入することができる.例えば,価格逆転の前に,価格変動パターンを特徴付けるために,特に短期的なインクリメントデータ,特定の最近の期間における増量値がチェックされる.または,多因子モデリングのために価格の勢い,変動等を検出するために,特定の定量要因を追加することができる.
機械学習方法も試し,過去の取引信号と価格データに基づいて短期間の価格動きを予測することができます. これは誤った信号をフィルタリングし,信号品質を改善するのに役立ちます.
さらに,いくつかの適応型最適化メカニズムが実装され得る.実際の取引結果に応じて,パラメータまたはルール重量は,戦略の自己最適化とENOを実現するために動的に調整され得る.
この戦略の全体的な運用は安定している.合理的なパラメータ空間と市場環境内で,かなりの収益を達成することができる.最大の利点は制御可能なリスクと最適化の可能性にあります.次のステップは,信号品質を改善し,適応型最適化機能を組み込むことに焦点を当てます.継続的な改善により,この戦略は投資ポートフォリオで説得力のある選択になることができると考えられています.
/*backtest start: 2023-11-20 00:00:00 end: 2023-11-22 08:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="WMA Breakout",overlay=true, initial_capital=25000, default_qty_value=1, commission_type=strategy.commission.cash_per_contract, commission_value=3.02) len = input(20, minval=1, title="Length") src = input(close, title="Source") out = wma(src, len) price_drop = input(.003, "When price drops (In Ticks) Enter Long", step=.001) price_climb = input(.003, "When price climbs (In Ticks) Enter Short", step=.001) trail = input(true, "Trailing Stop(checked), Market stop(unchecked)") stop = input(10, "Stop (in ticks)", step=1) limit = input(5, "Limit Out", step=1) //size = input(1, "Limit Position Size (pyramiding)", minval=1) timec = input(true, "Limit Time of Day (Buying Side)") //Time Session sess = input("1600-0500", "Start/Stop trades (Est time)") t = time(timeframe.period, sess) //plots plot(wma(src,len)) z = if low+price_drop<out (out-low) plotarrow(z, colorup=red) a = if high-price_climb>out (high-out) plotarrow(a, colorup=lime) av=wma(src,len) //Orders if(timec) strategy.entry("Enterlong", long=true, when=z and t>1) else strategy.entry("Enterlong", long=true, when=z) if(trail) strategy.exit("Exit","Enterlong", profit=limit, trail_points = 0, trail_offset = stop ) else strategy.exit("Exit","Enterlong", profit=limit, loss = stop ) if(timec) strategy.entry("Entershort", long=false, when=a and t>1) else strategy.entry("Entershort", long=false, when=a) if(trail) strategy.exit("Exit","Entershort", profit=limit, trail_points = 0, trail_offset = stop ) else strategy.exit("Exit","Entershort", profit=limit, loss = stop )