Ini adalah strategi perdagangan kuantitatif yang kompleks yang menggabungkan beberapa penunjuk teknikal dan konsep perdagangan. Strategi ini terutamanya berdasarkan blok pesanan, pengesanan perubahan trend, persilangan purata bergerak, dan analisis pelbagai jangka masa untuk menjana isyarat perdagangan.
Blok Perintah: Strategi menggunakan fungsi tersuai untuk mengira Blok Perintah, yang merupakan tahap harga yang signifikan biasanya mewakili kawasan pesanan institusi yang pekat.
Pengesanan Perubahan Trend: Menggunakan persilangan Purata Bergerak Sederhana (SMA) untuk mengenal pasti perubahan trend yang berpotensi.
Analisis Pelbagai Jangka Masa: Mengira purata bergerak eksponen 50 tempoh dan 200 tempoh (EMA) pada jangka masa 1 jam untuk menentukan trend pasaran yang lebih luas.
Syarat kemasukan:
Strategi Keluar: Menggunakan peratusan tetap mengambil keuntungan dan tahap berhenti kerugian untuk menguruskan risiko dan mengunci keuntungan.
Analisis Berbilang Dimensi: Menggabungkan pelbagai jangka masa dan penunjuk teknikal, memberikan perspektif pasaran yang lebih komprehensif.
Mengikuti trend: Dengan berdagang ke arah trend yang lebih besar, ia meningkatkan kebarangkalian perdagangan yang menguntungkan.
Entri yang tepat: Menggunakan Blok Perintah dan perubahan trend jangka pendek untuk mengoptimumkan masa kemasukan.
Pengurusan Risiko: Menggunakan peratusan keuntungan dan stop-loss yang telah ditetapkan, mengawal risiko untuk setiap perdagangan.
Kebolehsesuaian: Parameter strategi boleh diselaraskan untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza.
Overtrading: Boleh menghasilkan isyarat perdagangan yang kerap di pasaran yang sangat tidak menentu, meningkatkan kos transaksi.
Risiko tergelincir: Di pasaran yang kurang cair, harga pelaksanaan sebenar mungkin menyimpang dengan ketara dari harga ideal.
Risiko Pembalikan Trend: Strategi mungkin mengalami kerugian berturut-turut berhampiran titik perubahan trend.
Sensitiviti Parameter: Prestasi strategi mungkin sangat sensitif terhadap tetapan parameter, yang memerlukan pengoptimuman berterusan.
Kebergantungan persekitaran pasaran: Strategi mungkin tidak berfungsi dengan baik di pasaran yang berbeza atau berayun dengan cepat.
Penyesuaian Parameter Dinamik: Pertimbangkan untuk menyesuaikan peratusan mengambil keuntungan dan berhenti kerugian secara automatik berdasarkan turun naik pasaran.
Penapis Tambahan: Memperkenalkan penunjuk teknikal atau sentimen pasaran tambahan untuk mengurangkan isyarat palsu.
Penapisan Masa: Tambah sekatan jendela masa dagangan untuk mengelakkan tempoh kecairan yang rendah.
Pengurusan Posisi: Melaksanakan strategi pengurusan kedudukan yang lebih canggih, seperti ukuran kedudukan berdasarkan turun naik.
Ujian balik dan pengoptimuman: Lakukan ujian balik data sejarah yang lebih luas untuk mencari kombinasi parameter yang optimum.
Pengiktirafan persekitaran pasaran: Membangunkan algoritma untuk mengenal pasti keadaan pasaran yang berbeza dan menyesuaikan strategi dengan sewajarnya.
Ini adalah strategi dagangan kuantitatif yang komprehensif dan logiknya kompleks yang menggabungkan analisis pelbagai jangka masa, teori Blok Perintah, dan teknik mengikuti trend. Dengan mencari titik masuk yang tepat ke arah trend yang lebih besar, strategi ini bertujuan untuk meningkatkan kadar kejayaan perdagangan. Walau bagaimanapun, kerana kerumitan, strategi ini juga menghadapi cabaran seperti overfit dan sensitiviti parameter. Pengoptimuman masa depan harus memberi tumpuan kepada peningkatan kemampuan dan ketahanan strategi, termasuk penyesuaian parameter dinamik, penapis tambahan, dan kaedah pengurusan kedudukan yang lebih canggih. Secara keseluruhan, strategi ini menyediakan rangka kerja yang sangat baik untuk perdagangan frekuensi tinggi tetapi memerlukan pelaksanaan dan pemantauan dan penyesuaian yang teliti dan berterusan.
/*backtest start: 2024-06-28 00:00:00 end: 2024-07-28 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("S&P 500", overlay=true) // Parámetros length = input(14, "Longitud") src = input(close, "Fuente") profit_percent = input.float(0.08955, "Porcentaje de ganancia", step=0.00001, minval=0) stop_loss_percent = input.float(0.04477, "Porcentaje de stop loss", step=0.00001, minval=0) // Función para calcular el Order Block order_block(src, len) => highest = ta.highest(high, len) lowest = ta.lowest(low, len) mid = (highest + lowest) / 2 ob = src > mid ? highest : lowest ob // Cálculo del Order Block ob = order_block(src, length) // Función para detectar cambios de tendencia trend_change(src, len) => up = ta.crossover(src, ta.sma(src, len)) down = ta.crossunder(src, ta.sma(src, len)) [up, down] // Detectar cambios de tendencia [trend_up, trend_down] = trend_change(src, length) // Calcular EMA 50 y EMA 200 en timeframe de 1 hora ema50_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 50)) ema200_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 200)) // Condiciones de EMA ema_buy_condition = ema50_1h > ema200_1h ema_sell_condition = ema50_1h < ema200_1h // Señales de compra y venta buy_signal = trend_up and close > ob and ema_buy_condition sell_signal = trend_down and close < ob and ema_sell_condition // Ejecutar la estrategia if (buy_signal) strategy.entry("Compra", strategy.long) if (sell_signal) strategy.entry("Venta", strategy.short) // Calcular precios de toma de ganancias y stop loss if (strategy.position_size != 0) entry_price = strategy.position_avg_price is_long = strategy.position_size > 0 take_profit = entry_price * (1 + (is_long ? 1 : -1) * profit_percent / 100) stop_loss = entry_price * (1 + (is_long ? -1 : 1) * stop_loss_percent / 100) strategy.exit(is_long ? "Long TP/SL" : "Short TP/SL", limit=take_profit, stop=stop_loss) // Visualización plot(ob, "Order Block", color.purple, 2) plot(ta.sma(src, length), "SMA", color.blue) plot(ema50_1h, "EMA 50 1h", color.yellow) plot(ema200_1h, "EMA 200 1h", color.white) bgcolor(buy_signal ? color.new(color.green, 90) : sell_signal ? color.new(color.red, 90) : na)