
Chiến lược này dựa trên giá cao mới hai năm của cổ phiếu và phương pháp tính toán duy nhất của trung bình di chuyển. Một tín hiệu mua được tạo ra khi giá cổ phiếu tạo ra mức cao mới hai năm và điều chỉnh trở lại mức trung bình di chuyển chỉ số ngày 13.
Lập luận cốt lõi của chiến lược này dựa trên phương pháp tính toán duy nhất sau:
Khi giá cổ phiếu đạt mức cao nhất trong hai năm, một điểm cao giá ngắn hạn sẽ được hình thành. Đây là một điểm giá quan trọng hơn.
Khi giá giảm từ mức cao mới này và quay trở lại đường trung bình di chuyển chỉ số 13 ngày, đó là một cơ hội mua tốt hơn. Đây là một đặc điểm trung tâm của giá.
Ngoài ra, khi tín hiệu mua được phát ra, giá cổ phiếu phải nằm trong khoảng 10% của mức cao mới trong hai năm, không quá xa. Và phải thấp hơn đường 13 và cao hơn đường 21, đảm bảo lựa chọn thời gian mua.
Đối với các vị trí nắm giữ, nếu giá giảm 5% so với đường 21 ngày hoặc giảm 20% so với mức cao mới trong hai năm, lợi nhuận ròng sẽ bị dừng trong khoảng thời gian.
Đây là một chiến lược đột phá dài dòng với những ưu điểm sau:
Với mức giá cao nhất trong hai năm, chúng ta có thể đánh giá hiệu quả về cơ hội biến đổi xu hướng tiềm năng.
Chỉ số trung bình di chuyển ngày 13 có thể được sử dụng như một cơ sở để đưa ra thị trường, có thể lọc hiệu quả các biến động và xác định được động lực mạnh hơn.
Phương pháp tính toán duy nhất là sử dụng các đặc điểm của giá để phát tín hiệu, tránh sự suy đoán chủ quan.
Nếu bạn cân nhắc đúng đắn về lỗ hổng, bạn có thể khóa phần lớn lợi nhuận.
Chiến lược này cũng có một số rủi ro, bao gồm:
Có thể xảy ra sự hồi phục sâu trong hành động, không thể dừng lại hoàn toàn. Tại thời điểm này, cần phải đánh giá môi trường tổng thể để xác định xem liệu nó có dừng lại dứt khoát hay không.
Trong trường hợp có lỗ hổng lớn qua đêm, không thể dừng hoàn hảo. Điều này đòi hỏi phải giải tỏa mức dừng lỗ thích hợp để đối phó.
Chấn động của bộ lọc đường 13 có thể không hiệu quả, tạo ra quá nhiều tín hiệu sai. Tại thời điểm này, có thể kéo dài đến đường 21 một cách thích hợp.
Các chỉ số mới được mô tả cao có thể không có hiệu quả tốt, nên nên xem xét kết hợp với các chỉ số khác.
Chiến lược này có thể được tối ưu hóa:
Các công cụ khác có thể được đưa vào để đánh giá môi trường, tránh việc giữ cổ phiếu không cần thiết.
Tăng khả năng phán đoán của các chỉ số năng lượng, để tránh nhầm lẫn trong khu vực chấn động.
Tối ưu hóa các tham số trung bình di chuyển để có thể nắm bắt được các đặc điểm giá cả.
Sử dụng phương pháp học máy để tối ưu hóa động các tham số giá cao mới trong hai năm, giúp chiến lược linh hoạt hơn.
Chiến lược này nói chung là một chiến lược vượt qua đường dài khá độc đáo, điểm quan trọng là sử dụng giá cao hai năm để đánh giá và sử dụng chỉ số di chuyển trung bình 13 ngày làm cơ sở lọc và nhập. Chiến lược này có một số ưu điểm, nhưng cũng có không gian tối ưu hóa, đáng để khám phá thêm.
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
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/
// © Part Timer
//This script accepts from and to date parameter for backtesting.
//This script generates white arrow for each buying signal
//@version=4
strategy("AMRS_LongOnly_PartTimer", overlay = true)
//i_endTime = input(defval = timestamp("02 Jun 2021 15:30 +0000"), title = "End Time", type=input.time)
StartYear=input(defval = 2000, title ="Start Year", type=input.integer)
StartMonth=input(defval = 01, title ="Start Month", type=input.integer)
StartDate=input(defval = 01, title ="Start Date", type=input.integer)
endYear=input(defval = 2021, title ="End Year", type=input.integer)
endMonth=input(defval = 06, title ="End Month", type=input.integer)
endDate=input(defval = 03, title ="End Date", type=input.integer)
ema11=ema(close,11)
ema13=ema(close,13)
ema21=ema(close,21)
afterStartDate = true
//g=bar_index==1
//ath()=>
//a=0.0
//a:=g ? high : high>a[1] ? high:a[1]
//a = security(syminfo.tickerid, 'M', ath(),lookahead=barmerge.lookahead_on)
newHigh = (high > highest(high,504)[1])
//plot down arrows whenever it's a new high
plotshape(newHigh, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.tiny)
b=highest(high,504)[1]
VarChk=((b-ema13)/b)*100
TrigLow = (low <= ema13) and (low >= ema21) and (VarChk <= 10)
plotshape(TrigLow, style=shape.triangleup, location=location.belowbar, color=color.white, size=size.tiny)
ExitPrice=(ema21 - (ema21*0.05))
DrawPrice=(b - (b*0.20))
stopprice=0.0
if (close <= ExitPrice)
stopprice := ExitPrice
if (close <= DrawPrice)
stopprice := DrawPrice
if (TrigLow and afterStartDate)
strategy.entry("Long", strategy.long)
strategy.exit("exit","Long", stop=stopprice)
//beforeEndDate = (time < i_endTime)
beforeEndDate = (time >= timestamp(syminfo.timezone,endYear, endMonth, endDate, 0, 0))
if (beforeEndDate)
strategy.close_all()