トレンドフォロー戦略に基づく


作成日: 2023-11-06 10:09:02 最終変更日: 2023-11-06 10:09:02
コピー: 0 クリック数: 672
1
フォロー
1617
フォロワー

トレンドフォロー戦略に基づく

概要

この戦略は,トレンドフォローの原理に基づいて,パラボリックSAR指標を使用して市場のトレンドの方向を判断し,バーカラー指標と組み合わせて,価格のブル&ベア状態を視覚的に表示し,トレンドが上昇するときに多めにし,トレンドが低下するときに空いて,市場トレンドによる利益を捕捉する.

戦略原則

この戦略は,市場トレンドの方向を判断するために,主にパラボリックSAR指数を使用します.パラボリックSARは,パラボリックラインの転換指数とも呼ばれ,それは2つのパラメータで構成されています.StepはSARポイントの移動の長さを代表し,MaxはSARポイントの最大歩みを代表します.市場がトレンド状態にあるとき,SARポイントは価格に緊密に貼り付けられ,トレンドの継続に伴い,上昇または下方へ移動し,トレンドが逆転すると,SARポイントは価格を横切って価格の反対側に出現します.したがって,SARポイントとKラインの高低関係を比較することで,現在のトレンドの方向を判断できます.

具体的には,SARポイントがK線最低値の下に位置すると,現在の上昇傾向にあることを代表し,この時点で戦略は多進します.SARポイントがK線最高値の上に位置すると,トレンドが逆転し,この時点で戦略は多進します.逆に,SARポイントがK線最高値の上に位置すると,現在の下落傾向にあることを代表し,この時点で戦略は空になります.SARポイントがK線最低値の下に位置すると,現在のトレンドが逆転し,この時点で戦略は空になります.

この策略は,現在のトレンド状況をより直観的に判断するために,バーカラー指標を使用してK線を色付けします. 收盘価格がSAR点より高い場合,K線は緑で上向きのトレンドを示し,收盘価格がSAR点より低い場合,K線は赤で下向きのトレンドを示します.

戦略的優位分析

この戦略の最大の利点は,市場動向を正確に捉え,トレンドを追跡して取引することであり,頻繁な市場ノイズによる干渉を避けることです.具体的利点は次のとおりです.

  1. パラボリックSAR指数を使用してトレンドを判断し,SARポイントは迅速かつ正確にトレンドの逆転を捉えるために非常に巧妙に設計されています.

  2. バルカラー指標は,牛とクマの現在の状態を直感的に表示します.

  3. 取引のシグナルは,他の要因ではなく,トレンド自体に由来し,短期的な価格変動によって誤導されることはありません.

  4. トレンドトラッキングのストップを用い,過度に敏感にストップを止め,ストップを防止する.

  5. 取引の方向を一致させ,逆操作をしないことで,不必要な取引を避けるのに役立ちます.

  6. 取引規則はシンプルでわかりやすく,理解し,実行しやすく,初心者向けに適しています.

戦略的リスク分析

この戦略の最大のリスクは,

  1. トレンドの初期と終期の機会を逃すのは簡単です.

  2. 取引を停止し,ポジションを保持し,利益を得ることができず,損失を止めることができず,被套のリスクがあります.

  3. 単一の取引の利回り率は制限できない.単一の損失は過大である可能性があります.

  4. 単一取引,多頭取引,空頭取引は,どちらかを捕まえるだけです.

  5. 大規模なトレンドの判断を考慮しないことで,大規模なトレンドへのヘッジの危険性がある.

  6. parametric optimal solution is found.

上記のリスクに対処するために,以下の点で最適化できます.

  1. 他の指標と組み合わせて,入場と出場の具体的な時間を決定する.

  2. トレンドを明らかにする指標を追加し,清算時にポジションを開くのを避ける.

  3. リスク管理のルールを設定し,単一損失を制限する.

  4. 取引機会を捉えるため,多空の切替ロジックを最適化します.

  5. 複数のタイムフレームの分析に加わることで,大レベルのトレンドの方向性を判断できます.

戦略最適化の方向性

この戦略は,以下の点でさらに改善できます.

  1. Parabolic SARのパラメータの設定を最適化して,異なる品種と周期に適したものにしました.

  2. 移動平均などの指標を組み合わせて入場時間をフィルタリングする.

  3. トレンドが始まってすぐに入場する.

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

  5. ストップ・ストップ戦略に参加し,利益が一定のレベルに達した後に積極的にストップします.

  6. 資金管理戦略の最適化,戦略のリスク調整の改善

  7. 複数の時間枠を最適化して,大レベルのトレンドと取引の方向を一致させる.

  8. 機械学習などの技術導入,動的最適化パラメータ.

要約する

この戦略は,Parabolic SAR指標によってトレンドの方向を判断し,トレンドが開始された直後にトレンドをフォローする.戦略の優点は,取引信号がトレンド自体に由来し,市場のノイズに容易に干渉されないことである.しかし,単一の取引のリスクを制限できないこと,入場のタイミングを逃すなどの問題もある.将来の最適化の方向は,ストップ・ストップ・ロスの策略を設定し,最適化パラメータの設定,フィルターの追加などを含み,戦略が反測とリアルディスクの両方でより良いパフォーマンスを得ることができる.

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

//@version=4
strategy("Trend Trader Strategy (Trend Code)", shorttitle="Trend Trader Strategy (Trend Code)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

//Inputs
TrendCode = input(5, title = "Trend Code")

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
 
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2019, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
 
////////////////////////////////////////////////////////////////////////////////

//Parabolic SAR
psar = sar(0.02, 0.02, TrendCode * 0.005)


//Plot PSAR
plot(psar, title="PSAR", color = color.teal , trackprice=true)

//Barcolor
barcolor(close > psar ? color.green : color.red, title = "Bar Color")

if (psar >= high and time_cond)
    strategy.entry("long", strategy.long, stop=psar, comment="long")
else
    strategy.cancel("long")

if (psar <= low and time_cond)
    strategy.entry("short", strategy.short, stop=psar, comment="short")
else
    strategy.cancel("short")
        
if (not time_cond)
    strategy.close_all()