Sumber daya yang dimuat... Pemuatan...

Strategi perdagangan berdasarkan tiga lilin bearish berturut-turut dan rata-rata bergerak ganda

Penulis:ChaoZhang, Tanggal: 2024-05-14 17:30:35
Tag:SMASMA200

img

Gambaran umum

Strategi ini adalah strategi trading yang didasarkan pada tiga lilin bearish berturut-turut dan dua moving average. Ide utama dari strategi ini adalah: ketika ada tiga lilin bearish berturut-turut dan harga penutupan saat ini lebih tinggi dari rata-rata bergerak 200 hari, buka posisi panjang; ketika rata-rata bergerak 10 hari menyeberang dengan harga, atau harga mencapai level take-profit atau stop-loss, tutup posisi. Strategi hanya berjalan dalam rentang waktu tertentu.

Prinsip Strategi

  1. Jika harga penutupan menurun, jumlah lilin bearish berturut-turut meningkat sebesar 1; jika tidak, ia kembali ke 0.
  2. Hitung rata-rata bergerak 10 hari dan 200 hari.
  3. Tentukan apakah harga penutupan saat ini lebih tinggi dari rata-rata bergerak 10 hari.
  4. Periksa apakah kondisi masuk dipenuhi: tiga lilin bearish berturut-turut, waktu saat ini berada dalam kisaran yang ditentukan, dan harga penutupan saat ini lebih tinggi dari rata-rata bergerak 200 hari.
  5. Periksa apakah kondisi keluar dipenuhi: rata-rata bergerak 10 hari bersilang dengan harga, atau harga mencapai level take profit atau stop loss.
  6. Jika kondisi masuk dipenuhi dan tidak ada posisi saat ini, buka posisi panjang.
  7. Jika kondisi keluar dipenuhi dan ada posisi saat ini, tutup posisi.

Keuntungan Strategi

  1. Ini mempertimbangkan pergerakan harga dan faktor rata-rata bergerak, yang memungkinkan untuk menangkap peluang di pasar tren dan osilasi.
  2. Ini menetapkan tingkat mengambil keuntungan dan stop-loss, yang dapat secara efektif mengendalikan risiko.
  3. Ini membatasi rentang waktu pelaksanaan strategi, menghindari risiko yang berlebihan selama periode tertentu.
  4. Logika kode jelas dan mudah dibaca, membuatnya mudah dipahami dan dioptimalkan.

Risiko Strategi

  1. Penghakiman lilin bearish berturut-turut mungkin terlalu sederhana, dengan mudah memicu sinyal palsu.
  2. Pengaturan tingkat take profit dan stop loss mungkin tidak cukup fleksibel, sehingga menyebabkan perdagangan yang sering atau kesempatan yang hilang ketika pasar berfluktuasi sangat besar.
  3. Hal ini tidak mempertimbangkan peristiwa tak terduga, berita besar, dan faktor-faktor tidak konvensional lainnya, yang berpotensi mengasumsikan risiko tambahan.

Arah Optimasi Strategi

  1. Pertimbangkan untuk memperkenalkan lebih banyak indikator teknis, seperti RSI dan MACD, untuk membangun logika penilaian sinyal yang lebih kuat.
  2. Mengoptimalkan pengaturan tingkat take-profit dan stop-loss, memperkenalkan take-profit/stop-loss atau stop-loss dinamis berdasarkan indikator volatilitas seperti ATR.
  3. Pelajari dampak dari pengaturan parameter yang berbeda pada strategi, seperti jumlah lilin bearish berturut-turut, periode rata-rata bergerak, dll, untuk menemukan kombinasi parameter yang optimal.
  4. Mengintegrasikan manajemen posisi untuk menyesuaikan posisi secara dinamis berdasarkan lingkungan pasar yang berbeda, meningkatkan efisiensi pemanfaatan modal.

Ringkasan

Strategi ini membangun model perdagangan yang sederhana dan mudah dimengerti melalui kombinasi lilin bearish berturut-turut dan rata-rata bergerak ganda. Sementara menangkap peluang tren, strategi juga menetapkan langkah-langkah pengendalian risiko tertentu. Namun, ada ruang lebih lanjut untuk optimasi dalam penilaian sinyal dan pengendalian risiko. Dengan memperkenalkan lebih banyak indikator teknis, mengoptimalkan pengaturan parameter, menerapkan take-profit / stop-loss dan manajemen posisi yang dinamis, ketahanan dan profitabilitas strategi dapat ditingkatkan lebih lanjut.


/*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)


Berkaitan

Lebih banyak