Xu hướng theo chiến lược dựa trên tích hợp giá-thống lượng

Tác giả:ChaoZhang, Ngày: 2023-09-13 15:25:20
Tags:

Chiến lược này được gọi là Chiến lược theo xu hướng dựa trên tích hợp giá-tháng lượng. Nó xem xét cả các chỉ số giá và khối lượng để xác định hướng xu hướng và tạo ra các tín hiệu phù hợp với lực lượng giá-tháng lượng.

Logic giao dịch là như sau:

Đầu tiên tính trung bình động 5 ngày của giá và trung bình động 15 ngày của khối lượng.

Khi giá trung bình động 5 ngày tăng và trung bình động khối lượng 15 ngày cũng tăng, nó báo hiệu đồng bộ giá-đồng độ tăng để tạo ra tín hiệu mua.

Khi giá trung bình di chuyển 5 ngày giảm, hoặc khối lượng trung bình di chuyển 15 ngày giảm, các vị trí dài hiện có sẽ được đóng.

Ưu điểm của chiến lược này là sử dụng cùng nhau các thay đổi giá và khối lượng để đánh giá hướng xu hướng. Chỉ khi cả hai chỉ ra xu hướng tăng mới có thể kích hoạt đầu vào dài, lọc hiệu quả các tín hiệu sai.

Nhưng các tham số của các đường trung bình động cần tối ưu hóa và điều chỉnh để phù hợp với các đặc điểm sản phẩm khác nhau.

Kết luận, tích hợp đúng các chỉ số giá và khối lượng có thể cải thiện hiệu suất chiến lược giao dịch xu hướng.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-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/
// © Celar

//@version=5
strategy("VOLLY PRICE CONVERGE", default_qty_type= strategy.percent_of_equity )
base_sma = ta.sma(close, 10)
vol_sma5 = ta.hma(volume, 15)
price_sma5 = ta.hma(close, 15)
ma50 = ta.sma(close, 50)
ma20 = ta.sma(close, 20)
int vol_indicator = na
int price_indicator = na

if vol_sma5 > vol_sma5[1]
    vol_indicator := 1
else
    vol_indicator := 0

if price_sma5 > price_sma5[1]
    price_indicator := 1
else
    price_indicator := 0
        
signal = vol_indicator + price_indicator

colour = signal == 2 ?  #00802b : signal == 1 ? #cc2900 : color.white 

bank_roll = strategy.equity
qty = bank_roll/close

strategy.entry("Long", strategy.long, qty, when = signal == 2 and close > base_sma)
// Generate a full exit bracket (profit 10 points, loss 5 points per contract) from the entry named "Long".
strategy.close("Long", when = signal == 1 or signal == 0 or close < base_sma )

 
        

Thêm nữa