マルチタイムフレーム移動平均プルバック取引戦略


作成日: 2024-02-29 11:20:28 最終変更日: 2024-02-29 11:20:28
コピー: 1 クリック数: 673
1
フォロー
1617
フォロワー

マルチタイムフレーム移動平均プルバック取引戦略

概要

この戦略は,複数時間枠均線の方法を採用し,長期均線を使用して大トレンドの方向を判断し,短期均線は短期トレンドの方向を判断し,長線と短線がトレンドを確認したときに,入場し,多/空にする.短線が長線の近くに回調し,短期調整入場機会を形成すると判断し,その時に逆操作を行う.この戦略は,主に中長期トレンドの株に適用される.

戦略原則

この戦略は,200日単調移動平均線を用いて長期トレンドの方向を判断し,10日単調移動平均線を用いて短期トレンドの方向を判断する. 200日平均線より高く,10日平均線より低く,株価が長線上昇と短線回調の段階にあることを示すとき,このとき多行する. 株価が200日平均線より低く,10日平均線より高く,このとき長線下降と短線反発の段階にあることを示すとき,このとき空行する.

具体的には,次の条件を満たす場合,多入場を行う: 閉盘価格>200日平均線,そして閉盘価格<10日平均線; 閉盘価格<200日平均線,そして閉盘価格>10日平均線.

入場後にストップ・ロズメカニズムを設定し,購入価格から10%以上引き戻せばストップ・ロズアウトする。また,i_lowerCloseオプションを設定すると,より低い閉盘価格が現れるまで待って再出場する,これはストップ・ロズを過度に敏感にしないようにする。

優位分析

この戦略は,多時間枠平均線と組み合わせて,より高い確率で中長線のトレンドの方向を捉えることができる.短期平均線が長期平均線に回調するときに,utsch戦略は,入場の良いタイミングを提供する.単一の平均線システムと比較して,短期的な調整のために套用される確率は減少することができる.

この戦略のリスクは制御可能である.損失を制御するために10%のストップスレートが設定され,特定の時間帯で取引を避けるために時間フィルター条件が設定されている.

リスク分析

この戦略は,セットされるリスクが残っている.短線調整の時間が長すぎるとか,調整幅が大きすぎると,ストップ・ロスを引き起こす可能性があり,セットアウトされる.この場合,損失のリスクがある.

この戦略は取引品種に適していない.波動性があり,調整時間が長い株式の場合,この戦略は,損耗出場が容易で,効果が悪い.

市場全体で大きな調整が起きた場合でも,この戦略は大きな損失に直面する.例えば,金融危機の間,この戦略は利益を得ることが困難になるかもしれない.

最適化の方向

より多くの均線システムを導入し,複数の選機構を形成することができる.例えば,50日均線を加入し,閉盘価格が50日均線と200日均線の間にある場合にのみ入場を考慮する.これは,さらに傾向性のある良き品種を選することができる.

浮動ストップを設定できる.具体的には,入場後,株式の波動範囲に応じて変動するストップ幅を設定できる.固定10%のストップではなく.これは,不必要なストップが誘発される確率を減らすことができる.

他の指標と組み合わせて市場状況を判断できる.例えばMACDは,MACDが市場脱出を示しているときに,この戦略を一時停止して損失を避けることができる.これは,大市場の判断に基づいて戦略の開始と終了を制御できる.

要約する

この戦略は全体的に典型的な多時間枠均線戦略である。長短平均線と組み合わせて,中長線のトレンドを捕捉しながら,短線回調のチャンスを掴む.戦略のリスクも制御可能な範囲にある。より多くの指標を導入し,損失停止方法を最適化することで,この戦略の安定性をさらに強化することができる。

ストラテジーソースコード
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © irfanp056
// @version=5

strategy("Simple Pullback Strategy", 
     overlay=true) // Interactive Brokers rate

// Get user input
i_ma1           = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2           = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent   = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose    = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime     = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")

// Get indicator values
ma1 = ta.sma(close, i_ma1)
ma2 = ta.sma(close, i_ma2)

// Check filter(s)
f_dateFilter = true

// Check buy/sell conditions
var float buyPrice = 0
buyCondition    = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition   = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance    = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice       = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition   = strategy.position_size > 0 and stopDistance > i_stopPercent

// Enter positions
if buyCondition
    strategy.entry(id="Long", direction=strategy.long)

if buyCondition[1]
    buyPrice := open

// Exit positions
if sellCondition or stopCondition
    strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
    buyPrice := na

// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)