これはスムーズストキャスティックオシレーター指標のK線とD線に基づいたモメンタムブレークアウト取引戦略です.K線をオーバーセールエリアにクロスオーバーして購入信号とストップとしてストップロスを使用します.
戦略は以下の部分からなる.
インディケーター設定
14 期間の RSI を用いて,K と D 線に 3 期間の SMA を適用して,スムーズストカスティックオシレーター指標の K と D 線を生成する.
シグナル生成
K線が20を超えると 買い信号が生成され ロングエントリーになります
損失を止める
トレイリングストップ損失は固定 トレイリングストップ距離で使用されます.また,過去20期間の最低値もストップ損失価格として使用されます.
位置 サイズ
ストップ・ロスト価格と現在の閉じる間のポイント数は,過去20期間の最低低値を使用して計算されます. その後,ポジションサイズは,取引ごとにリスクのドル金額とポイント毎の価値に基づいて計算されます.
この方法により,戦略は,過剰売り回転のインプットブレイクをエントリーシグナルとして特定し,正確なポジションサイズとトレードインプット回転のストップロスを採用し,効果的なリスク管理を行います.
この戦略には以下の利点があります.
突破のサインが明瞭だ 超買い区の突破で 強い勢い
市場変動に合わせて 柔軟なストップ動き
正確なポジションサイズ化により,単一の取引リスクが制御されます.
ストップ・ロスの正確な値が 過去の低値に基づいています
シンプルで明確な位置サイズロジック
シンプルで明快な戦略の論理 分かりやすい
簡単な読み取りと変更です
この戦略にはいくつかのリスクがあります:
価格変動 変動の多い市場では頻繁にストップロスを引き起こす
トレーディングよりも可能性が高い
価格の逆転から利益を得られない
市場状況のフィルタリングが不十分です. 変動市場中に頻繁にストップ・ロスは発生します.
リスク管理に役立つ最適化策は以下の通りです.
パラメータを最適化して 過剰な取引を避ける
一方向リスクを減らすために 段階的なエントリを使用します
より長い時間枠の傾向の分析を追加して,不利な市場条件での取引を避ける.
過剰な敏感性を防ぐためにストップ損失戦略を最適化します.
戦略の次の側面を最適化することができる:
ダイナミック・トライリング・ストップ,段階的なストップ・ロスト,移動平均等をよりスムーズにするため,ストップ・ロスを最適化します.
横向市場での取引を避けるため,より大きなタイムフレームのトレンドの分析を追加します.移動平均値,チャネルブレイクなどでトレンド分析を組み込むことができます.
引き下げから利益を得るために 2つの方向的な保有を考慮してください
自動パラメータ最適化のために機械学習を使用して 変化する市場条件に最適なパラメータを見つけます
固定パーセント,固定資本などを使って ポジションのサイズを最適化して 資本利用を改善します
取引信号の質を改善するために ボリンジャーバンドなどの指標でより多くのフィルターを追加します
総じて,これはシンプルで明確なモメンタムブレークアウト戦略である.単一の取引リスクを効果的に制御するために慎重なストップ・ロスのアプローチを採用している.しかし,戦略を特定の市場状況により良く適応させ,非効率な信号をフィルタリングし,リターンとリスクとの間のより良いバランスを達成するために,最適化が必要である.より大きなタイムフレームのトレンドの分析とポジションサイジングの強化は,この戦略のための重要な最適化方向である.要約すると,基本的なモメンタムブレークアウト戦略として,特定の取引機器の市場状況に適応するために,依然として実用的でさらに研究に値する.
//@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