Chiến lược đột phá giá giao dịch định lượng


Ngày tạo: 2023-12-22 12:42:15 sửa đổi lần cuối: 2023-12-22 12:42:15
sao chép: 0 Số nhấp chuột: 599
1
tập trung vào
1621
Người theo dõi

Chiến lược đột phá giá giao dịch định lượng

Tổng quan

Chiến lược này là một chiến lược giao dịch định lượng đường ngắn dựa trên đường trung bình di chuyển đơn giản (SMA), đường trung bình di chuyển chỉ số (EMA), kênh Keltner, MACD, chỉ số ngẫu nhiên (Stochastic). Nó kết hợp các tín hiệu đa không gian của kênh Keltner, MACD và Stochastic để thực hiện giao dịch tự động vào và ra.

Nguyên tắc chiến lược

Chiến lược này sử dụng SMA 25 chu kỳ, EMA 200 chu kỳ để xây dựng chỉ số đường trung bình di chuyển kép. Nó tạo ra tín hiệu mua khi giá từ dưới lên phá vỡ đường trung bình di chuyển kép; tạo ra tín hiệu bán khi giá từ trên xuống phá vỡ đường trung bình di chuyển kép.

Trong khi đó, chiến lược này sử dụng 10 chu kỳ để xây dựng kênh Keltner, đường dẫn trên và đường dẫn dưới của kênh phá giá cũng sẽ hoạt động như tín hiệu phụ. Chỉ số MACD tạo ra tín hiệu mua bán thông qua đường nhanh, đường chậm và hình ảnh trụ MACD. Chỉ số Stochastic cũng tạo thành tín hiệu đa không gian thông qua đường %K và đường %D.

Cụ thể, khi giá đóng cửa cao hơn SMA và EMA và nằm bên trong kênh Keltner, biểu đồ trụ MACD là giá trị âm, Stochastic% K thấp hơn 50, tạo ra tín hiệu mua, làm nhiều; khi giá đóng cửa thấp hơn SMA và EMA và nằm bên trong kênh Keltner, biểu đồ trụ MACD là giá trị dương, Stochastic% K cao hơn 50, tạo ra tín hiệu bán, làm rỗng.

Lợi thế chiến lược

  1. Sử dụng đường trung bình di chuyển kép kết hợp với chỉ số kênh để lọc hiệu quả các vụ phá vỡ giả mạo trên thị trường.
  2. Các tín hiệu chỉ số kỹ thuật tổng hợp có thể cải thiện độ tin cậy của tín hiệu.
  3. Quy tắc tín hiệu đa không gian rõ ràng, hiệu quả thực hiện theo chương trình cao.
  4. Chiến lược định lượng cho các giao dịch thường xuyên trên đường dây ngắn.

Chiến lược rủi ro và tối ưu hóa

  1. Là một chiến lược giao dịch ngắn hạn, có một số rủi ro về tần suất giao dịch quá cao.
  2. Không có cơ chế dừng lỗ, có nguy cơ mất mát lớn.
  3. Có thể xem xét thêm các chỉ số biến động, tối ưu hóa các điều kiện mở và dừng lỗ.
  4. Có thể kiểm tra ưu và nhược điểm của các tham số chu kỳ khác nhau, tìm kiếm sự kết hợp tham số tốt nhất.

Tóm tắt

Chiến lược này kết hợp các chỉ số kỹ thuật thường được sử dụng như trung bình di chuyển, chỉ số kênh, chỉ số MACD và chỉ số Stochastic. Phân tích nhiều đường bằng cách phá vỡ hoặc không phá vỡ giá là một trong những chiến lược giao dịch định lượng ngắn hạn điển hình. Sử dụng nhiều chỉ số kết hợp sẽ giúp tăng độ chính xác của tín hiệu so với chỉ số đơn lẻ và đáng để kiểm tra và tối ưu hóa hơn nữa.

Mã nguồn chiến lược
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=5
strategy(title="Scalping Trading System Crypto and Stocks", overlay=true)
src = input(low, title="Source")

//sma and ema
len = input.int(25, minval=1, title="Length SMA" , group="Moving Averages")
len2 = input.int(200, minval=1, title="Length EMA", group="Moving Averages")

out = ta.sma(src, len)
out2 = ta.ema(src, len2)


//keltner
lengthk = input.int(10, minval=1, title="Length Keltner Channel",group="Keltner")
mult = input(2.0, "Multiplier",group="Keltner")
BandsStyle = input.string("Average True Range", options = ["Average True Range", "True Range", "Range"], title="Bands Style",group="Keltner")
atrlength = input(14, "ATR Length",group="Keltner")

ma = ta.sma(src, lengthk)
rangema = BandsStyle == "True Range" ? ta.tr(true) : BandsStyle == "Average True Range" ? ta.atr(atrlength) : ta.rma(high - low, lengthk)
upper = ma + rangema * mult
lower = ma - rangema * mult

//stoch
periodK = input.int(10, title="%K Length", minval=1,group="Stochastic")
smoothK = input.int(1, title="%K Smoothing", minval=1,group="Stochastic")
periodD = input.int(1, title="%D Smoothing", minval=1,group="Stochastic")
k = ta.sma(ta.stoch(close, high, low, periodK), smoothK)
d = ta.sma(k, periodD)

//macd 1
fast_length = input(title="Fast Length MACD", defval=4,group="MACD Fast")
slow_length = input(title="Slow Length MACD", defval=34,group="MACD Fast")
signal_length = input.int(title="Signal Smoothing MACD",  minval = 1, maxval = 50, defval = 5,group="MACD Fast")
sma_source = input.string(title="Oscillator MA Type MACD",  defval="EMA", options=["SMA", "EMA"],group="MACD Fast")
sma_signal = input.string(title="Signal Line MA Type MACD", defval="EMA", options=["SMA", "EMA"],group="MACD Fast")

fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal




long= close > out and close < upper and close > lower and hist < 0 and k < 50 and close > out2 

short= close < out and close < upper and close > lower and hist > 0 and k > 50 and close < out2 

strategy.entry("long",strategy.long,when= long)

strategy.entry("short",strategy.short,when=short)