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