
Ini adalah strategi perdagangan energi yang cerdas berdasarkan TRAMA ((Triangular Moving Average) dan Simple Moving Average ((SMA)). Strategi ini menggabungkan dua sistem linier untuk menghasilkan sinyal perdagangan, dan mengatur mekanisme stop-loss untuk mengendalikan risiko. Strategi ini menggunakan 4 siklus dan 28 siklus SMA crossover dan indikator TRAMA untuk mengkonfirmasi sinyal perdagangan, meningkatkan akurasi perdagangan melalui konfirmasi sinyal ganda.
Strategi ini menggunakan dua komponen inti untuk menghasilkan sinyal perdagangan. Pertama adalah sistem silang yang didasarkan pada 4 siklus dan 28 siklus SMA, yang menghasilkan sinyal ganda ketika rata-rata jangka pendek melintasi rata-rata jangka panjang ke atas, dan sinyal kosong ketika melintasi ke bawah. Kedua, strategi ini memperkenalkan indikator TRAMA sebagai sistem konfirmasi tambahan.
Ini adalah strategi yang menggabungkan analisis teknis tradisional dan filosofi perdagangan kuantitatif modern. Strategi ini menunjukkan kepraktisan yang baik melalui pengakuan sinyal ganda dan kontrol risiko yang ketat. Meskipun ada beberapa tempat yang perlu dioptimalkan, desain kerangka kerja secara keseluruhan masuk akal dan memiliki prospek aplikasi yang baik.
/*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)