Sumber dimuat naik... memuat...

Strategi Dagangan Berdasarkan Tiga Lilin Buruh Berturut-turut dan Purata Bergerak Berganda

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

img

Ringkasan

Strategi ini adalah strategi perdagangan berdasarkan tiga lilin bearish berturut-turut dan purata bergerak berganda. Idea utama strategi adalah: apabila terdapat tiga lilin bearish berturut-turut dan harga penutupan semasa lebih tinggi daripada purata bergerak 200 hari, buka kedudukan panjang; apabila purata bergerak 10 hari bersilang dengan harga, atau harga mencapai tahap mengambil keuntungan atau stop-loss, tutup kedudukan. Strategi hanya berjalan dalam julat masa yang ditentukan.

Prinsip Strategi

  1. Hitung bilangan lilin bearish berturut-turut. Jika harga penutupan menurun, bilangan lilin bearish berturut-turut meningkat sebanyak 1; jika tidak, ia ditetapkan semula kepada 0.
  2. Mengira purata bergerak 10 hari dan 200 hari.
  3. Tentukan sama ada harga penutupan semasa lebih tinggi daripada purata bergerak 10 hari.
  4. Periksa sama ada syarat kemasukan dipenuhi: tiga lilin penurunan berturut-turut, masa semasa berada dalam julat yang ditentukan, dan harga penutupan semasa lebih tinggi daripada purata bergerak 200 hari.
  5. Periksa sama ada syarat keluar dipenuhi: purata bergerak 10 hari bersilang dengan harga, atau harga mencapai tahap mengambil keuntungan atau stop-loss.
  6. Jika syarat kemasukan dipenuhi dan tiada kedudukan semasa, buka kedudukan panjang.
  7. Jika syarat keluar dipenuhi dan terdapat kedudukan semasa, tutup kedudukan.

Kelebihan Strategi

  1. Ia mengambil kira pergerakan harga dan faktor purata bergerak, yang membolehkannya untuk menangkap peluang di kedua-dua pasaran trend dan berayun.
  2. Ia menetapkan tahap mengambil keuntungan dan stop-loss, yang dapat mengawal risiko dengan berkesan.
  3. Ia mengehadkan julat masa pelaksanaan strategi, mengelakkan risiko yang berlebihan dalam tempoh tertentu.
  4. Logik kod jelas dan boleh dibaca, menjadikannya mudah difahami dan dioptimumkan.

Risiko Strategi

  1. Penghakiman lilin penurunan berturut-turut mungkin terlalu mudah, dengan mudah mencetuskan isyarat palsu.
  2. Tetapan tahap mengambil keuntungan dan stop-loss mungkin tidak cukup fleksibel, yang membawa kepada perdagangan yang kerap atau peluang yang hilang apabila pasaran turun naik.
  3. Ia tidak mengambil kira peristiwa yang tidak dijangka, berita utama, dan faktor lain yang tidak konvensional, yang berpotensi mengambil risiko tambahan.

Arahan Pengoptimuman Strategi

  1. Pertimbangkan untuk memperkenalkan lebih banyak penunjuk teknikal, seperti RSI dan MACD, untuk membina logika penilaian isyarat yang lebih kukuh.
  2. Mengoptimumkan penetapan tahap mengambil keuntungan dan stop-loss, memperkenalkan mengambil keuntungan/stop-loss atau stop-loss dinamik berdasarkan penunjuk turun naik seperti ATR.
  3. Kaji kesan tetapan parameter yang berbeza pada strategi, seperti bilangan lilin penurunan berturut-turut, tempoh purata bergerak, dan lain-lain, untuk mencari kombinasi parameter yang optimum.
  4. Menggabungkan pengurusan kedudukan untuk menyesuaikan kedudukan secara dinamik berdasarkan persekitaran pasaran yang berbeza, meningkatkan kecekapan penggunaan modal.

Ringkasan

Strategi ini membina model perdagangan yang mudah dan mudah difahami melalui gabungan lilin bearish berturut-turut dan purata bergerak berganda. Semasa menangkap peluang trend, strategi ini juga menetapkan langkah kawalan risiko tertentu. Walau bagaimanapun, terdapat ruang tambahan untuk pengoptimuman dalam penilaian isyarat dan kawalan risiko. Dengan memperkenalkan lebih banyak penunjuk teknikal, mengoptimumkan tetapan parameter, melaksanakan pengambilan keuntungan / berhenti kerugian dan pengurusan kedudukan yang dinamik, ketahanan dan keuntungan strategi dapat ditingkatkan lagi.


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