
Ini adalah strategi perdagangan yang bertenaga berdasarkan TRAMA ((Triangular Moving Average) dan purata bergerak sederhana ((SMA)). Strategi ini menggabungkan penjanaan isyarat perdagangan dengan dua sistem linear dan menetapkan mekanisme berhenti untuk mengawal risiko. Strategi ini menggunakan 4 kitaran dan 28 kitaran silang SMA dan penunjuk TRAMA untuk mengesahkan isyarat perdagangan, meningkatkan ketepatan perdagangan dengan pengesahan pelbagai isyarat.
Strategi menggunakan dua komponen teras untuk menghasilkan isyarat perdagangan. Pertama adalah sistem silang berdasarkan 4 kitaran dan 28 kitaran SMA, yang menghasilkan isyarat ganda apabila rata-rata jangka pendek melintasi rata-rata jangka panjang ke atas, dan isyarat kosong apabila ia melintasi ke bawah. Kedua, strategi memperkenalkan indikator TRAMA sebagai sistem pengesahan tambahan.
Ini adalah strategi yang menggabungkan analisis teknikal tradisional dan falsafah perdagangan kuantitatif moden. Strategi ini menunjukkan kegunaan yang baik melalui pengesahan pelbagai isyarat dan kawalan risiko yang ketat. Walaupun terdapat beberapa tempat yang perlu dioptimumkan, reka bentuk kerangka keseluruhan adalah munasabah dan mempunyai 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)