ウィリアムズ9日 脱出戦略

作者: リン・ハーンチャオチャン, 日付: 2023年10月17日 13:51:15
タグ:

img

概要

この戦略は,トレンドを決定するために9日間の移動平均の方向性を監視し,トレンドを追跡するためにブレークアウトポイントでポジションを取ることで,ラリー・ウィリアムズの9日間のブレークアウトコンセプトに基づいています.

戦略の論理

  • 傾向を判断するための指標として9日間のEMAを使用する
  • 価格がEMAを下から突破すると,上昇傾向と判断され,ロングポジションが取られます.
  • 上からEMAを下回る価格が下落すると,それは下落と判断され,ショートポジションが取られます.
  • 買い信号: オープニング価格が9日間のEMAより低く,閉じる価格が9日間のEMAより高く
  • 売り信号: オープニング価格が9日間のEMAより高く,閉じる価格が9日間のEMAより低く

具体的には

  1. 9 日間 EMA を計算する
  2. 日のキャンドルが購入条件を満たしているかどうかを確認します.つまり,開通価格は9日間のEMAより低く,閉じる価格は9日間のEMAより高くなります.
  3. 終了価格でロングポジションを取ります. ストップロスは前回の最高値に設定されます.
  4. 日のキャンドルが販売条件を満たしているかどうかを確認します.つまり,開通価格は9日間のEMAより高く,閉じる価格は9日間のEMAより低くなります.
  5. 満足した場合,前回のロングポジションを終了し,前回の低値で利益を取ります.

上記は 買取と売却の完全な論理を構成しています

利点分析

これは比較的シンプルな傾向であり,次の強みを持つ戦略に従います.

  1. EMA を使ってトレンドの方向性を判断することで,価格騒音を効果的にフィルタリングできます.
  2. EMAのブレイクでポジションを取ることは,トレンドの逆転をタイミングで把握することができます.
  3. 過去の高値をストップ・ロストと過去低値をメリット・テイクとして採用すると,トレンド利益が固定されます.
  4. 取引規則は明確でシンプルで,理解し実行するのが簡単で,初心者にも適しています
  5. 高い資本利用効率,常にポジションを保持する必要がない,トレンドブレイク時に短期的なポジションのみ

リスク と 最適化

この戦略には,次の側面からさらに最適化できるいくつかのリスクと欠陥があります.

  1. 9日間の EMA 期間設定は,異なる製品と市場条件に十分な柔軟性がない場合,適応 EMA 期間を導入することができます.
  2. 傾向を判断するために9日間のEMAのみを使用することは単純すぎるかもしれない.複数のタイムフレームEMAまたは他の指標を組み合わせることができます.
  3. 取引コストとスライドは考慮されません.これはライブ取引でPnLに重大な影響を与える可能性があります.
  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"



もっと