Sumber daya yang dimuat... Pemuatan...

Strategi Trading Tren Rata-rata Bergerak Berbagai

Penulis:ChaoZhang, Tanggal: 2024-05-11 17:32:49
Tag:SMAMA

img

Gambaran umum

Artikel ini memperkenalkan strategi perdagangan tren berdasarkan beberapa moving average yang disebut Multi-Moving Average Trend Trading Strategy. Strategi ini terutama diterapkan pada pasar futures Nasdaq dan menangkap tren pasar ke atas dengan menganalisis posisi harga relatif terhadap moving average jangka panjang, menengah, dan pendek.

Strategi ini menggunakan tiga rata-rata bergerak sederhana (SMA): jangka panjang (default 200 periode), jangka menengah (default 21 periode), dan jangka pendek (default 9 periode). Sinyal beli dipicu ketika harga berada di atas rata-rata bergerak jangka panjang dan jangka menengah dan melintasi di atas rata-rata bergerak jangka pendek, asalkan tidak ada posisi terbuka. Strategi ini juga menetapkan titik tetap stop-gain dan stop-loss tingkat untuk mengelola risiko. Selain itu, semua posisi ditutup pada pukul 17:00 setiap hari perdagangan.

Prinsip Strategi

  1. Menghitung rata-rata bergerak sederhana jangka panjang (default 200 periode), jangka menengah (default 21 periode), dan jangka pendek (default 9 periode).

  2. Tentukan apakah harga saat ini di atas rata-rata bergerak jangka panjang dan jangka menengah.

  3. Periksa apakah harga saat ini melewati di atas rata-rata bergerak jangka pendek.

  4. Ketika kondisi 2 dan 3 keduanya terpenuhi, dan tidak ada posisi terbuka, sinyal beli dipicu.

  5. Setelah membeli, tetapkan titik stop-gain dan stop-loss level. tutup posisi ketika harga mencapai salah satu level.

  6. Tutup semua posisi pada jam 17:00 setiap hari perdagangan.

Keuntungan Strategi

  1. Sederhana dan mudah dimengerti: Strategi ini didasarkan pada rata-rata bergerak, sehingga mudah dipahami dan diterapkan.

  2. Mengikuti tren: Dengan menganalisis posisi harga relatif terhadap rata-rata bergerak dari periode yang berbeda, strategi secara efektif menangkap tren pasar naik.

  3. Pengendalian risiko: Strategi ini menggabungkan titik tetap stop-gain dan stop-loss level, membantu mengelola risiko untuk perdagangan individu.

  4. Penutupan posisi otomatis: Strategi secara otomatis menutup semua posisi pada waktu tertentu setiap hari perdagangan, menghindari risiko overnight.

Risiko Strategi

  1. Optimasi parameter: Kinerja strategi mungkin sensitif terhadap parameter periode rata-rata bergerak, yang membutuhkan optimasi untuk pasar dan instrumen yang berbeda.

  2. Pasar bergolak: Dalam kondisi pasar yang bergolak, sinyal silang yang sering dapat menyebabkan kinerja strategi yang tidak optimal.

  3. Risiko tergelincir: Selama volatilitas pasar yang tinggi, level stop-gain dan stop-loss titik tetap mungkin tidak dieksekusi seperti yang diharapkan, yang mengakibatkan risiko tergelincir.

Arah Optimasi Strategi

  1. Stop-gain dan stop-loss dinamis: Sesuaikan tingkat stop-gain dan stop-loss secara dinamis berdasarkan volatilitas pasar atau tren harga untuk mengoptimalkan rasio risiko-manfaat.

  2. Filter tren: Menggabungkan indikator teknis tambahan, seperti ADX, untuk mengkonfirmasi kekuatan tren dan menyaring sinyal palsu di pasar yang bergolak.

  3. Adaptasi multi-instrumen: Memperbaiki strategi untuk beradaptasi dengan instrumen berjangka yang berbeda dan karakteristik pasar.

  4. Pengelolaan uang: Memperkenalkan aturan pengelolaan uang yang lebih canggih, seperti ukuran posisi dan pengendalian risiko, untuk meningkatkan kekuatan strategi.

