Chiến lược này sử dụng chỉ số kỹ thuật đường cong Coppock ít được biết đến để thực hiện giao dịch định lượng. Đường cong Coppock được lấy bằng cách lấy trung bình động cân của tỷ lệ thay đổi (ROC) của chỉ số thị trường như S & P 500 hoặc tương đương giao dịch như SPY ETF. Các tín hiệu mua được tạo ra khi đường cong Coppock vượt qua trên không và bán tín hiệu khi nó vượt qua dưới. Một dấu hiệu dừng lỗ theo dõi tùy chọn có sẵn để khóa lợi nhuận. Chiến lược sử dụng đường cong $ SPY Coppock như một đại diện để tạo ra các tín hiệu giao dịch trên các ETF và cổ phiếu khác.
Chiến lược sử dụng đường cong Coppock như là chỉ số kỹ thuật để tạo ra tín hiệu giao dịch.
Cờ Coppock = WMA 10 giai đoạn (ROC 14 giai đoạn + ROC 11 giai đoạn)
Trong đó tỷ lệ thay đổi ROC được tính như sau: (Close Current - Close N periods ago) /Close N periods ago
Chiến lược tính toán đường cong Coppock dựa trên giá đóng của $SPY. Các tín hiệu mua được tạo ra khi đường cong vượt qua trên 0 và bán tín hiệu khi nó vượt qua dưới.
Chiến lược này sử dụng các đặc điểm hình dạng đường cong độc đáo của đường cong Coppock để tạo ra các tín hiệu giao dịch. So với các chỉ số thông thường, đường cong Coppock có sức dự đoán mạnh hơn. Nhưng như một chỉ số độc lập, độ tin cậy của nó cần xác thực.
/*backtest start: 2023-10-13 00:00:00 end: 2023-11-12 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/ // © RolandoSantos //@version=4 strategy(title = "Coppock Curve", shorttitle = "Copp Curve Strat", default_qty_type=strategy.cash, default_qty_value=10000, initial_capital=10000) ///trail stop longTrailPerc = input(title="Trail Long Loss (%)", minval=0.0, step=0.1, defval=100) * 0.01 // Determine trail stop loss prices longStopPrice = 0.0 longStopPrice := if (strategy.position_size > 0) stopValue = close * (1 - longTrailPerc) max(stopValue, longStopPrice[1]) else 0 //Use SPY for Copp Curve entries and exits// security = input("SPY") ticker = security(security, "D", close) ///Copp Curve//// wmaLength = input(title="WMA Length", type=input.integer, defval=10) longRoCLength = input(title="Long RoC Length", type=input.integer, defval=14) shortRoCLength = input(title="Short RoC Length", type=input.integer, defval=11) source = ticker curve = wma(roc(source, longRoCLength) + roc(source, shortRoCLength), wmaLength) ///Lower Band Plot/// band1 = hline(0) band0 = hline(100) band2 = hline(-100) fill(band1, band0, color=color.green, transp=90) fill(band2, band1, color=color.red, transp=90) plot(curve, color=color.white) ///Trade Conditions/// Bull = curve > 0 Bear = curve < 0 ///Entries and Exits// if (Bull) strategy.entry("Long", strategy.long, comment = "LE") if (Bear) strategy.close("Long", qty_percent=100, comment="close") // Submit exit orders for trail stop loss price if (strategy.position_size > 0) strategy.exit(id="Long Trail Stop", stop=longStopPrice)