Strategi perdagangan berdasarkan tiga kandil hitam berturut-turut dan rata-rata pergerakan ganda

SMA SMA200
Tanggal Pembuatan: 2024-05-14 17:30:35 Akhirnya memodifikasi: 2024-05-14 17:30:35
menyalin: 3 Jumlah klik: 506
1
fokus pada
1617
Pengikut

Strategi perdagangan berdasarkan tiga kandil hitam berturut-turut dan rata-rata pergerakan ganda

Ringkasan

Strategi ini adalah strategi perdagangan yang didasarkan pada tiga garis negatif dan dua garis rata berturut-turut. Gagasan utama strategi ini adalah: buka posisi lebih banyak ketika tiga garis negatif muncul secara berturut-turut, dan harga penutupan saat ini lebih tinggi dari rata-rata 200 hari; posisi kosong ketika garis rata-rata 10 hari berlawanan dengan harga, atau ketika harga mencapai titik stop atau stop loss.

Prinsip Strategi

  1. Hitung jumlah sinis berturut-turut. Jika harga close-out turun, jumlah sinis berturut-turut ditambah 1; jika tidak, jumlah sinis berturut-turut disetel kembali menjadi 0
  2. Perhitungan 10 hari rata-rata dan 200 hari rata-rata.
  3. Periksa apakah harga penutupan saat ini lebih tinggi dari rata-rata 10 hari.
  4. Untuk menentukan apakah memenuhi persyaratan masuk: Tiga garis negatif berturut-turut, waktu saat ini dalam kisaran yang ditentukan, dan harga penutupan saat ini lebih tinggi dari 200 hari rata-rata.
  5. Untuk menentukan apakah kondisi keluar telah tercapai: garis rata-rata 10 hari berpotongan dengan harga, atau harga mencapai titik stop atau stop loss.
  6. Jika memenuhi syarat masuk dan tidak memiliki posisi saat ini, maka bukalah posisi lebih lanjut.
  7. Jika memenuhi persyaratan keluar dan memiliki posisi saat ini, maka posisi kosong.

Keunggulan Strategis

  1. Dengan mempertimbangkan pergerakan harga dan faktor garis rata-rata, Anda dapat mengambil peluang dalam situasi tren dan goyangan.
  2. Pengaturan Stop Loss untuk mengontrol risiko secara efektif.
  3. Dengan membatasi jangka waktu operasi strategi, dapat dihindari mengambil risiko yang terlalu besar pada periode tertentu.
  4. Kode logis yang jelas, mudah dibaca, mudah dipahami dan dioptimalkan.

Risiko Strategis

  1. Penghakiman terhadap sinis berturut-turut mungkin terlalu sederhana dan dapat menyebabkan sinyal yang salah.
  2. Pengaturan stop loss mungkin tidak cukup fleksibel, dan dapat menyebabkan perdagangan yang sering atau kehilangan peluang ketika pasar berfluktuasi besar.
  3. Tidak mempertimbangkan faktor-faktor yang tidak biasa, seperti kejadian yang tidak terduga, berita penting, dan lain-lain, dapat menimbulkan risiko tambahan.

Arah optimasi strategi

  1. Dapat mempertimbangkan untuk memperkenalkan lebih banyak indikator teknis, seperti RSI, MACD, dan lain-lain, untuk membangun logika penilaian sinyal yang lebih kuat.
  2. Pengaturan stop loss dapat dioptimalkan, dengan penghentian stop loss dinamis atau stop loss berdasarkan indikator volatilitas seperti ATR.
  3. Anda dapat mempelajari dampak dari pengaturan parameter yang berbeda pada strategi, seperti akar negatif berurutan, siklus rata-rata, dan lain-lain, untuk menemukan kombinasi parameter optimal.
  4. Anda dapat bergabung dengan manajemen posisi, menyesuaikan posisi sesuai dengan dinamika lingkungan pasar yang berbeda, dan meningkatkan efisiensi penggunaan dana.

