Tài nguyên đang được tải lên... tải...

Chiến lược giao dịch định lượng dựa trên so sánh giá đóng hàng ngày

Tác giả:ChaoZhang, Ngày: 2023-11-21 14:34:11
Tags:

img

Tổng quan

Chiến lược này được gọi là Chiến lược so sánh giá đóng cửa hàng ngày. Đây là một chiến lược giao dịch định lượng đưa ra quyết định giao dịch dựa trên giá đóng cửa hàng ngày. Chiến lược tạo ra tín hiệu giao dịch bằng cách tính toán sự khác biệt giữa giá đóng cửa hàng ngày hiện tại và giá đóng cửa hàng ngày trước đó. Khi sự khác biệt vượt quá ngưỡng đã thiết lập, lệnh mua hoặc bán được thực hiện.

Chiến lược logic

Logic cốt lõi của chiến lược này là so sánh giá đóng cửa giữa ngọn nến / thanh hiện tại và giá trước đó.

  1. Tính toán sự khác biệt giữa giá đóng cửa hàng ngày hiện tại và giá đóng cửa hàng ngày trước (ngày hôm nay - hôm qua)
  2. Tính toán tỷ lệ giữa chênh lệch và giá đóng cửa ngày hôm qua (sự chênh lệch / đóng cửa ngày hôm qua)
  3. Nếu tỷ lệ lớn hơn ngưỡng dương tính được đặt, một tín hiệu mua được tạo ra. Nếu tỷ lệ thấp hơn ngưỡng âm được đặt, một tín hiệu bán được tạo ra.
  4. Nhập vị trí dài hoặc ngắn theo tín hiệu

Chiến lược không đặt các điều kiện dừng lỗ hoặc lấy lợi nhuận và dựa trên các tín hiệu kích hoạt ngưỡng để vào và ra.

Phân tích lợi thế

  • Logic đơn giản, dễ hiểu, phù hợp với những người mới bắt đầu giao dịch lượng tử
  • Chỉ dựa vào giá đóng cửa hàng ngày, tránh giao dịch quá thường xuyên
  • Tần suất giao dịch có thể được kiểm soát bằng cách điều chỉnh ngưỡng

Phân tích rủi ro

  • Không dừng lỗ, không thể kiểm soát lỗ giao dịch đơn
  • Có thể tạo ra các tín hiệu giao dịch liên tiếp dẫn đến giao dịch quá mức
  • Việc rút vốn có thể lớn, không thể kiểm soát được mức lỗ tổng thể tốt

Hướng dẫn tối ưu hóa

  • Thêm logic dừng lỗ để kiểm soát lỗ giao dịch duy nhất
  • Số lượng giới hạn các mục để tránh giao dịch quá mức
  • Tối ưu hóa các tham số để tìm tần suất giao dịch tối ưu

Kết luận

Chiến lược này tạo ra tín hiệu giao dịch bằng cách so sánh giá đóng cửa hàng ngày. Logic đơn giản và phù hợp cho người mới bắt đầu học. Nhưng nó chứa một số rủi ro và cần tối ưu hóa hơn nữa cho giao dịch trực tiếp.


/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Daily Close Comparison Strategy (by ChartArt) correct results", shorttitle="CA_-_Daily_Close_Strat", overlay=false)

// ChartArt's Daily Close Comparison Strategy
//
// Version 1.0
// Idea by ChartArt on February 28, 2016.
//
// This strategy is equal to the very
// popular "ANN Strategy" coded by sirolf2009,
// but without the Artificial Neural Network (ANN).
//
// Main difference besides stripping out the ANN
// is that I use close prices instead of OHLC4 prices.
// And the default threshold is set to 0 instead of 0.0014
// with a step of 0.001 instead of 0.0001.
//
// This strategy goes long if the close of the current day
// is larger than the close price of the last day.
// If the inverse logic is true, the strategy
// goes short (last close larger current close).
//
// This simple strategy does not have any
// stop loss or take profit money management logic.
//
// List of my work: 
// https://www.tradingview.com/u/ChartArt/
// 
//  __             __  ___       __  ___ 
// /  ` |__|  /\  |__)  |   /\  |__)  |  
// \__, |  | /~~\ |  \  |  /~~\ |  \  |  
// 
// 

threshold = input(title="Price Difference Threshold correct results", type=float, defval=0, step=0.004)

getDiff() =>
    yesterday=request.security(syminfo.tickerid, 'D', close[1])
    today=close
    delta=today-yesterday
    percentage=delta/yesterday
    
closeDiff = getDiff()
 
buying = closeDiff > threshold ? true : closeDiff < -threshold ? false : buying[1]

hline(0, title="zero line")

bgcolor(buying ? green : red, transp=25)
plot(closeDiff, color=silver, style=area, transp=75)
plot(closeDiff, color=aqua, title="prediction")

longCondition = buying
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = buying != true
if (shortCondition)
    strategy.entry("Short", strategy.short)

Thêm nữa