В процессе загрузки ресурсов... загрузка...

ТРАМА Двойная скользящая средняя кроссоверная интеллектуальная количественная стратегия торговли

Автор:Чао Чжан, Дата: 2024-11-29 15:25:13
Тэги:SMAТРАМА

img

Обзор

Это интеллектуальная количественная торговая стратегия, основанная на TRAMA (треугольная скользящая средняя) и простой скользящей средней (SMA). Стратегия сочетает в себе две системы скользящей средней для генерации торговых сигналов и реализует механизм стоп-лосс / take-прибыль для контроля риска.

Принципы стратегии

Стратегия использует два основных компонента для генерации торговых сигналов. Во-первых, кроссоверная система, основанная на 4-периодных и 28-периодных SMA, генерирует длинные сигналы, когда краткосрочный MA пересекает длинный MA, и короткие сигналы, когда он пересекает ниже. Во-вторых, стратегия включает индикатор TRAMA в качестве вспомогательной системы подтверждения.

Преимущества стратегии

  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)


Связанные

Больше