資源の読み込みに... 荷物...

シンプルな組み合わせ戦略:ピボットポイント スーパートレンドとDEMA

作者: リン・ハーンチャオチャン開催日:2024年6月17日 14:49:14
タグ:ATRDEMAエイマ

img

概要

この戦略は,ピボットポイントスーパートレンド指標とダブル指数関数移動平均 (DEMA) 指標を組み合わせて,これらの2つの指標との関係で価格位置を分析することで取引信号を生成する.価格がピボットポイントスーパートレンド指標を超えてDEMA指標より高くなった場合,ロング信号が生成される.価格がピボットポイントスーパートレンド指標を下回ってDEMA指標より低くなった場合,ショート信号が生成される.この戦略は,中長期市場傾向を把握し,短期価格変動にも対応することができる.

戦略原則

  1. ピボットポイントスーパートレンド指標を計算する: 中間値は,一定の期間の最高値と最低値の平均を取ることで計算され,その後,上位と下位帯は,動的サポートとレジスタンスのレベルを形成する平均真値範囲 (ATR) をベースに計算されます.
  2. DEMA指標を計算します.まず,閉店価格の指数関数移動平均 (EMA) を計算し,次にEMAのEMAを計算し,最終的にEMAの2倍からDEMAを引いて最終的なDEMA指標を得ます.
  3. 取引シグナルを生成する: 閉じる価格がピボットポイントスーパートレンドの上部帯を超えてDEMA指標より高くなった場合,ロングシグナルを生成する.閉じる価格がピボットポイントスーパートレンド下部帯を超えてDEMA指標より低くなった場合,ショートシグナルを生成する.
  4. Stop loss と take profit を設定する.ピップ値に基づいて特定のストップ損失と取利益価格を計算し,前もってストップ損失ピップを設定し,取利益ピップを計算する.

戦略 の 利点

  1. 強いトレンドフォロー能力:ピホットポイントスーパートレンド指標は,市場のトレンドを効果的に把握することができ,DEMA指標は価格ノイズを排除し,トレンド判断のためのよりスムーズな基盤を提供することができます.両者の組み合わせは,主要な市場トレンドを正確に把握することができます.
  2. 高い適応性:ピボットポイントスーパートレンド指標の上下帯を動的に調整することで,戦略は異なる市場の変動状況に適応し,適応性を向上させることができます.
  3. リスク管理能力が強い. 明確なストップ・ロースと収益ポジションを設定することで,単一の取引のリスクを効果的に制御し,既存の利益を間に合うように固定することができます.

戦略リスク

  1. パラメータ設定リスク:戦略のパフォーマンスは,ピボットポイント期間,ATR因子,DEMA長さなど,複数のパラメータの設定に依存する.異なるパラメータの組み合わせは戦略のパフォーマンスの大きな違いをもたらし,慎重に選択と最適化が必要である.
  2. 範囲限定の市場リスク:範囲限定の市場環境では,頻繁な取引シグナルが過剰な取引,取引コストの増加,スライプリスクを引き起こす可能性があります.
  3. トレンド逆転リスク: 市場傾向が逆転すると,戦略は連続した損失を経験し,他の分析方法と組み合わせて戦略を適時に調整する必要があります.

戦略の最適化方向

  1. パラメータ最適化: パラメータ最適化テストを異なる期間と取引手段で実施し,最適なパラメータ組み合わせを見つけ,戦略の安定性と収益性を向上させる.
  2. シグナルフィルタリング: 取引シグナルが生成されると,他の技術指標や価格行動特性と組み合わせてさらに確認され,シグナルの信頼性を向上させ,誤ったシグナルによる損失を減らすことができます.
  3. ポジション管理: 市場の変動と口座のリスク容量に応じて,各取引のポジションサイズを動的に調整し,全体的なリスク露出を制御する.
  4. ポートフォリオの最適化: この戦略を他の戦略や取引システムと組み合わせてリスクの多様化と安定性を高め,戦略の長期的パフォーマンスを向上させる.

概要

この戦略は,ピボットポイントスーパートレンド指標とDEMA指標を組み合わせることで,短期変動に対応しながら,市場の傾向を効果的に把握することができる.この戦略は,強いトレンドフォロー能力,強い適応性,強いリスク制御能力などの利点があるが,パラメータ設定,レンジバインド市場,トレンド逆転などのリスクにも直面している.パラメータ最適化,信号フィルタリング,ポジション管理,ポートフォリオ最適化を通じて,戦略の安定性と収益性がさらに向上し,異なる市場環境により良い適応が可能である.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Simple Combined Strategy: Pivot Point SuperTrend and DEMA", overlay=true)

// Pivot Point SuperTrend settings
prd = input.int(2, title="Pivot Point Period", minval=1, maxval=50)
Factor = input.float(3.0, title="ATR Factor", minval=1, step=0.1)
Pd = input.int(10, title="ATR Period", minval=1)

// Double EMA settings
demaLength = input.int(200, title="DEMA Length", minval=1)
src = input(close, title="Source")

// Pip settings
pipValue = input.float(0.0001, title="Pip Value")
stopLossPips = input.int(15, title="Stop Loss (pips)")
takeProfitPips = input.int(35, title="Take Profit (pips)")

// Pivot Point SuperTrend Calculation
float ph = ta.pivothigh(prd, prd)
float pl = ta.pivotlow(prd, prd)
var float center = na
if not na(ph)
    center := na(center) ? ph : (center * 2 + ph) / 3
if not na(pl)
    center := na(center) ? pl : (center * 2 + pl) / 3

Up = center - (Factor * ta.atr(Pd))
Dn = center + (Factor * ta.atr(Pd))
var float TUp = na
var float TDown = na
var int Trend = na

if na(Trend)
    TUp := Up
    TDown := Dn
    Trend := close > Dn ? 1 : -1
else
    TUp := close[1] > TUp[1] ? math.max(Up, TUp[1]) : Up
    TDown := close[1] < TDown[1] ? math.min(Dn, TDown[1]) : Dn
    Trend := close > TDown[1] ? 1 : close < TUp[1] ? -1 : nz(Trend[1], 1)

Trailingsl = Trend == 1 ? TUp : TDown
linecolor = Trend == 1 ? color.lime : color.red
plot(Trailingsl, color=linecolor, linewidth=2, title="PP SuperTrend")

// Double EMA Calculation
e1 = ta.ema(src, demaLength)
e2 = ta.ema(e1, demaLength)
dema = 2 * e1 - e2
plot(dema, "DEMA", color=color.new(#43A047, 0))

// Strategy Logic
longCondition = close > Trailingsl and close > dema and strategy.position_size <= 0
shortCondition = close < Trailingsl and close < dema and strategy.position_size >= 0

// Plot signals
plotshape(series=longCondition, title="Long", location=location.belowbar, color=color.green, style=shape.labelup, text="Long")
plotshape(series=shortCondition, title="Short", location=location.abovebar, color=color.red, style=shape.labeldown, text="Short")

// Strategy Entry and Exit
if (longCondition)
    strategy.entry("Long", strategy.long, stop=close - (stopLossPips * pipValue), limit=close + (takeProfitPips * pipValue))
if (shortCondition)
    strategy.entry("Short", strategy.short, stop=close + (stopLossPips * pipValue), limit=close - (takeProfitPips * pipValue))

alertcondition(longCondition, title="Long Alert", message="Long Signal")
alertcondition(shortCondition, title="Short Alert", message="Short Signal")


関連性

もっと