
Artikel ini memperkenalkan strategi perdagangan trend berdasarkan pelbagai purata bergerak atau “strategi perdagangan trend berdasarkan pelbagai purata”. Strategi ini digunakan terutamanya di pasaran niaga hadapan NASDAQ, dengan menganalisis kedudukan harga berbanding purata bergerak panjang, sederhana, dan pendek, menangkap trend kenaikan pasaran, dan menetapkan semua kedudukan pada masa tertentu.
Strategi ini menggunakan tiga purata bergerak sederhana (SMA): jangka panjang (default 200-siklus), jangka menengah (default 21-siklus) dan jangka pendek (default 9-siklus). Strategi ini akan mencetuskan isyarat beli apabila harga lebih tinggi daripada jangka panjang dan jangka menengah dan terdapat persimpangan pada jangka pendek. Strategi ini juga menetapkan titik-titik berhenti dan berhenti untuk mengawal risiko.
Hitung purata bergerak mudah untuk jangka panjang (default 200 kitaran), pertengahan (default 21 kitaran) dan jangka pendek (default 9 kitaran).
Menentukan sama ada harga semasa lebih tinggi daripada purata jangka panjang dan purata jangka menengah.
Menentukan sama ada harga semasa berada di atas garis purata jangka pendek.
Apabila kedua-dua syarat 2 dan 3 dipenuhi, dan tiada pegangan semasa, isyarat beli dipicu.
Selepas membeli, tetapkan titik-titik yang ditetapkan untuk menghentikan dan menghentikan kerugian, dan tutup apabila harga mencapai titik-titik yang ditetapkan untuk menghentikan atau menghentikan kerugian.
Pada pukul 17:00 setiap hari dagangan, semua kedudukan akan ditutup.
Mudah difahami: Strategi ini berdasarkan purata bergerak, asasnya mudah, mudah difahami dan dilaksanakan.
Pengesanan Trend: Dengan menganalisis kedudukan harga berbanding dengan garis purata berkala yang berbeza, strategi ini dapat menangkap trend kenaikan pasaran dengan berkesan.
Kawalan risiko: Strategi ini menetapkan hentian dan hentian yang ditetapkan untuk membantu mengawal risiko perdagangan tunggal.
Automatik Peas: Strategi ini secara automatik peas kedudukan pada waktu tertentu setiap hari perdagangan, mengelakkan risiko semalaman.
Optimasi parameter: Prestasi strategi mungkin sensitif terhadap parameter kitaran rata-rata, yang perlu dioptimumkan mengikut pasaran dan varieti yang berbeza.
Pasaran goyah: Dalam keadaan pasaran goyah, isyarat silang yang kerap boleh menyebabkan strategi tidak berfungsi dengan baik.
Risiko slippage: Dalam keadaan pasaran yang tidak menentu, hentikan dan hentikan dengan nombor tetap mungkin tidak dapat dilaksanakan seperti yang diharapkan, menyebabkan risiko slippage.
Hentian Hentian Dinamis: Bergantung pada turun naik pasaran atau pergerakan harga, penutupan dan titik hentian berhenti disesuaikan secara dinamik untuk mengoptimumkan nisbah keuntungan risiko.
Penapisan trend: memperkenalkan petunjuk teknikal lain, seperti ADX, untuk mengesahkan kekuatan trend, penapisan isyarat palsu di pasaran goyah.
Adaptasi pelbagai jenis: Strategi diperbaiki untuk menyesuaikan diri dengan pelbagai jenis masa depan dan ciri-ciri pasaran
Pengurusan wang: memperkenalkan peraturan pengurusan wang yang lebih kompleks, seperti pengurusan kedudukan dan kawalan risiko, meningkatkan kestabilan strategi.
Strategi perdagangan trend berdasarkan garis rata-rata adalah strategi trend yang mudah difahami yang menangkap trend naik di pasaran dengan menganalisis kedudukan harga berbanding dengan garis rata-rata berkala yang berbeza. Strategi ini menetapkan titik-titik berhenti dan berhenti yang tetap, dan secara automatik melonggarkan kedudukan pada waktu tertentu setiap hari untuk mengawal risiko. Walau bagaimanapun, strategi ini mungkin tidak berfungsi dengan baik di pasaran yang bergolak, dan menghadapi masalah pengoptimuman parameter dan risiko tergelincir.
/*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()