Meringkaskan

Strategi ini membangun model perdagangan yang sederhana dan mudah dimengerti melalui kombinasi dari lini sinkron dan lini ganda. Strategi ini menangkap peluang tren, tetapi juga menetapkan langkah-langkah pengendalian risiko. Namun, strategi ini masih memiliki ruang untuk pengoptimalan lebih lanjut dalam hal penilaian sinyal dan pengendalian risiko. Dengan memperkenalkan lebih banyak indikator teknis, pengaturan parameter yang dioptimalkan, dan langkah-langkah stop loss dan manajemen posisi yang dinamis, strategi dapat ditingkatkan lebih lanjut.

Kode Sumber Strategi
/*backtest
start: 2023-05-08 00:00:00
end: 2024-05-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estrategia de Trading", overlay=true)

// Definir el número de cierres de velas decrecientes consecutivas
var int cierres_decrecientes_consecutivos = 0
num_cierres_decrecientes = input.int(3, title="Número de cierres decrecientes", minval=1)

// Definir el porcentaje de cambio para cerrar la operación
porcentaje_cierre_arriba = input.float(1.5, title="Porcentaje de cierre arriba (%)", step=0.1)
porcentaje_cierre_abajo = input.float(1.0, title="Porcentaje de cierre abajo (%)", step=0.1)

// Definir las medias móviles para el cierre de la operación
periodos_media_movil_cierre = input.int(10, title="Períodos de la media móvil para cierre")
periodos_media_movil_200 = input.int(200, title="Períodos de la media móvil de 200")

// Definir el rango de fechas para la simulación
start_date = timestamp(2024, 1, 1, 0, 0)
end_date = timestamp(2024, 12, 31, 23, 59)

// Calcular la media móvil para el cierre de la operación
sma_cierre = ta.sma(close, periodos_media_movil_cierre)
sma_200 = ta.sma(close, periodos_media_movil_200)

// Calcular si el precio está por encima o por debajo de la media móvil para el cierre de la operación
precio_por_encima_sma_cierre = close > sma_cierre
precio_por_debajo_sma_cierre = close < sma_cierre

// Calcular si se han producido num_cierres_decrecientes consecutivos
if (ta.change(close) < 0)
    cierres_decrecientes_consecutivos := cierres_decrecientes_consecutivos + 1
else
    cierres_decrecientes_consecutivos := 0

es_cierres_consecutivos = cierres_decrecientes_consecutivos >= num_cierres_decrecientes

// Definir condiciones de entrada y salida de la estrategia dentro del rango de fechas y con el precio por encima de la SMA de 200
condicion_entrada = es_cierres_consecutivos and close > sma_200
condicion_cierre_sma = (precio_por_encima_sma_cierre[1] and not precio_por_encima_sma_cierre) or (not precio_por_encima_sma_cierre[1] and precio_por_encima_sma_cierre)

// Calcular precios de salida basados en porcentajes
precio_salida_arriba = strategy.position_avg_price * (1 + porcentaje_cierre_arriba / 100)
precio_salida_abajo = strategy.position_avg_price * (1 - porcentaje_cierre_abajo / 100)

// Ejecutar operación en largo dentro del rango de fechas y con el precio por encima de la SMA de 200
if (condicion_entrada and strategy.opentrades == 0)
    strategy.entry("Long", strategy.long)

// Cerrar operación en largo si se cumple la condición de salida por cambio en el cruce de la media móvil dentro del rango de fechas
if (strategy.position_size > 0 and condicion_cierre_sma)
    strategy.close("Long")

// Cerrar operación en largo si el precio alcanza el porcentaje de cierre arriba o abajo dentro del rango de fechas
strategy.exit("Stop Loss", "Long", limit=precio_salida_arriba, stop=precio_salida_abajo)

// Plot para visualizar la media móvil para el cierre de la operación
plot(sma_cierre, color=color.red)

// Plot para visualizar la SMA de 200
plot(sma_200, color=color.blue)