
Die Strategie kombiniert die Erzeugung von Handelssignalen durch zwei Gleichgewichtssysteme und bietet einen Stop-Loss-Mechanismus zur Risikokontrolle. Die Strategie verwendet 4-Zyklus- und 28-Zyklus-SMA-Kreuzungen sowie die TRAMA-Indikator, um Handelssignale zu bestätigen und die Genauigkeit der Transaktionen durch mehrere Signalbestätigungen zu verbessern.
Die Strategie verwendet zwei Kernkomponenten, um Handelssignale zu erzeugen. Zuerst basiert die Strategie auf einem Kreuzungssystem mit 4- und 28-Zyklus-SMA, das mehrere Signale erzeugt, wenn die kurzfristige Durchschnittslinie die langfristige Durchschnittslinie aufwärts durchquert, und ein Abbruchsignal, wenn sie nach unten durchquert. Als nächstes wird der TRAMA-Indikator als Hilfsbestätigungssystem eingeführt.
Es ist eine Strategie, die traditionelle technische Analyse und moderne quantitative Trading-Konzepte kombiniert. Die Strategie zeigt eine gute Praxis durch Multi-Signal-Erkennung und strenge Risikokontrolle. Obwohl es einige Optimierungsmöglichkeiten gibt, ist die Gesamtkonzeption des Rahmens vernünftig und hat gute Anwendungschancen.
/*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)