Strategi perdagangan kuantitatif cerdas crossover rata-rata pergerakan ganda TRAMA

SMA TRAMA
Tanggal Pembuatan: 2024-11-29 15:25:13 Akhirnya memodifikasi: 2024-11-29 15:25:13
menyalin: 0 Jumlah klik: 663
1
fokus pada
1617
Pengikut

Strategi perdagangan kuantitatif cerdas crossover rata-rata pergerakan ganda TRAMA

Ringkasan

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.

Prinsip Strategi

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.

Keunggulan Strategis

  1. Mekanisme konfirmasi sinyal ganda secara signifikan meningkatkan keandalan transaksi
  2. Indeks TRAMA dapat menangkap perubahan tren pasar dengan lebih cepat
  3. Memiliki mekanisme pengendalian risiko yang jelas untuk melindungi dana dengan stop loss
  4. Logika strategi jelas, mudah dipahami dan dipelihara
  5. Perdagangan dua arah yang dapat dilakukan secara serentak, meningkatkan peluang untuk mendapatkan keuntungan

Risiko Strategis

  1. Terlalu banyak sinyal perdagangan dalam pasar yang bergejolak
  2. Rasio Stop Loss yang tetap mungkin tidak cocok untuk semua kondisi pasar
  3. Rata-rata jangka pendek mungkin lebih sensitif terhadap kebisingan harga
  4. Risiko tergelincir di pasar yang sangat bergejolak
  5. Perlu dipertimbangkan dampak biaya transaksi terhadap kinerja strategi

Arah optimasi strategi

  1. Memperkenalkan mekanisme stop loss yang beradaptasi dengan fluktuasi
  2. Menambahkan filter lingkungan pasar untuk menyesuaikan parameter strategi dalam kondisi pasar yang berbeda
  3. Metode pilihan untuk mengoptimalkan parameter TRAMA, pertimbangkan untuk menggunakan siklus adaptasi
  4. Menambahkan indikator konfirmasi volume transaksi untuk meningkatkan keandalan sinyal
  5. Pertimbangkan untuk menambahkan filter intensitas tren untuk menghindari perdagangan dalam tren lemah

Meringkaskan

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.

Kode Sumber Strategi
/*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)