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

TRAMA 双動平均 クロスオーバー インテリジェント量的な取引戦略

作者: リン・ハーンチャオチャン,日付: 2024-11-29 15:25:13
タグ:SMAトラマ

img

概要

TRAMA (Triangular Moving Average) とSimple Moving Average (SMA) をベースとしたインテリジェントな定量的な取引戦略である.この戦略は,取引信号を生成するための2つの移動平均システムを組み合わせ,リスク制御のためのストップ・ロス/テイク・プロフィートメカニズムを実装する.TRAMA指標とともに4期および28期SMAクロスオーバーを使用して取引信号を確認し,複数の信号確認を通じて精度を向上させる.

戦略の原則

トレーディング・シグナル生成には2つのコアコンポーネントが採用されている.まずは4期および28期SMAをベースとしたクロスオーバーシステムで,短期MAが長期MAを超えると長い信号と,下を横切ると短い信号を生成する.次に,戦略はTRAMA指標を補助確認システムとして組み込む.TRAMAは,応答時間が早く遅延が少ない改善された移動平均値である.価格がTRAMAを通過すると追加の取引信号が生成される.この戦略には,それぞれ2%と1%で設定された割合ベースのテイク・プロフィートとストップ・ロスのメカニズムも含まれている.

戦略 の 利点

  1. 二重信号確認メカニズムは,取引の信頼性を著しく向上させる
  2. TRAMA インディケーターにより,市場の動向の変化をより迅速に把握できる
  3. ストップ・ロストとテイク・プロフィートのレベルを通じて明確なリスク管理メカニズム
  4. 明確で維持しやすい戦略論理
  5. 長期取引と短期取引の両方を可能にし,利益の機会を増やす

戦略リスク

  1. 複数の市場で過剰な取引信号を生む可能性があります.
  2. 固定ストップ・ロストとテイク・プロフィートの割合は,すべての市場条件に適合しない可能性があります.
  3. 短期移動平均は価格ノイズに敏感である可能性があります.
  4. 不安定な市場における潜在的スリップリスク
  5. 戦略の業績に対する取引コストの影響を考慮する必要性

戦略の最適化方向

  1. 変動に適応したストップ・ロストと収益のメカニズムを導入する
  2. 異なる条件下で戦略パラメータを調整するために市場環境フィルターを追加する
  3. TRAMA パラメータ選択方法を最適化し,適応期間の使用を検討する
  4. 信号信頼性を向上させるため,音量確認指標を追加する
  5. 傾向強度フィルターを追加して,弱いトレンドで取引しないようにする.

概要

この戦略は,伝統的な技術分析と近代的な定量的な取引概念を組み合わせた戦略である.複数の信号の確認と厳格なリスク管理を通じて,この戦略は良い実用性を示している.最適化の分野がある一方で,全体的なフレームワークデザインは良い応用見通しで合理的である.トレーダーは,ライブ取引の前に徹底的な歴史的データバックテストとパラメータ最適化を行うことをお勧めする.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
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/
// © ivanvallejoc

//@version=5
strategy("MANCOS2.0", overlay=true, margin_long=80, margin_short=80)

longCondition = ta.crossover(ta.sma(close, 4), ta.sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = ta.crossunder(ta.sma(close, 4), ta.sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

// Parámetros de la TRAMA
length = input(1.5, title="TRAMA Length")
src = close
filt = 2 / (length + 1)
trama = 0.0
var tramaPrev = na(trama[1]) ? close : trama[1]
trama := (src - tramaPrev) * filt + tramaPrev

// Plot de la TRAMA
plot(trama, color=color.blue, linewidth=2, title="TRAMA")

// Señales de compra y venta basadas en TRAMA
buySignal = ta.crossover(close, trama)
sellSignal = ta.crossunder(close, trama)

// Configuración de Take Profit y Stop Loss
takeProfitPerc = input(2, title="Take Profit (%)") / 100
stopLossPerc = input(1, title="Stop Loss (%)") / 100

// Precios de TP y SL
takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPerc)
stopLossPrice = strategy.position_avg_price * (1 - stopLossPerc)

// Condiciones de entrada en largo
if (buySignal)
    strategy.entry("Long", strategy.long)

// Condiciones de salida para posición larga (TP/SL)
if (strategy.position_size > 0)
    strategy.exit("TP/SL", "Long", limit=takeProfitPrice, stop=stopLossPrice)

// Entrada en corto basada en TRAMA
if (sellSignal)
    strategy.entry("Short", strategy.short)

// Precios de TP y SL para posiciones cortas
takeProfitPriceShort = strategy.position_avg_price * (1 - takeProfitPerc)
stopLossPriceShort = strategy.position_avg_price * (1 + stopLossPerc)

if (strategy.position_size < 0)
    strategy.exit("TP/SL", "Short", limit=takeProfitPriceShort, stop=stopLossPriceShort)


関連性

もっと