移動平均クロスオーバー中間点戦略


作成日: 2023-12-13 17:38:23 最終変更日: 2023-12-13 17:38:23
コピー: 0 クリック数: 477
1
フォロー
1212
フォロワー

移動平均クロスオーバー中間点戦略

概要

移動平均の交差点策略は,トレンド追跡策略である.それは,中間指標と移動平均を組み合わせて,価格が中間指標と移動平均の交差点を突破するかどうかを判断することによって取引信号を生成する.

戦略原則

この戦略の核心指標は,中点指標である.中点指標は,特定の周期内の最高価格と最低価格の平均値である.最高価格と最低価格が市場の変動の二極を反映するので,その平均値は重要なサポートまたは抵抗点となる.

また,戦略に移動平均が導入されている.移動平均は価格データを平滑化し,トレンドの方向を判断する.

価格が上から中点指数と移動平均の交差点を通過すると,買入シグナルが生成され;価格が下から交差点を通過すると,売り出せシグナルが生成される.

この戦略の論理では,価格の突破の中央点と移動平均の交差点の突破を捕捉するだけで,順番に,中間回帰を捕捉して逆転操作を行うことができます.

優位分析

この戦略は,ミッドポイント指標と移動平均を組み合わせて,重要なサポート抵抗点とトレンドの方向を迅速に判断できる.

  1. 中点指標は,サポート・レジスタンス位置を正確に特定し,移動平均は,トレンドの方向を判断し,両者を組み合わせて,信頼性が高い.

  2. 交差点によってトレンドの転換点を判断し,偽突破の確率を減らす.

  3. 単一の指標が誤った判断を防ぐために,二線交差判断を用いること.

  4. 戦略はシンプルで明快で,理解し,実行しやすく,量化取引に適しています.

リスク分析

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

  1. 市場が急激に波動すると,ミッドポイント指数と移動平均は失効する可能性があります.

  2. 双線交差時に,一定程度の引き戻しテストまたは引き戻し圧力が発生し,止損のリスクが生じます.

  3. この戦略は,中短期の操作を主として,長線操作には適さない.

対応するリスク管理策は以下の通りです.

  1. 移動平均のパラメータを最適化し,平滑性を向上させる.

  2. 適切な止損幅を拡大して,復調圧に対応する.

  3. ポジション保持周期を短縮し,時効的にストップ・ストローを行う.

最適化の方向

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

  1. 中点指標と移動平均の周期パラメータを最適化して,最適なパラメータの組み合わせを探します.

  2. MACD,RSIなどの他の指標のフィルタを追加して信号の質を向上させる.

  3. 取引量検証を増加させ,低量偽破りを回避する.

  4. 波動率指数と組み合わせて,市場の波動に応じてストップ・ロスト・ポジションを調整する.

  5. 異なる市場と品種の適用性をテストする.

要約する

移動平均交差中点戦略は,中間指標と移動平均の優位性を統合し,交差状況を判断して,市場転換点をキャプチャするために,重要なサポートレジスタンス位の突破を判断する.戦略の最適化スペースは大きく,安定した収益が期待される.

ストラテジーソースコード
/*backtest
start: 2023-11-12 00:00:00
end: 2023-12-12 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/
// © MGULHANN
//@version=5
strategy('Forex Midpoint Stratejisi For Nasdaq ', overlay=true)
BPeriod = input(131, 'Başlangıç Period')
kaydirma = input(14, 'Kaydırma Seviyesi')
yuzdeseviyesi = input.float(0.0006, 'Yüzde Seviyesi', step=0.0001)
len = input.int(44, minval=1, title="Length")
src = input(close, title="Source")
out = ta.sma(src, len)

ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

typeMA = input.string(title = "Method", defval = "EMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title = "Length", defval = 53, minval = 1, maxval = 100, group="Smoothing")
smoothingLine = ma(out, smoothingLength, typeMA)
//plot(smoothingLine, title="Smoothing Line", color=color.red, linewidth = 2)

//zararDurdurmaYuzde = input.float(0.2, title='Zarar Durdurma %', step=0.01) / 100
//karAlmaYuzde = input.float(0.5, title='Kar Alma %', step=0.01) / 100


//MIDPOINT HESAPLA
midpoint1 = ta.highest(high, BPeriod) + ta.lowest(low, BPeriod)
midpoint2 = midpoint1 / 2
midyuzdeseviyesi = midpoint2 * yuzdeseviyesi
midtopdeger = midyuzdeseviyesi + midpoint2

//GİRİŞ KOŞULLARI
buycross = ta.crossover(smoothingLine, midtopdeger[kaydirma]) //? aort > ta.sma(close,50) : na
sellcross = ta.crossover(midtopdeger[kaydirma], smoothingLine) // ? aort < ta.sma(close,50) : na

//LONG GİRİŞ
if (buycross)
    strategy.entry("BUY", strategy.long)
    //longKarAl = strategy.position_avg_price * (1 + karAlmaYuzde)
    //longZararDurdur = strategy.position_avg_price * (1 - zararDurdurmaYuzde)
    //strategy.exit("Long Exit","Long", stop=longZararDurdur)
    
   
//SHORT GİRİŞ    
if (sellcross)
    strategy.entry("SELL", strategy.short)
    //shortKarAl = strategy.position_avg_price * (1 - karAlmaYuzde)
    //shortZararDurdur = strategy.position_avg_price * (1 + zararDurdurmaYuzde)
    //strategy.exit("Short Exit","Short", stop=shortZararDurdur)
   
//plot(midtopdeger, offset=kaydirma, linewidth=2, color=color.blue)