タートルブレイクアウトEMAクロスオーバー戦略


作成日: 2023-11-07 15:40:08 最終変更日: 2023-11-07 15:40:08
コピー: 0 クリック数: 619
1
フォロー
1617
フォロワー

タートルブレイクアウトEMAクロスオーバー戦略

概要

この戦略は,2つの異なる周期のEMA平均線を用いて,それらの交差によってトレンドの逆転を判断し,これにより入場と出場の信号となる.戦略は単純に分かりやすく,操作が容易である.

戦略原則

この策略は,ta.ema関数を使用して,短期間および長期のトレンドを表す10周期の長さ,20周期の長さを持つ2つのEMA平均線を計算する.コードは,ta.crossoverとta.crossunderによって,2つのEMAの交差を判断し,短期間EMAで長期間EMAを横切るときは多し,短期間EMAの下で長期間EMAを横切るときは空にする.このように,異なる周期EMA平均線の交差を利用して,トレンドの転換点を捉える.

この戦略はまた,変数lastCrossTimeを使用して,最後の交差時間を記録し,重複の交差が意味のない取引を生じることを防止する.有効な交差ごとに,最初に現在のすべてのポジションを平準化して,交差方向に従ってポジションを開設し,その後,ポジションを開設し,ストップ・ロスの平準化ポジションの出場を設定する.

戦略的優位性

  1. 戦略はシンプルでわかりやすく,理解しやすく,操作しやすい.

  2. EMAを交差してトレンドの逆転点を判断する,よく使われる効果的な技術指標策である.

  3. 異なる周期のEMAを使用すると,大きなトレンドを把握すると同時に,短期的な変化に対する感受性を高めることができます.

  4. ストップ・ストップ・ロスを設定し,単一の取引のリスクと利益を制御します.

  5. ラストクロスタイムの変数フィルタを使用して重複信号を回避し,無駄な取引を避ける.

戦略リスク

  1. EMA交差は誤信号を発生しやすいため,誤判の危険性がある.

  2. 固定TPとSLは,市場の変化に対応するのが難しいので,動的ストップ・ストップ・ロスを設定する必要があります.

  3. EMAの交差点のみをベースにしたシステムは,震動の状況で損失を招く可能性があります.

  4. 取引コストの影響は考慮しないが,実際の操作では,スプレッドなどの取引コストに注意する必要がある.

  5. この策略は,傾向的な状況で適用され,震動的な状況ではうまくいかない可能性があります.

停止停止損失を最適化,フィルタリング条件を追加,その他の指標を組み合わせて改善することができる. 實動ではリスクを厳格に制御し,単一の損失を過大にしないようにする必要があります.

戦略最適化の方向性

  1. EMAの最適化パラメータをテストして,より適切な周期組み合わせを探せます.

  2. KDJ,MACDなどの補助指標の判断を増やす. 震動の状況で無意味な取引を避ける.

  3. 動的ストップストップを設定します. 例えば,トレンドに沿った限界ストップ.

  4. 取引量に対する判断を高め,大量に登場した場合には再入場を検討する.

  5. 重要な抵抗点を突破するなど,他のグラフィック形状と組み合わせて判断する.

  6. 固定ディスクのコスト影響を考慮して,合理的なストップ・ストップ・損失幅を設定する.

要約する

この戦略の全体的な考え方は単純で明快で,EMA均線を活用して急激にトレンドを逆転させ,ストップ・ロスを併用してリスク収益を制御する.戦略は操作が容易であるが,EMAクロスには一定の誤判リスクがあり,指標パラメータをさらに最適化し,誤判を減らすために他の技術指標で補完する必要がある.トレンドの状況では効果が良いが,震動の状況では困惑しやすい.リアルタイムで取引を厳密に管理し,ストップ・ロスの幅を最適化し,適切な小ポジションを縮小する.全体的に,この戦略は,定量化取引の入門学習として基本的なトレンド追跡戦略である.

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

//@version=5
strategy('XXXquang', overlay=true)

// Sử dụng hàm input.int() và input.float() để tạo các trường nhập liệu với giới hạn giá trị
length1 = input.int(10, title="Length EMA Short", minval=1)
length2 = input.int(20, title="Length EMA Long", minval=1)
lotSize = input.int(1, title="Lot Size", minval=1)

takeProfitLevel = input.int(600, title="Take Profit Level", minval=1)
stopLossLevel = input.int(200, title="Stop Loss Level", minval=1)

ema1 = ta.ema(close, length1)
ema2 = ta.ema(close, length2)

var float lastCrossTime = na

if ta.crossover(ema1, ema2)
    if na(lastCrossTime)
        strategy.close_all()
    strategy.entry('Buy Order', strategy.long, qty=lotSize)
    strategy.exit('Exit Buy', 'Buy Order', profit=takeProfitLevel / syminfo.pointvalue, loss=stopLossLevel / syminfo.pointvalue)
    lastCrossTime := timenow

if ta.crossunder(ema1, ema2)
    if na(lastCrossTime)
        strategy.close_all()
    strategy.entry('Sell Order', strategy.short, qty=lotSize)
    strategy.exit('Exit Sell', 'Sell Order', profit=takeProfitLevel / syminfo.pointvalue, loss=stopLossLevel / syminfo.pointvalue)
    lastCrossTime := timenow

plot(ema1, title='EMA Short', color=color.new(color.blue, 0), linewidth=2)
plot(ema2, title='EMA Long', color=color.new(color.red, 0), linewidth=2)