Chiến lược giao dịch đột phá tích lũy


Ngày tạo: 2023-10-25 17:34:41 sửa đổi lần cuối: 2023-10-25 17:34:41
sao chép: 1 Số nhấp chuột: 739
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch đột phá tích lũy

Tổng quan

Chiến lược giao dịch đột phá theo cấp độ tìm kiếm cơ hội mua và bán tiềm năng bằng cách xác định giai đoạn tích lũy và phân bổ của thị trường, sử dụng nguyên tắc phân tích vector, hỗ trợ bởi phán đoán về hình dạng nhảy vọt và hình dạng đảo ngược.

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

  1. Sử dụng các đường trung bình với độ dài khác nhau để xác định giai đoạn tích lũy và phân phối. Khi giá đóng cửa đi qua chiều dài trung bình của AccumulationLength, đánh giá là giai đoạn tích lũy; Khi giá đóng cửa đi qua chiều dài trung bình của DistributionLength, đánh giá là giai đoạn phân phối.

  2. Sử dụng các đường trung bình với độ dài khác nhau để xác định hình cầu vồng và hình đảo. Khi đường trung bình với độ dài SpringLength ở điểm thấp, đánh giá là hình cầu vồng; Khi đường trung bình với độ dài UpthrustLength ở điểm cao, đánh giá là hình đảo.

  3. Trong giai đoạn tích lũy, làm nhiều hơn khi quan sát hình dạng cú quạt; trong giai đoạn phân bổ, quan sát hình dạng đảo ngược, làm trống.

  4. Cài đặt mức dừng lỗ. Cấp dừng lỗ của vị trí dài là giá đóng cửa ((1 - Stop Loss %), Cấp dừng lỗ của vị trí ngắn là giá đóng cửa ((1 + Stop Loss %)).

  5. Đánh dấu giai đoạn tích lũy, giai đoạn phân bổ, hình dạng nhảy và hình dạng đảo ngược trên biểu đồ, để dễ dàng nhận dạng hình dạng.

Phân tích lợi thế

  1. Sử dụng phương pháp phân tích vector để xác định giai đoạn tích lũy và phân bổ của sự tăng trưởng thị trường, có thể làm tăng độ tin cậy của tín hiệu giao dịch.

  2. Giao dịch được thực hiện với các hình dạng nhảy và đảo ngược để xác minh thêm tín hiệu giao dịch.

  3. Thiết lập dừng lỗ có thể kiểm soát hiệu quả tổn thất đơn lẻ.

  4. Khi đánh dấu trên biểu đồ, bạn có thể quan sát rõ ràng toàn bộ quá trình hình thành lực tích.

  5. Các tham số của chiến lược này có thể được điều chỉnh và tối ưu hóa cho các thị trường và chu kỳ giao dịch khác nhau.

Phân tích rủi ro

  1. Sự kết hợp có thể dẫn đến tín hiệu trung tuyến phát ra tín hiệu sai.

  2. Hình dạng bắn cung và hình dạng đảo ngược có thể bị hỏng.

  3. Hạn lỗ có thể được vượt qua để tăng lỗ.

  4. Cần điều chỉnh các tham số cho các thị trường khác nhau, nếu không phù hợp có thể dẫn đến tín hiệu giao dịch sai.

  5. Hệ thống giao dịch máy móc có thể không đủ linh hoạt và cần được giám sát bằng tay.

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

  1. Có thể thử nghiệm các sự kết hợp tối ưu của các tham số trong các chu kỳ khác nhau của thị trường khác nhau.

  2. Có thể xem xét thêm các yếu tố giao dịch để xác nhận tín hiệu giao dịch.

  3. Có thể thiết lập dừng động, điều chỉnh mức dừng tùy theo biến động của thị trường.

  4. Bạn có thể xem xét thêm các yếu tố cơ bản để tránh giao dịch sai lầm tại thời điểm quan trọng.

  5. Các tham số tối ưu hóa động có thể được kết hợp với thuật toán học máy.

Tóm tắt

Chiến lược giao dịch đột phá tích lũy tích hợp nhiều phương pháp phân tích kỹ thuật như phân tích vector, chỉ số đường trung bình, nhận dạng hình dạng, có thể xác định hiệu quả sự tăng trưởng của thị trường và tạo ra tín hiệu giao dịch. Chiến lược này có các ưu điểm như tín hiệu giao dịch đáng tin cậy, rủi ro có thể kiểm soát được và hiển thị trực quan rõ ràng.

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

//@version=5
strategy("Wyckoff Range Strategy",  overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent)

// Input Variables
AccumulationLength = input(32, "Accumulation")
DistributionLength = input(35, "Distribution")
SpringLength = input(10, "Spring")
UpthrustLength = input(20, "Upthrust")
stopPercentage = input(10, "Stop Percentage")

// Accumulation Phase
isAccumulation = ta.crossover(close, ta.sma(close, AccumulationLength))

// Distribution Phase
isDistribution = ta.crossunder(close, ta.sma(close, DistributionLength))

// Spring and Upthrust
isSpring = ta.crossover(low, ta.sma(low, SpringLength))
isUpthrust = ta.crossunder(high, ta.sma(high, UpthrustLength))

// Strategy Conditions
enterLong = isAccumulation and isSpring
exitLong = isDistribution and isUpthrust

enterShort = isDistribution and isUpthrust
exitShort = isAccumulation and isSpring

// Entry and Exit Conditions
if (enterLong)
    strategy.entry("Long", strategy.long)
    
if (exitLong)
    strategy.close("Long")

if (enterShort)
    strategy.entry("Short", strategy.short)

if (exitShort)
    strategy.close("Short")

// Stop Loss
stopLossLevelLong = close * (1 - stopPercentage / 100)
stopLossLevelShort = close * (1 + stopPercentage / 100)
strategy.exit("Stop Loss Long", "Long", stop=stopLossLevelLong)
strategy.exit("Stop Loss Short", "Short", stop=stopLossLevelShort)

// Plotting Wyckoff Schematics
plotshape(isAccumulation, title="Accumulation Phase", location=location.belowbar, color=color.green, style=shape.labelup, text="Accumulation")
plotshape(isDistribution, title="Distribution Phase", location=location.abovebar, color=color.red, style=shape.labeldown, text="Distribution")
plotshape(isSpring, title="Spring", location=location.belowbar, color=color.blue, style=shape.triangleup)
plotshape(isUpthrust, title="Upthrust", location=location.abovebar, color=color.orange, style=shape.triangledown)