MACDインジケーターの底反転警告戦略


作成日: 2023-12-07 11:11:09 最終変更日: 2023-12-07 11:11:09
コピー: 0 クリック数: 680
1
フォロー
1619
フォロワー

MACDインジケーターの底反転警告戦略

概要

MACD指数底部逆転予警策は,MACD指数の速走線を分析して,現在の価格が歴史的な高点か低点か,逆転が迫っているかどうかを判断し,市場の価格動向の迅速な判断を実現する.

戦略原則

この戦略は,MACD標準指標の出力からの快線と慢線に対応するデータを,価格が逆転前の臨界領域に入るか否かを判断するために,フィルタリングし,買いまたは売り信号を発する.

具体的には,戦略は,MACDの快線と慢線の金叉と死叉を計算して,価格が上昇傾向の底部地域に入るか,下降傾向の頂部地域に入るか判断する.金叉では,クローズ価格が前のバーのクローズ価格より高く,diffは前のバーのdiffより高く,底部地域に入ると判断し,底部反転警告信号を発する.死叉では,クローズ価格が前のバーのクローズ価格より低く,前バーのdiffは現在のdiffより高く,頂部地域に入ると判断し,頂部反転警告信号を発する.

優位分析

  1. MACD指数を使って,大株の動きを正確に判断する
  2. 下と上の反転予報で,反転の機会を把握する
  3. 短線関係と短線関係で 誤った判断を避ける
  4. アラームを追加し,市場の変化をリアルタイムで監視できます.

リスク分析

  1. MACD指数自体は遅滞しているため,正確な転換点を特定することができません.
  2. 異なる取引品種と時間周期に適したパラメータの調整が必要
  3. 逆転の幅と後進を判断できない
  4. 取引量の変化を判断する際の 逆転の信頼性も考慮する必要がある

解決策は

  1. K線形,取引量変化などの他の指標と組み合わせた判断
  2. 異なる取引品種と時間周期に適したパラメータの調整
  3. リスクの管理

最適化の方向

  1. MACD指標のパラメータを最適化して,底と頂を判断する
  2. ストップ・ロジックを増やし,損失を拡大しないようにする.
  3. 取引量の変化と組み合わせた反転信頼性
  4. 機械学習モデルの判断の逆転確率を増加させる

要約する

MACD指数底部逆転警告策は,MACD快速・緩慢線交差状況を分析して,価格が逆転の臨界区域に入っているかどうかを判断することで,底部と頂点を効果的に発見し,取引決定に指針を提供できます.しかし,MACDは,判断が遅れているため,正確な逆転点と逆転力を決定することはできません.したがって,パラメータを適切に調整し,他の指標と組み合わせて使用し,リスクを制御し,この策の有効性を将来発揮する必要があります.機械学習などの技術の導入により,判断の正確性をさらに向上することができます.

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

    // ____  __    ___   ________ ___________  ___________ __  ____ ___ 
   // / __ )/ /   /   | / ____/ //_/ ____/   |/_  __<  / // / / __ |__ \
  // / __  / /   / /| |/ /   / ,< / /   / /| | / /  / / // /_/ / / __/ /
 // / /_/ / /___/ ___ / /___/ /| / /___/ ___ |/ /  / /__  __/ /_/ / __/ 
// /_____/_____/_/  |_\____/_/ |_\____/_/  |_/_/  /_/  /_/  \____/____/                                              

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © blackcat1402

//@version=5
strategy("[blackcat] L2 Reversal Labels Strategy", overlay=true,  max_bars_back=5000, max_labels_count=500)

[diff, dea, macd] = ta.macd(close,12, 26, 9)
a1 = ta.barssince(ta.crossover(diff,dea)[1])
a2 = ta.barssince(ta.crossunder(diff,dea)[1])
bottom_zone = (close[a1+1]>close) and (diff>diff[a1+1]) and ta.crossover(diff,dea)
top_zone = (close[a2+1]<close) and (diff[a2+1]>diff) and ta.crossunder(diff,dea)

// Plot labels
l0 = top_zone ? label.new(bar_index, high * 1.0, 'Near Top', color=color.new(color.red, 50), textcolor=color.white, style=label.style_label_down, yloc=yloc.price, size=size.small) : bottom_zone ? label.new(bar_index, low * 1.0, 'Near Bottom', color=color.new(color.green, 50), textcolor=color.white, style=label.style_label_up, yloc=yloc.price, size=size.small) : na

if bottom_zone
    longmsg = 'Bottom Reversal Soon!'
    alert(message=longmsg, freq=alert.freq_once_per_bar_close)
else if top_zone
    shortmsg = 'Top Reversal Soon!'
    alert(message=shortmsg, freq=alert.freq_once_per_bar_close)


longCondition = bottom_zone
if (longCondition)
    strategy.entry("long", strategy.long)

shortCondition = top_zone
if (shortCondition)
    strategy.entry("short", strategy.short)