TRAMA (Triangular Moving Average) とSimple Moving Average (SMA) をベースとしたインテリジェントな定量的な取引戦略である.この戦略は,取引信号を生成するための2つの移動平均システムを組み合わせ,リスク制御のためのストップ・ロス/テイク・プロフィートメカニズムを実装する.TRAMA指標とともに4期および28期SMAクロスオーバーを使用して取引信号を確認し,複数の信号確認を通じて精度を向上させる.
トレーディング・シグナル生成には2つのコアコンポーネントが採用されている.まずは4期および28期SMAをベースとしたクロスオーバーシステムで,短期MAが長期MAを超えると長い信号と,下を横切ると短い信号を生成する.次に,戦略はTRAMA指標を補助確認システムとして組み込む.TRAMAは,応答時間が早く遅延が少ない改善された移動平均値である.価格がTRAMAを通過すると追加の取引信号が生成される.この戦略には,それぞれ2%と1%で設定された割合ベースのテイク・プロフィートとストップ・ロスのメカニズムも含まれている.
この戦略は,伝統的な技術分析と近代的な定量的な取引概念を組み合わせた戦略である.複数の信号の確認と厳格なリスク管理を通じて,この戦略は良い実用性を示している.最適化の分野がある一方で,全体的なフレームワークデザインは良い応用見通しで合理的である.トレーダーは,ライブ取引の前に徹底的な歴史的データバックテストとパラメータ最適化を行うことをお勧めする.
/*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)