モメンタムブレイクアウト戦略


作成日: 2023-10-23 15:17:45 最終変更日: 2023-10-23 15:17:45
コピー: 0 クリック数: 567
1
フォロー
1617
フォロワー

モメンタムブレイクアウト戦略

概要

この戦略は,ランダムな振動指標であるK線とD線に基づく動的突破取引戦略である.この戦略は,K線を超売り領域から超買い領域への逆転として買取信号として利用し,ストップ・ロードを追跡する.

戦略原則

この戦略は以下の部分から構成されています.

  1. 指数設定

RSI指標の14サイクルSmoothed Stoch指標のK線とD線を用い,それぞれ3サイクルSMAの平滑処理を行った.

  1. 信号生成

K線で20を買入シグナルとして打つとき,買入してポジションを開く.

  1. 損失を抑える方法

トラッキングストップ方式を採用し,固定トラッキングストップ距離を設定する.また,回測期間の20周期間の最低ポイントをストップポイントとして設定する.

  1. ポジション計算

回測期間の20周期間の最低点と現在のクローズアップ価格の間のポイント距離を計算します. 許容可能なドルストップ金額とポイント距離に基づいて各ポイントの値を計算します. 最後に,ポイント値に基づいて特定のポジションの大きさを計算します.

このように,この戦略は,超買区の反転の動力の突破を入場信号として利用し,精密に計算されたポジション管理とストップロスを追跡し,動力の反転取引を実現し,リスクを効果的に制御する.

戦略的優位性

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

  1. 入場信号は明快で,超売り区域を突破し,動力が強い.

  2. トラッキングストップを使用し,市場動向に応じて柔軟にストップすることができます.

  3. 正確に計算されたポジションの入場により,単一損失を効果的に制御する.

  4. 回測周期内でのストップ損失を計算し,正確なストップ損失を実現する.

  5. ポジションの計算はシンプルで操作が簡単です.

  6. 戦略の論理はシンプルで明快で,実行が分かりやすい.

  7. コード構造は明快で,読みやすく,二次開発が容易です.

戦略リスク

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

  1. 株自体が波動するリスクである.急激な状況では,止損が引き起こされる可能性が大きい.

  2. 過剰取引の危険性がある

  3. 反対方向の状況を利用できず,一方的な立場をとる.

  4. 動作背景を有効にフィルタリングできません.例えば,震動の動作で,停止が頻繁に引き起こされる可能性があります.

リスクの管理を最適化するには,次のことを行う必要があります.

  1. パラメータを最適化し,入場条件を調整し,頻繁に取引を避ける.

  2. 倉庫の建設期間が分散され,分批に建設され,一方的なリスクが軽減されます.

  3. 大規模な状況の背景に対する判断を高め,不利な状況で高頻度の取引を避ける.

  4. ストップ・ローズ戦略を最適化し,ストップ・ローズを過度に敏感にしないようにする.

戦略の最適化

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

  1. 停止策略を最適化し,停止を動的に追跡する,分期停止,移動停止などの方法を考慮して,停止をより滑らかにする.

  2. 大規模なトレンドの判断を増やし,取引振動のトレンドを避ける. 平均線,チャネルブレイクなどの方法でトレンドを判断することができます.

  3. 逆転ポジションを入れ,反発的な状況を利用して利益を得ることを検討することができます.

  4. 機械学習などの方法でパラメータを自動的に最適化することで,パラメータを異なる段階の状況により良く適応させることができます.

  5. ポジション管理戦略を最適化し,固定比率,固定資金などのOTHER方法を考えることができる.

  6. より多くのフィルタリング条件を追加し,より優れた機会の下で取引を行う. 合成取引量,ブリンラインなどの指標を最適化する.

要約する

この戦略は,全体として,よりシンプルで明確な動力突破戦略である.これは,より慎重な止損方法を採用し,単一損失を効果的に制御している.しかし,特定の市場状況に最適化調整を行う必要がある.戦略のパラメータを,市場により良く適応させ,効果のない取引信号をフィルターし,リターンとリスクの間のより良いバランスを取ることができる.同時に,大レベルのトレンドの判断とポジション管理を強化することは,この戦略の最適化が必要な方向でもある.全体として,この戦略は,基本的な動力突破戦略として,より実用的である.

ストラテジーソースコード
//@version=2
//descripcion: 
//entrada en saturacion oscilador estocastico
//salida por trailing
strategy("MomentumBreak#1", overlay=true,calc_on_every_tick=true,
     default_qty_type=strategy.fixed,currency="USD")
//entradas y variables de indicadores
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")
rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
overbought=input(80)
oversold=input(20)
//entradas de stop , trail, profit
stop=input(1500)
stop_dentro_de_los_ultimos_lows=input(20)
trail_points=input(500)
trail_offset=input(100)
profit=input(1000)
riesgo_en_dolares=input(15)

//condicion de compra: k>80
buycondition=crossover(k,oversold)
//entrada a la posicion
posicionabierta=0
if year>2015
    if buycondition 
        stoplow=lowest(stop_dentro_de_los_ultimos_lows)   
        riesgo_en_pips = (close - stoplow)   
        valor_del_pip = (riesgo_en_dolares / riesgo_en_pips)
        tamanio_de_la_posicion= ( valor_del_pip)              //la posicion la esta calculando bien
        strategy.entry("buy",strategy.long)
        strategy.exit("salida","buy",trail_points=trail_points,trail_offset=trail_offset,stop=stoplow,comment=tostring(stoplow))

//////////////////////////////////condicion de stop por drodown 10% equity
//strategy.risk.max_drawdown(15,strategy.cash)
// condicion de stop por perdida mayor a $15 en op abierta
//strategy.risk.max_intraday_loss(15,strategy.cash)
//formas de tomar stop:
// cuando llega a una media movil: strategy.close o strategyentry o strategy.exit o strategy.order
// determinado por un numero de pips strategy.exit
// determinado por el calculo de la posicion:
//tomar el minimo minimo de los ultimos 20 periodos, guardarlo como nivel de stop
//calcular la posicion en base a ese stop:
//prcio de entrada - precio de stop = pips_en-reisgo
//riesgo_e_dolares / pips_en_riesgo = pip_value
//position_size=10000 * pip_value