Chiến lược mở hàng tháng dài và kết thúc cuối tháng

Tác giả:ChaoZhang, Ngày: 2023-11-02 14:23:40
Tags:

img

Ý tưởng cốt lõi của chiến lược này là mở vị trí dài vào ngày giao dịch đầu tiên của mỗi tháng và đóng vị trí vào ngày giao dịch cuối cùng của tháng.

Chiến lược logic

Chiến lược này đầu tiên xác định ngày giao dịch đầu tiên (ngày thứ Hai) của mỗi tháng là tín hiệu nhập cảnh, và ngày giao dịch cuối cùng (ngày thứ Sáu) là tín hiệu thoát.

Khi mở vị trí, nó sẽ dài trực tiếp nếu chỉ cho phép dài, và nó sẽ mở cả hai vị trí dài và ngắn nếu cho phép ngắn.

Khi đóng các vị trí, nó sẽ đóng tất cả các vị trí nếu cho phép ngắn, và chỉ đóng các vị trí dài nếu chỉ cho phép dài.

Để kiểm soát rủi ro, một mức dừng lỗ đơn giản cũng được thêm vào. Khi giá chạm vào mức dừng lỗ, nó sẽ đóng vị trí bằng cách dừng lỗ.

Nhìn chung, chiến lược này có một logic rất đơn giản và thẳng thắn, đó là chiến lược giao dịch hàng tháng cơ bản nhất phù hợp với việc chứng minh giảng dạy.

Ưu điểm

  1. Logic là đơn giản và dễ hiểu, rất thích hợp cho người mới bắt đầu học.

  2. Sử dụng chu kỳ nắm giữ hàng tháng, tần suất hoạt động thấp, phù hợp với các nhà đầu tư theo đuổi sự ổn định.

  3. Tùy chọn dài hoặc ngắn, có thể đáp ứng nhu cầu của các phong cách giao dịch khác nhau.

  4. Thêm stop loss có thể kiểm soát rủi ro cổ phiếu duy nhất ở một mức độ nào đó.

Rủi ro

  1. Thời gian vào và ra cố định, không thể điều chỉnh dựa trên điều kiện thị trường, có nguy cơ được điều chỉnh.

  2. Không thêm các chỉ số định lượng, có nguy cơ theo dõi mù quáng.

  3. Chỉ có một cổ phiếu dừng lỗ là dễ dàng để phá vỡ, không thể kiểm soát hiệu quả rủi ro đuôi.

  4. Kích thước vị trí cố định, không thể điều chỉnh dựa trên điều kiện thị trường.

  5. Không chắc chắn về việc thực hiện, có thể không thực hiện đầy đủ theo chiến lược.

  6. Phương pháp dừng lỗ đơn giản có thể dẫn đến dừng lỗ nhỏ, nên áp dụng dừng lỗ động như dừng biến động.

Hướng dẫn cải thiện

  1. Đưa ra các chỉ số định lượng để đánh giá điều kiện thị trường và điều chỉnh động tốc độ nhập cảnh.

  2. Xem xét các chỉ số so sánh để xác định sức mạnh tương đối của các cổ phiếu để nhập cảnh.

  3. Điều chỉnh động kích thước vị trí dựa trên biến động thị trường và các chỉ số rủi ro khác.

  4. Sử dụng stop loss động, hoặc nhiều mức stop loss.

  5. Thêm mô-đun giao dịch thuật toán để đảm bảo thực hiện thành công.

  6. Tối ưu hóa chiến lược quản lý vốn, điều chỉnh vị trí tương lai chỉ số chứng khoán cho môi trường thị trường khác nhau.

  7. Tích hợp máy học để đánh giá chất lượng cổ phiếu cho nhập cảnh.

Tóm lại

Đây là một chiến lược mở hàng tháng rất cơ bản và chiến lược đóng cuối tháng. Logic là đơn giản và dễ hiểu, phù hợp cho người mới bắt đầu học. Nhưng trong sử dụng thực tế, thời gian vào / ra, phương pháp dừng lỗ, kích thước vị trí vv cần được nâng cao, để có thể kiếm được lợi nhuận liên tục trong các thị trường phức tạp và liên tục thay đổi. Chúng ta nên hiểu kỹ các ưu và nhược điểm của chiến lược, và tiếp tục cải thiện hệ thống chiến lược để phát triển các giải pháp giao dịch định lượng phù hợp cho chính mình.


/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Je_Buurman September 1st 2020

//@version=4
strategy("Buurmans Tutorial", overlay=true, initial_capital=1000, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.2)

// Some initial inputs, these are needed in case the strategy returns an error of "too many trades, > 3000" 

Year    = input(defval = 2020, title = "From Year", minval = 2010)              // 
Month   = input(defval = 1, title = "From Month", minval = 1, maxval=12)
LongOnly=input(true, title="Only go Long?")


// Phase I - the initial "Strategy" - buy Monday, sell Friday

longCondition = dayofweek==dayofweek.monday and (time > timestamp(Year, Month, 01, 00, 00, 00))
shortCondition = dayofweek==dayofweek.friday and (time > timestamp(Year, Month, 01, 23, 59, 59))


// Phase II - some rudimentary "risk-management" e.g. stoploss

Use_stoploss=input(false, title="Use stoploss ?")
stoploss_input=input(150, title="Stoploss in $")
Stoploss = Use_stoploss ? strategy.position_size>0 ? iff(strategy.position_size>0,strategy.position_avg_price - stoploss_input, na) : strategy.position_size<0 ? iff(strategy.position_size<0,strategy.position_avg_price + stoploss_input, na) : na : na
plot(Use_stoploss and strategy.position_size!=0 ? Stoploss : na, color=iff(Stoploss!=na,color.silver, color.red),style=plot.style_linebr)


// Phase III - make it more profitable by trying to filter conditions
// only buy on odd Mondays ? only buy on full moon Mondays ? something else entirely ?


// The actual trades, going Long, close Long, going Short and Stoploss

if (longCondition)
    strategy.entry("Buy on Monday", strategy.long)
    
if (shortCondition and LongOnly==false)
    strategy.entry("Short on Friday", strategy.short)

if (shortCondition and LongOnly)
    strategy.close("Buy on Monday", comment="Sell on Friday")

if (low < Stoploss)
    strategy.close("Buy on Monday", comment="Long Stopped on Someday")
if (high > Stoploss)
    strategy.close("Short on Friday", comment="Short Stopped on Someday")

Thêm nữa