Это интеллектуальная количественная торговая стратегия, основанная на TRAMA (треугольная скользящая средняя) и простой скользящей средней (SMA). Стратегия сочетает в себе две системы скользящей средней для генерации торговых сигналов и реализует механизм стоп-лосс / take-прибыль для контроля риска.
Стратегия использует два основных компонента для генерации торговых сигналов. Во-первых, кроссоверная система, основанная на 4-периодных и 28-периодных SMA, генерирует длинные сигналы, когда краткосрочный MA пересекает длинный MA, и короткие сигналы, когда он пересекает ниже. Во-вторых, стратегия включает индикатор TRAMA в качестве вспомогательной системы подтверждения.
Это стратегия, которая сочетает в себе традиционный технический анализ с современными количественными торговыми концепциями. Благодаря многочисленным сигнальным подтверждениям и строгому контролю рисков стратегия демонстрирует хорошую практичность. Хотя есть области для оптимизации, общий дизайн рамочной структуры является разумным с хорошими перспективами применения. Трейдерам рекомендуется провести тщательное тестирование исторических данных и оптимизацию параметров перед живой торговлей.
/*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)