Strategi dagangan berdasarkan tiga batang lilin hitam berturut-turut dan purata pergerakan berganda

SMA SMA200
Tarikh penciptaan: 2024-05-14 17:30:35 Akhirnya diubah suai: 2024-05-14 17:30:35
Salin: 3 Bilangan klik: 506
1
fokus pada
1617
Pengikut

Strategi dagangan berdasarkan tiga batang lilin hitam berturut-turut dan purata pergerakan berganda

Gambaran keseluruhan

Strategi ini adalah strategi perdagangan berdasarkan tiga garis negatif berturut-turut dan dua garis rata. Gagasan utama strategi ini adalah: buka lebih banyak kedudukan apabila tiga garis negatif muncul secara berturut-turut dan harga penutupan semasa lebih tinggi daripada 200 hari rata-rata; posisi kosong apabila garis rata-rata 10 hari bersilang dengan harga, atau apabila harga mencapai titik berhenti atau berhenti.

Prinsip Strategi

  1. Hitung bilangan cincin berturut-turut. Jika harga penutupan turun, jumlah cincin berturut-turut ditambah 1; jika tidak, jumlah cincin berturut-turut diset semula menjadi 0
  2. Hitung garis purata 10 hari dan garis purata 200 hari.
  3. Menentukan sama ada harga penutupan semasa lebih tinggi daripada purata 10 hari.
  4. Untuk menentukan sama ada syarat kemasukan telah dipenuhi: tiga garis negatif berturut-turut, masa semasa dalam julat yang ditetapkan, dan harga penutupan semasa lebih tinggi daripada garis purata 200 hari.
  5. Untuk menentukan sama ada syarat keluar telah dipenuhi: garis purata 10 hari bercampur dengan harga, atau harga mencapai titik berhenti atau berhenti rugi.
  6. Jika anda memenuhi syarat untuk masuk dan anda tidak mempunyai kedudukan semasa, anda boleh membuka lebih banyak kedudukan.
  7. Jika memenuhi syarat keluar dan mempunyai kedudukan semasa, maka kedudukan kosong.

Kelebihan Strategik

  1. Dengan mengambil kira pergerakan harga dan faktor garis rata-rata, anda dapat memanfaatkan peluang dalam keadaan trend dan goyah.
  2. Ia juga boleh digunakan untuk memantau dan mengawal risiko.
  3. Mengehadkan jangka masa operasi strategi untuk mengelakkan mengambil risiko yang terlalu besar pada tempoh tertentu.
  4. Logik kod jelas, mudah dibaca, mudah difahami dan dioptimumkan.

Risiko Strategik

  1. Penghakiman untuk sinaran berturut-turut mungkin terlalu mudah dan mudah menyebabkan isyarat yang salah.
  2. Tetapan stop loss mungkin tidak cukup fleksibel, dan boleh menyebabkan perdagangan yang kerap atau kehilangan peluang apabila terdapat turun naik yang besar.
  3. Tidak mengambil kira faktor-faktor yang tidak biasa seperti kejadian yang tidak dijangka, berita penting, dan lain-lain, yang boleh menyebabkan risiko tambahan.

Arah pengoptimuman strategi

  1. Anda boleh mempertimbangkan untuk memperkenalkan lebih banyak petunjuk teknikal, seperti RSI, MACD dan lain-lain, untuk membina logik keputusan isyarat yang lebih mantap.
  2. Anda boleh mengoptimumkan tetapan stop loss, memperkenalkan stop loss dinamik atau stop loss berdasarkan indikator kadar turun naik seperti ATR.
  3. Ia boleh mengkaji kesan pelbagai parameter yang ditetapkan pada strategi, seperti akar negatif berturut-turut, kitaran rata-rata, dan lain-lain, untuk mencari kombinasi parameter yang optimum.
  4. Anda boleh menyertai pengurusan kedudukan, menyesuaikan kedudukan anda mengikut keadaan pasaran yang berbeza, dan meningkatkan kecekapan penggunaan dana.

ringkaskan

Strategi ini membina model perdagangan yang mudah dan mudah difahami dengan menggunakan kombinasi garis-garis berturut-turut dan garis-garis berganda. Strategi ini menggunakan peluang yang cenderung, tetapi ada juga langkah-langkah kawalan risiko. Walau bagaimanapun, strategi ini masih mempunyai ruang untuk pengoptimuman lebih lanjut dalam penilaian isyarat dan kawalan risiko.

Kod 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)