Sumber daya yang dimuat... Pemuatan...

TRAMA Dual Moving Average Crossover Strategi Perdagangan Kuantitatif Cerdas

Penulis:ChaoZhang, Tanggal: 2024-11-29 15:25:13
Tag:SMATRAMA

img

Gambaran umum

Ini adalah strategi perdagangan kuantitatif cerdas berdasarkan TRAMA (Triangular Moving Average) dan Simple Moving Average (SMA). Strategi ini menggabungkan dua sistem rata-rata bergerak untuk menghasilkan sinyal perdagangan dan menerapkan mekanisme stop-loss / take-profit untuk pengendalian risiko.

Prinsip Strategi

Strategi ini menggunakan dua komponen utama untuk menghasilkan sinyal perdagangan. Pertama adalah sistem crossover berdasarkan SMA 4 periode dan 28 periode, menghasilkan sinyal panjang ketika MA jangka pendek melintasi di atas MA jangka panjang, dan sinyal pendek ketika melintasi di bawah. Kedua, strategi ini menggabungkan indikator TRAMA sebagai sistem konfirmasi tambahan. TRAMA adalah rata-rata bergerak yang ditingkatkan dengan waktu respons yang lebih cepat dan kurang lag. Sinyal perdagangan tambahan dihasilkan ketika harga menerobos TRAMA. Strategi ini juga mencakup mekanisme take-profit dan stop-loss berbasis persentase yang ditetapkan masing-masing 2% dan 1%.

Keuntungan Strategi

  1. Mekanisme konfirmasi sinyal ganda secara signifikan meningkatkan keandalan perdagangan
  2. Indikator TRAMA memungkinkan penangkapan yang lebih cepat dari perubahan tren pasar
  3. Mekanisme pengendalian risiko yang jelas melalui tingkat stop loss dan take profit
  4. Logika strategi yang jelas dan mudah dipertahankan
  5. Memungkinkan perdagangan panjang dan pendek, meningkatkan peluang keuntungan

Risiko Strategi

  1. Dapat menghasilkan sinyal perdagangan yang berlebihan di berbagai pasar
  2. Persentase stop loss dan take profit tetap mungkin tidak sesuai dengan semua kondisi pasar
  3. Rata-rata bergerak jangka pendek mungkin sensitif terhadap kebisingan harga
  4. Risiko slippage potensial di pasar yang volatile
  5. Kebutuhan untuk mempertimbangkan dampak biaya perdagangan pada kinerja strategi

Arah Optimasi Strategi

  1. Memperkenalkan mekanisme stop loss dan take profit yang beradaptasi dengan volatilitas
  2. Tambahkan filter lingkungan pasar untuk menyesuaikan parameter strategi di bawah kondisi yang berbeda
  3. Mengoptimalkan metode pemilihan parameter TRAMA, pertimbangkan untuk menggunakan periode adaptif
  4. Tambahkan indikator konfirmasi volume untuk meningkatkan keandalan sinyal
  5. Pertimbangkan untuk menambahkan filter kekuatan tren untuk menghindari perdagangan dalam tren yang lemah

Ringkasan

Ini adalah strategi yang menggabungkan analisis teknis tradisional dengan konsep perdagangan kuantitatif modern. Melalui konfirmasi sinyal ganda dan pengendalian risiko yang ketat, strategi menunjukkan kepraktisan yang baik. Meskipun ada area untuk optimasi, desain kerangka kerja secara keseluruhan masuk akal dengan prospek aplikasi yang baik. Pedagang disarankan untuk melakukan backtesting data historis yang menyeluruh dan optimasi parameter sebelum perdagangan langsung.


/*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)


Berkaitan

Lebih banyak