短期二重移動平均戦略


作成日: 2023-11-02 15:10:04 最終変更日: 2023-11-02 15:10:04
コピー: 1 クリック数: 725
1
フォロー
1617
フォロワー

短期二重移動平均戦略

概要

双均線戦略は,比較的一般的な短線取引戦略である.この戦略は,異なる周期の平均値を計算して,市場傾向の方向を判断して,入場を行う.短周期平均線上を長周期平均線に突破するときは,多行し,短周期平均線下を長周期平均線に突破するときは,空行する.

戦略原則

この戦略の核心的な論理は:

  1. 2つの異なる周期の平均線,長周期平均線,短周期平均線を計算する.ここでは開盤価格と閉盤価格の平均線を使用する.

  2. 短期平均線が長期平均線に貫通しているかどうかを判断する.短線上に長線を貫通すると,市場が上昇傾向にあることを示し,多めにすることができる.短線下に長線を貫通すると,市場が下降傾向にあることを示し,空きすることができる.

  3. トレンド方向に応じて空き時間を増やす。具体的には,短周期平均線上を長周期平均線に横切るとき,空き時間を増やす。短周期平均線下を長周期平均線に横切るとき,空き時間を増やす。

  4. ストップ・ダメージとストップ・ストップは,実際の状況に応じて設定されます.

戦略全体は均線のトレンド判断機能を利用し,市場の短期および長期のトレンドの関係を判断し,より短い中短線の動きを捕捉する.この戦略の論理はシンプルで明快で,双均線交差によって動きが継続的なペースの転換から逸脱することを判断し,これによって取引操作を行う.

戦略的優位性

双方向戦略には以下の利点があります.

  1. シンプルで理解し,実行しやすい.

  2. 明確な入場タイミングと出場基準がある

  3. 平均線パラメータを調整することで,異なる市場環境に適応することができる.

  4. 傾向と逆転を考慮して,中短線を捉えることができます.

  5. リスク管理のための Stop Loss Logic がある.

戦略リスク

双方向戦略にはいくつかのリスクがあります.

  1. 市場が震動整理段階にあるとき,止損は頻繁にトリガーされることがあります.

  2. 大幅に波動する市場では,均線生成のシグナルが頻繁になり,ポジション維持に不利である.

  3. 双均線自体は後退性があるため,短線での反転のチャンスを逃す可能性がある.

  4. パラメータの最適化に注意し,適切な平均線周期を設定する必要があります.

  5. 平均線交差には遅延があり,入場時間は遅れる可能性があります.

戦略最適化の方向性

この戦略の最適化方向は以下の通りです.

  1. 平均線周期パラメータを最適化して,異なる状況に適応する.パラメータ反測最適化を行うことができる.

  2. 他の指標をフィルターに追加し,震動の際に被套されないようにする.MACD,KDなどの補助として加えることができる.

  3. トレンド判断指標を足し,明確な傾向がないときに頻繁に取引を避ける. EMAなどのトレンド判断指標を足し,テストすることができます.

  4. 取引量指数も考慮できる.

  5. ストップ・ストラトジーを最適化し,大レベルのサポート位の近くでストップ・ストラトジーを設定する.

要約する

双均線戦略は均線交差判断傾向に基づく簡潔な短線戦略である.優点は考え方が簡潔で操作が容易であること;欠点は,波動的な市場に容易く巻き込まれること,および後退性があることである.パラメータの最適化,フィルタリング指標の追加などの方法でこの戦略を最適化して,複雑な市場環境に適したものにすることができる.

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

//@version=2
strategy("GetTrendStrategy timing", overlay=true)
tim=input('370')
 
//////////////////////////////////////////////////////////////////////
// Component Code Start
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(10, "Backtest Start Month")
testStartDay = input(25, "Backtest Start Day")
testStartHour = input(7, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,0)
testStopYear = input(2017, "Backtest Stop Year")
testStopMonth = input(10, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testStopHour = input(13, "Backtest stop Hour")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,testStartHour,0)
 
testPeriod() => true
// Component Code Stop
//////////////////////////////////////////////////////////////////////
 
 
out1 = request.security(syminfo.tickerid, tim, open)
out2 = request.security(syminfo.tickerid, tim, close)
plot(out1,color=red)
plot(out2,color=green)
longCondition = crossover(request.security(syminfo.tickerid, tim, close),request.security(syminfo.tickerid, tim, open))
 
if testPeriod()
    if (longCondition)
        strategy.entry("long", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, tim, close),request.security(syminfo.tickerid, tim, open))
 
if testPeriod()
    if (shortCondition)
        strategy.entry("short", strategy.short)