ウィリアムズ 9 日間トレンドブレイクアウト戦略


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

ウィリアムズ 9 日間トレンドブレイクアウト戦略

概要

この戦略はラリー・ウィリアムズの9日突破の理念に基づいて,9日移動平均の方向をモニタリングすることによってトレンドを判断し,突破点で入場し,トレンドの実行に従います.

戦略原則

  • 9日指数移動平均EMAをトレンドの指標として使用
  • 価格がEMAの下から上方へ突破すると,看板として判断し,購入します.
  • 価格がEMA上から下を突破すると,下落と判断して,売り込み
  • 買取シグナル:開場価格は9日EMAより低く,閉場価格は9日EMAより高く
  • 販売シグナル:開場価格は9日EMAより高く,閉場価格は9日EMAより低い

具体的には:

  1. 9日間のEMAを計算する
  2. 当日のK線が購入条件を満たしているかどうかを判断します.つまり,開場価格は9日EMAより低く,閉場価格は9日EMAより高く
  3. もし満たされれば,閉店価格の位置で多額の入場を行い,ストップ・ロスは前高点に設定されます.
  4. 当日のK線が9日EMAより高い開場価格と9日EMAより低い閉場価格のセール条件を満たしているかどうかを判断する
  5. 値が満たされれば,前回の入場ポイントをさらに増やして売り出し,前回の安値に止まる.

買ったり売ったりする論理をまとめたものです.

優位分析

これは単純にトレンドを追跡する戦略で,以下の利点があります.

  1. EMAは,トレンドの方向を判断し,価格のわずかな変動のノイズを効果的に消去します.
  2. EMAの突破点での入場により,トレンドの転換を把握できます.
  3. 前回の高点をストップとして,前回の低点をストップとして,トレンドの利潤をロックすることができます.
  4. 取引規則は明確でシンプルで,理解しやすい実装で,初心者の学習に適しています.
  5. 資金使用効率が高く,全過程の保有は必要なく,トレンドの突破点での短期保有のみ

リスクと最適化

この戦略にはいくつかのリスクと欠陥があり,以下のような点でさらに最適化できます.

  1. EMA周期は9日設定され,異なる品種と市場状況に対して柔軟性が不足しているため,適応的なEMA周期を導入することができます.
  2. 9日間のEMAのみでトレンドを判断することは過度に単純であり,複数の時間周期EMAまたは他の指標を組み合わせて判断することができます.
  3. 取引コストと滑り点を考慮せずに,実盤では,この2つが利益と損失に大きな影響を与える.
  4. ストップ・ローズ・ストップ・プローファーを設定せず,単一の取引のリスク/リターン比率を制御できません.
  5. 入力信号は,不必要な小切手を生成する複数の振動が発生し,フィルタリング条件を設定できます.

全体として,この戦略は,ダイナミックパラメータの最適化,多要素判断,取引コスト管理,リスク・リターン・コントロールなどの面で改善され,異なる市場状況に戦略をより安定的に適応させることができます.

要約する

ウィリアムズ9日突破戦略は,より古典的な短期トレンド戦略であり,核心思想はシンプルで明確で,EMAがトレンドの方向を判断し,突破点で入場し,トレンドの走行を追跡し,適時にストップ・ロスを行う.この戦略は,理解し易く実行され,資金の使用効率が高く,しかし,いくつかの欠点もある.我々は,多角度で最適化して,戦略パラメータをより動的・柔軟に,判断ルールをより厳格に包括的に,リスク・利益制御をより完善に,より広範な市場状況に適応させ,戦略の安定性と収益性を向上させることができる.

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

//@version=3
strategy("larry willians teste2", overlay=true)

//Window of time
start     = timestamp(2019, 00, 00, 00, 00)  // backtest start window
finish    = timestamp(2019, 12, 31, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"  

ema9=ema(close,9) // Ema de 9 periodos

//Condições de compra
c1= (open< ema9 and close > ema9) //abrir abaixo da ema9 e fechar acima da ema9

if(window())
    if(c1)
        strategy.entry("Compra", true, stop = high) // Coloca ordem stopgain no topo anterior
    else
        strategy.cancel("Compra") // Cancela a ordem se o proximo candle não "pegar"
        
//codições de venda
v1= (open> ema9 and close < ema9) // abrir acima da ema9 e fechar abaixo ema9

if(window())
    if (v1)
        strategy.exit("Venda", from_entry = "Compra", stop = low) // Saida da entrada com stop no fundo anterior
    else
        strategy.cancel("Venda") //Cancela a ordem se o proximo candle não "pegar"