TRAMA strategi dagangan kuantitatif pintar bersilang berganda purata bergerak

SMA TRAMA
Tarikh penciptaan: 2024-11-29 15:25:13 Akhirnya diubah suai: 2024-11-29 15:25:13
Salin: 0 Bilangan klik: 663
1
fokus pada
1617
Pengikut

TRAMA strategi dagangan kuantitatif pintar bersilang berganda purata bergerak

Gambaran keseluruhan

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.

Prinsip Strategi

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.

Kelebihan Strategik

  1. Mekanisme pengesahan isyarat dua kali meningkatkan kebolehpercayaan transaksi
  2. Indeks TRAMA mampu menangkap perubahan trend pasaran dengan lebih cepat
  3. Mempunyai mekanisme kawalan risiko yang jelas untuk melindungi dana anda dengan menghentikan kerugian
  4. Logik strategi adalah jelas, mudah difahami dan dikekalkan
  5. Perdagangan dua hala yang boleh dilakukan secara serentak, meningkatkan peluang keuntungan

Risiko Strategik

  1. Mungkin terdapat banyak isyarat perdagangan dalam pasaran yang bergolak.
  2. Nisbah Stop Loss Tetap mungkin tidak sesuai untuk semua keadaan pasaran
  3. Garis purata jangka pendek mungkin lebih sensitif terhadap bunyi harga
  4. Risiko tergelincir dalam pasaran yang bergolak
  5. Kesan kos transaksi terhadap prestasi strategi perlu dipertimbangkan

Arah pengoptimuman strategi

  1. Memperkenalkan mekanisme stop loss yang menyesuaikan diri dengan kadar turun naik
  2. Menambah penapis keadaan pasaran, menyesuaikan parameter strategi dalam keadaan pasaran yang berbeza
  3. Kaedah pilihan untuk mengoptimumkan parameter TRAMA yang boleh dipertimbangkan menggunakan kitaran penyesuaian
  4. Menambah petunjuk pengesahan jumlah transaksi untuk meningkatkan kebolehpercayaan isyarat
  5. Pertimbangkan untuk menambah penapis kekuatan trend dan elakkan berdagang dalam trend lemah

ringkaskan

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.

Kod 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)