Ringkasan

Multi-Moving Average Trend Trading Strategy adalah strategi trend-following yang sederhana dan mudah dimengerti yang menangkap tren pasar ke atas dengan menganalisis posisi harga relatif terhadap moving average dari periode yang berbeda. Strategi ini menggabungkan titik tetap stop-gain dan stop-loss level dan secara otomatis menutup semua posisi pada waktu tertentu setiap hari untuk mengelola risiko. Namun, strategi ini mungkin berkinerja buruk di pasar yang bergolak dan menghadapi tantangan seperti optimasi parameter dan risiko slippage. Optimasi masa depan dapat berfokus pada tingkat stop-gain dan stop-loss dinamis, filter tren, multi-instrumentasi, dan penyesuaian manajemen uang untuk lebih meningkatkan ketahanan dan daya adaptasi strategi.


/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Médias Móveis de MarcosJR", overlay=true)

// Inputs para data inicial e final
start_year = input.int(2020, title="Ano Inicial")
start_month = input.int(1, title="Mês Inicial")
start_day = input.int(1, title="Dia Inicial")

end_year = input.int(2020, title="Ano Final")
end_month = input.int(12, title="Mês Final")
end_day = input.int(31, title="Dia Final")

// Convertendo dia, mês e ano para timestamp
start_date = timestamp(start_year, start_month, start_day, 00, 00)
end_date = timestamp(end_year, end_month, end_day, 23, 59)

// Condição para verificar se a data está dentro do intervalo especificado
date_within_range = true

// Parâmetros para os períodos das médias móveis
ma_short_period = input.int(9, title="MA Curta")
ma_medium_period = input.int(21, title="MA Média")
ma_long_period = input.int(200, title="MA Longa")

// Definindo médias móveis
ma_short = ta.sma(close, ma_short_period)
ma_medium = ta.sma(close, ma_medium_period)
ma_long = ta.sma(close, ma_long_period)

// Plotando as médias móveis no gráfico com espessura aumentada
plot(ma_short, color=color.blue, title="MA Curta", linewidth=2)
plot(ma_medium, color=color.orange, title="MA Média", linewidth=2)
plot(ma_long, color=color.red, title="MA Longa", linewidth=2)

// Verificando se o preço está acima das médias móveis
above_ma_long = close > ma_long
above_ma_medium = close > ma_medium

// Verificando se o preço tocou na média móvel curta
touch_ma_short = ta.crossover(close, ma_short)

// Condições de compra
buy_condition = date_within_range and above_ma_long and above_ma_medium and touch_ma_short

// Sinais de entrada e saída de compra
var float entry_price = na
if (buy_condition and strategy.opentrades == 0) // Verifica se não há operações em andamento
    entry_price := close // Define o preço de entrada ao comprar

// Parâmetros para o tamanho do stop gain e stop loss em pontos
stop_gain_points = input.int(100, title="Stop Gain (pontos)", minval=1)
stop_loss_points = input.int(100, title="Stop Loss (pontos)", minval=1)

// Calcular o preço de saída alvo (Stop Gain) e de stop loss
target_price = entry_price + stop_gain_points * syminfo.mintick
stop_loss_price = entry_price - stop_loss_points * syminfo.mintick

// Sair da operação de compra quando o preço atingir o stop gain ou stop loss
if (strategy.position_size > 0)
    strategy.exit("Venda", "Compra", limit=target_price, stop=stop_loss_price)

// Sinais de entrada de compra
if (buy_condition and strategy.opentrades == 0) // Verifica se não há operações em andamento
    strategy.entry("Compra", strategy.long)

// Plotando setas de compra
plotshape(series=buy_condition, title="Sinal de Compra", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

// Função para verificar se é 17:00 do mesmo dia
is_17_oclock_same_day = hour == 17 and minute == 0 and hour[1] < 17

// Sair de todas as operações às 17:00 do mesmo dia
if (is_17_oclock_same_day)
    strategy.close_all()


Berkaitan

Lebih banyak