Chiến lược đường lợi thế xác nhận trung bình di chuyển kép

Tác giả:ChaoZhang, Ngày: 2024-01-23 10:49:57
Tags:

img

Tổng quan

Chiến lược này là một chiến lược chỉ theo xu hướng dài tạo ra tín hiệu giao dịch thông qua việc xác nhận kép của chỉ số Aroon và đường trung bình di chuyển hồi quy tuyến tính (LSMA).

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

Chiến lược này sử dụng sự chéo chéo giữa các dải trên và dưới của chỉ số Aroon để xác định hướng xu hướng. Một tín hiệu mua được tạo ra khi dải trên vượt qua trên dải dưới từ dưới. Một tín hiệu bán được tạo ra khi dải trên vượt qua dưới dải dưới từ trên. Để tránh đột phá sai, chiến lược cũng giới thiệu đường LSMA như một thẩm phán phụ trợ. Một tín hiệu mua chỉ được kích hoạt khi giá đóng trên LSMA.

Ưu điểm

  1. Sử dụng chỉ số Aroon để xác định xu hướng tránh nhiễu nhiễu
  2. Thêm dòng LSMA để lọc các đột phá giả
  3. Chỉ dài hạn, phù hợp với xu hướng tăng dài hạn của thị trường rộng lớn hơn
  4. Các thông số đơn giản, dễ thực hiện

Rủi ro

  1. Khó cắt giảm lỗ kịp thời khi xu hướng đảo ngược

Để giảm thiểu rủi ro, dừng lỗ có thể được thêm vào hoặc các chỉ số khác có thể được sử dụng để xác định sự đảo ngược xu hướng và cắt giảm lỗ theo thời gian.

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

  1. Các chỉ số thử nghiệm với các thông số chu kỳ khác nhau
  2. Thêm mô-đun học máy để tự động tối ưu hóa các tham số

Tóm lại


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 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/
// © exlux99

//@version=4

strategy(title = "Aroon Strategy long only", overlay = true,  pyramiding=1,initial_capital = 100, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.1)

//Time
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2010, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

//INPUTS

length = input(15, minval=1, title="Aroon Legnth")
upper = 100 * (highestbars(high, length+1) + length)/length
lower = 100 * (lowestbars(low, length+1) + length)/length

lengthx = input(title="Length LSMA", type=input.integer, defval=20)
offset = 0//input(title="Offset", type=input.integer, defval=0)
src = input(close, title="Source")
lsma = linreg(src, lengthx, offset)


long = crossover(upper,lower) and close > lsma
longexit = crossunder(upper,lower) and close < lsma

if(time_cond)
    strategy.entry("long",1,when=long)
    strategy.close("long",when=longexit)


Thêm nữa