Интеллектуальная количественная торговая стратегия TRAMA с двойным пересечением скользящих средних

SMA TRAMA
Дата создания: 2024-11-29 15:25:13 Последнее изменение: 2024-11-29 15:25:13
Копировать: 0 Количество просмотров: 663
1
Подписаться
1617
Подписчики

Интеллектуальная количественная торговая стратегия TRAMA с двойным пересечением скользящих средних

Обзор

Это интеллектуальная энергетическая торговая стратегия, основанная на TRAMA ((Triangular Moving Average) и простой движущейся средней ((SMA)). Стратегия объединяет в себе две равнолинейные системы для генерации торговых сигналов и устанавливает механизм стоп-стоп для управления рисками. Стратегия использует 4-циклический и 28-циклический перекрест SMA, а также индикатор TRAMA для подтверждения торговых сигналов, повышая точность торговли с помощью многократного подтверждения сигналов.

Стратегический принцип

Стратегия использует два основных компонента для создания торговых сигналов. Первая - это кросс-система, основанная на 4-циклических и 28-циклических SMA, которая создает многосигналы, когда краткосрочная средняя линия пересекает долгосрочную среднюю линию вверх, и дает пустые сигналы, когда она пересекает ее вниз. Вторая - стратегия вводит индикатор 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)