Sumber dimuat naik... memuat...

Strategi Perdagangan Trend Purata Bergerak Berbilang

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

img

Ringkasan

Artikel ini memperkenalkan strategi perdagangan trend berdasarkan pelbagai purata bergerak yang dipanggil Multi-Moving Average Trend Trading Strategy. Strategi ini terutamanya digunakan untuk pasaran niaga hadapan Nasdaq dan menangkap trend pasaran menaik dengan menganalisis kedudukan harga berbanding dengan purata bergerak jangka panjang, sederhana, dan pendek. Ia juga menutup semua kedudukan pada waktu tertentu setiap hari.

Strategi ini menggunakan tiga purata bergerak mudah (SMA): jangka panjang (default 200 tempoh), jangka sederhana (default 21 tempoh), dan jangka pendek (default 9 tempoh). Isyarat beli diaktifkan apabila harga berada di atas purata bergerak jangka panjang dan jangka sederhana dan melintasi di atas purata bergerak jangka pendek, dengan syarat tidak ada kedudukan terbuka. Strategi ini juga menetapkan tahap stop-gain dan stop-loss titik tetap untuk menguruskan risiko. Di samping itu, semua kedudukan ditutup pada pukul 17:00 setiap hari dagangan.

Prinsip Strategi

  1. Mengira purata mudah bergerak jangka panjang (default 200 tempoh), jangka sederhana (default 21 tempoh), dan jangka pendek (default 9 tempoh).

  2. Tentukan sama ada harga semasa di atas purata bergerak jangka panjang dan jangka sederhana.

  3. Periksa sama ada harga semasa melintasi di atas purata bergerak jangka pendek.

  4. Apabila kedua-dua syarat 2 dan 3 dipenuhi, dan tidak ada kedudukan terbuka, isyarat beli dicetuskan.

  5. Selepas membeli, tetapkan tahap stop-gain dan stop-loss titik tetap. Tutup kedudukan apabila harga mencapai mana-mana tahap.

  6. Tutup semua kedudukan pada jam 17:00 setiap hari dagangan.

Kelebihan Strategi

  1. Sederhana dan mudah difahami: Strategi ini berdasarkan purata bergerak, menjadikannya mudah difahami dan dilaksanakan.

  2. Mengikuti trend: Dengan menganalisis kedudukan harga berbanding dengan purata bergerak dari tempoh yang berbeza, strategi secara berkesan menangkap trend pasaran menaik.

  3. Kawalan risiko: Strategi ini menggabungkan tahap stop-gain dan stop-loss titik tetap, membantu menguruskan risiko untuk perdagangan individu.

  4. Penutupan kedudukan automatik: Strategi secara automatik menutup semua kedudukan pada masa tertentu setiap hari dagangan, mengelakkan risiko semalam.

Risiko Strategi

  1. Pengoptimuman parameter: Prestasi strategi mungkin sensitif kepada parameter purata bergerak tempoh, yang memerlukan pengoptimuman untuk pasaran dan instrumen yang berbeza.

  2. Pasaran yang bergelora: Dalam keadaan pasaran yang bergelora, isyarat silang yang kerap boleh menyebabkan prestasi strategi yang kurang optimum.

  3. Risiko tergelincir: Semasa turun naik pasaran yang tinggi, tahap stop-gain dan stop-loss titik tetap mungkin tidak dilaksanakan seperti yang dimaksudkan, mengakibatkan risiko tergelincir.

Arahan Pengoptimuman Strategi

  1. Stop-gain dan stop-loss dinamik: Sesuaikan tahap stop-gain dan stop-loss secara dinamik berdasarkan turun naik pasaran atau trend harga untuk mengoptimumkan nisbah risiko-balasan.

  2. Penapis trend: Sertakan penunjuk teknikal tambahan, seperti ADX, untuk mengesahkan kekuatan trend dan menapis isyarat palsu dalam pasaran yang bergelora.

  3. Penyesuaian pelbagai instrumen: Memperbetulkan strategi untuk menyesuaikan diri dengan instrumen niaga hadapan dan ciri pasaran yang berbeza.

  4. Pengurusan wang: Memperkenalkan peraturan pengurusan wang yang lebih canggih, seperti saiz kedudukan dan kawalan risiko, untuk meningkatkan kekuatan strategi.

Ringkasan

Strategi Perdagangan Trend Purata Bergerak Berbilang adalah strategi trend berikut yang mudah dan mudah difahami yang menangkap trend pasaran menaik dengan menganalisis kedudukan harga berbanding dengan purata bergerak dari tempoh yang berbeza. Strategi ini menggabungkan tahap stop-gain dan stop-loss titik tetap dan secara automatik menutup semua kedudukan pada masa tertentu setiap hari untuk menguruskan risiko. Walau bagaimanapun, strategi ini mungkin kurang berprestasi di pasaran yang bergolak dan menghadapi cabaran seperti pengoptimuman parameter dan risiko tergelincir. Pengoptimuman masa depan boleh memberi tumpuan kepada tahap stop-gain dan stop-loss dinamik, penapis trend, pelbagai instrumen, dan pengurusan wang untuk meningkatkan lagi kekuatan 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 lanjut