Chiến lược phá vỡ động lượng của đường trung bình động 200 ngày vào cuối tháng


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

Chiến lược phá vỡ động lượng của đường trung bình động 200 ngày vào cuối tháng

Tổng quan

Chiến lược này dựa trên thời điểm cuối tháng để đánh giá giá trị của cổ phiếu đã vượt qua đường trung bình di chuyển 200 ngày để nắm bắt xu hướng của giá cổ phiếu. Xây dựng vị trí nhiều đầu khi giá vượt qua đường trung bình 200 ngày, nếu không hãy chờ đợi.

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

  1. Sử dụng đường trung bình di chuyển đơn giản 200 ngày (dma200) để đánh giá xu hướng giá
  2. Trong ngày giao dịch cuối cùng của mỗi tháng, đánh giá giá trị đóng cửa của ngày đó có cao hơn dma 200 hay không
  3. Nếu giá đóng cửa vượt qua đường trung bình 200 ngày, hãy tạo một vị trí đa vị trí toàn kho vào ngày giao dịch tiếp theo
  4. Nếu giá đóng cửa giảm xuống dưới đường trung bình 200 ngày, nó sẽ mở lệnh thanh toán vào ngày giao dịch tiếp theo
  5. Điều này có thể đạt được hiệu quả theo dõi xu hướng, đặt cược khi giá cổ phiếu đi vào xu hướng tăng và tránh xu hướng giảm

Phân tích lợi thế

  1. Những chiến lược này đơn giản, hiệu quả, dễ hiểu và thực hiện.
  2. Sử dụng thời điểm cuối tháng để tạo kho để giảm tần suất giao dịch, giảm chi phí giao dịch và ảnh hưởng của điểm trượt
  3. Đường trung bình 200 ngày là một chỉ số xu hướng trung hạn và dài hạn rất phổ biến, có hiệu quả đối với hầu hết các cổ phiếu
  4. Chiến lược rút và giảm tối đa đều nhỏ, rủi ro có thể kiểm soát được

Phân tích rủi ro

  1. Đường trung bình 200 ngày có thể không nhạy cảm với một số cổ phiếu, không thể bắt kịp sự biến động giá
  2. Chỉ có 1 điểm giao dịch đặt hàng vào cuối tháng, có thể bỏ lỡ cơ hội giảm giá giữa
  3. Chiến lược này có thể không xác định đúng khi xu hướng tổng thể của thị trường không chắc chắn.
  4. Những rủi ro này nên được kết hợp với các chỉ số khác để giảm thiểu

Hướng tối ưu hóa

  1. Bạn có thể cân nhắc tăng điểm đặt hàng vào đầu hoặc giữa tháng để tăng tần suất chiến lược.
  2. Tăng các chỉ số như Binance để đánh giá biến động giá, tránh giao dịch sai Đánh giá hiệu quả của sự phù hợp của các tham số khác nhau đối với các cổ phiếu khác nhau để tìm ra sự kết hợp tham số tốt nhất
  3. Có thể thiết lập cơ chế quản lý vị thế động, chủ động dừng lỗ khi rút quá lớn

Tóm tắt

Chiến lược này nói chung là đơn giản và thực tế, bằng cách phá vỡ đường trung bình 200 ngày vào cuối tháng, có hiệu quả trong việc nắm bắt xu hướng giá trung bình và dài hạn của cổ phiếu, rút lại và rủi ro nhỏ hơn. Bằng cách kết hợp nhiều phán đoán chỉ số và tối ưu hóa động lực, bạn có thể tăng cường sự ổn định và lợi nhuận của chiến lược hơn nữa.

Mã nguồn chiến lược
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 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/
// © muscleriot
//200 dma
//2000-2016 backtested 
//1 signal per month only at end of month
//If > 200DMA enter long
//If < 200DMA goto cash
//results: 318% drawdown 17% vs 125% with 55% drawdown for buy and hold
//@version=5
strategy("200DMA last DOM - ajh", overlay =true,default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Use 100% of  equity always

dma200 = ta.sma(close, 200)
plot(dma200, color=color.red, linewidth = 2)
//e =dayofmonth(time)
// backtesting date range
from_day = input.int(defval=1, title="From Day", minval=1, maxval=31)
from_month = input.int(defval=1, title="From Month", minval=1, maxval=12)
from_year = input.int(defval=2018, title="From Year", minval=1900)

to_day = input.int(defval=1, title="To Day", minval=1, maxval=31)
to_month = input.int(defval=1, title="To Month", minval=1, maxval=12)
to_year = input.int(defval=9999, title="To Year", minval=1900)

time_cond = time > timestamp(from_year, from_month, from_day, 00, 00) and 
   time < timestamp(to_year, to_month, to_day, 23, 59)



xLong = dayofmonth(time) == 30 and (close > dma200) ? true : na
xSell = dayofmonth(time) == 30 and (close < dma200) ? true : na
plotchar(xLong, "long","L", color=color.green)    
plotchar(xSell, "Sell","S", color=color.red)    
if (xLong == true) and time_cond
    strategy.entry("long", strategy.long)
if (xSell == true) and time_cond
    strategy.close("long")