Ini adalah strategi perdagangan kuantitatif pintar berdasarkan TRAMA (Triangular Moving Average) dan Simple Moving Average (SMA). Strategi ini menggabungkan dua sistem purata bergerak untuk menjana isyarat perdagangan dan melaksanakan mekanisme stop-loss / take-profit untuk kawalan risiko. Ia menggunakan silang SMA 4 tempoh dan 28 tempoh bersama dengan penunjuk TRAMA untuk mengesahkan isyarat perdagangan, meningkatkan ketepatan melalui pengesahan isyarat berbilang.
Strategi ini menggunakan dua komponen utama untuk menjana isyarat perdagangan. Pertama adalah sistem silang berdasarkan SMA 4 tempoh dan 28 tempoh, menjana isyarat panjang apabila MA jangka pendek melintasi di atas MA jangka panjang, dan isyarat pendek apabila melintasi di bawah. Kedua, strategi ini menggabungkan penunjuk TRAMA sebagai sistem pengesahan tambahan. TRAMA adalah purata bergerak yang lebih baik dengan masa tindak balas yang lebih cepat dan kurang kelewatan. Isyarat perdagangan tambahan dihasilkan apabila harga memecahkan TRAMA. Strategi ini juga termasuk mekanisme mengambil keuntungan berasaskan peratusan dan menghentikan kerugian yang ditetapkan masing-masing pada 2% dan 1%.
Ini adalah strategi yang menggabungkan analisis teknikal tradisional dengan konsep perdagangan kuantitatif moden. Melalui pengesahan isyarat berganda dan kawalan risiko yang ketat, strategi menunjukkan kepraktisan yang baik. Walaupun terdapat bidang untuk pengoptimuman, reka bentuk kerangka keseluruhan adalah munasabah dengan 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)