Chiến lược tối đa hóa lợi nhuận theo xu hướng


Ngày tạo: 2023-10-11 14:38:40 sửa đổi lần cuối: 2023-10-11 14:38:40
sao chép: 2 Số nhấp chuột: 593
1
tập trung vào
1617
Người theo dõi

Tổng quan

Chiến lược này được hình thành bằng cách tính toán đường trung bình di chuyển và chênh lệch chuẩn CHANNEL của giá, tạo ra đường lên xuống động, và kết hợp giá cao nhất và giá thấp nhất để tạo ra đường trung tâm, do đó đánh giá hướng xu hướng hiện tại. Chiến lược giao dịch theo xu hướng thay đổi khi giá phá vỡ đường lên và giảm khi giá rơi xuống đường xuống.

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

  1. Tính toán trung bình di chuyển đơn giản 20 ngày gần như là đường viền trung tâm
  2. Tính toán khoảng cách chuẩn 20 ngày gần dev làm cơ sở cho khoảng cách giữa đường ray lên xuống
  3. Trung quỹ đạo cơ sở ± 2*dev xác định upper và lower
  4. Tính trung bình của giá upper 2 và giá lower 2 trong 20 ngày gần đây
  5. Hai đường trung đạo trên lấy giá trị trung bình MB làm đường trung đạo cuối cùng
  6. Tín hiệu tăng giá khi close lớn hơn MB trung đạo, tín hiệu giảm giá khi MB lớn hơn close
  7. Đánh giá theo tín hiệu để thực hiện theo dõi xu hướng và kiếm lợi nhuận

Phân tích lợi thế

  1. Sử dụng kênh chênh lệch chuẩn động để nắm bắt xu hướng thay đổi giá nhanh chóng
  2. Kết hợp thông tin giá cao nhất và giá thấp nhất, đường trung tâm có ý nghĩa tham khảo hơn
  3. Sử dụng thiết kế hai đường ray trung tâm để tín hiệu chính xác và đáng tin cậy hơn
  4. Chiến lược này đơn giản, rõ ràng và dễ hiểu.
  5. Các tham số có thể cấu hình ít hơn, phù hợp với mọi môi trường thị trường

Phân tích rủi ro

  1. Khi phá vỡ giao dịch trên đường sắt hoặc dưới đường sắt, cần phải xem xét chiến lược dừng lỗ, kiểm soát tổn thất đơn lẻ
  2. Tỷ lệ giao dịch có thể cao hơn, cần xem xét tác động của phí
  3. Parameters như các tham số khoảng thời gian cần được tối ưu hóa cẩn thận để tránh quá phù hợp
  4. Có thể có tín hiệu giao dịch sai khi xu hướng thay đổi
  5. Cần quản lý tài chính tốt, không nên sử dụng đòn bẩy quá cao

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

  1. Có thể xem xét thêm các điều kiện lọc khi phá vỡ đường ray lên và xuống đường ray để tránh phá vỡ giả
  2. Có thể thiết lập dừng lỗ động dựa trên các chỉ số như ATR
  3. Có thể kết hợp thông tin về khối lượng giao dịch để xác minh độ tin cậy của tín hiệu đột phá
  4. Có thể được tối ưu hóa cho các thông số như chu kỳ tính toán để phù hợp với nhiều môi trường thị trường hơn
  5. Có thể cân nhắc đặt số lượng mở để kiểm soát rủi ro mất mát đơn lẻ

Tóm tắt

Chiến lược tổng thể của chiến lược này rất rõ ràng và dễ hiểu, thông qua các kênh động để nắm bắt xu hướng, và kết hợp với thiết kế đa trung tâm để tạo ra tín hiệu giao dịch, có thể theo dõi hiệu quả hướng xu hướng giao dịch, nhận được lợi nhuận giao dịch tốt hơn. Trong thực tế, cần chú ý đến chiến lược dừng lỗ, quản lý tiền và tối ưu hóa cho các thông số, để có được lợi nhuận ổn định lâu dài.

Mã nguồn chiến lược
/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 4h
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/
// © ErdemDemir

//@version=4
strategy("Lawyers Trend Pro Strategy", shorttitle="Lawyers Trend Pro Strategy", overlay=true)

src = close
mult = 2.0
basis = sma(src, 20)
dev = mult * stdev(src, 20)
upper = basis + dev
lower = basis - dev
offset = 0


lower2 = lowest(20)
upper2 = highest(20)
basis2 = avg(upper2, lower2)


MB= (basis+basis2)/2





col1=close>MB
col3=MB>close
colorE = col1 ? color.blue : col3 ? color.red : color.yellow
p3=plot(MB, color=colorE, linewidth=3)

// Deternine if we are currently LONG
isLong = false
isLong := nz(isLong[1], false)

// Determine if we are currently SHORT
isShort = false
isShort := nz(isShort[1], false)

// Buy only if the buy signal is triggered and we are not already long
buySignal = not isLong and crossover(close,MB)

// Sell only if the sell signal is triggered and we are not already short
sellSignal= not isShort and crossover(MB,close)
if (buySignal)
    isLong := true
    isShort := false

if (sellSignal)
    isLong := false
    isShort := true







/// LONG
strategy.entry("long", true , when = buySignal, comment="Open Long")

strategy.close("long", when=sellSignal, comment = "Close Long")

/// SHORT
strategy.entry("short", false,  when = sellSignal, comment="Open Short")

strategy.close("short", when=buySignal, comment = "Close Short")