Nhận dạng mẫu trên thị trường tài chính


8

Những mô hình học máy hoặc học sâu ( phải được giám sát học tập ) sẽ phù hợp nhất để nhận ra các mô hình trong thị trường tài chính?

Ý tôi là gì khi nhận dạng mẫu trong thị trường tài chính: Hình ảnh sau đây cho thấy mô hình mẫu (ví dụ Đầu và vai) trông như thế nào:

Hình 1:

Nguyên mẫu của mẫu đầu và vai

Và Hình ảnh sau đây cho thấy cách nó thực sự hình thành trong các sự kiện biểu đồ thực tế:

Hình 2:

Đầu và Vai trong các sự kiện biểu đồ thực

Điều tôi đang cố gắng làm là: Bất kỳ mẫu nào tương tự như Hình 1 đều có thể được định nghĩa là Mẫu đầu và Vai nhưng trong Biểu đồ (Biểu đồ giá), nó sẽ không hình thành rõ ràng như Hình 1. Hình 2 là mẫu của Đầu và Vai Mẫu hình trong Biểu đồ (Biểu đồ giá). Như có vẻ như trong Hình 2, nó không thể được xác định là Kiểu đầu và Vai bằng các thuật toán hoặc phân tích thông thường (Bởi vì có rất nhiều cấu trúc cao và thấp tạo thành rất nhiều cấu trúc, có thể dễ dàng đánh lừa vào nhiều vai hoặc đầu hoặc bất kỳ cấu trúc nào khác). Tôi hy vọng sẽ đào tạo máy để nhận ra Mẫu Đầu và Vai khi mẫu tương tự (như Hình 2) được hình thành.

Cảm ơn bạn đã dành thời gian.

Hãy cho tôi biết nếu tôi đang dùng sai cách. Tôi chỉ có kiến ​​thức cho người mới bắt đầu về Machine Learning.


1
Vì vậy, bạn muốn một phân loại nhị phân (giảm so với tăng)? Hang out tại đây: quant.stackexchange.com
Emre

Ý định của tôi là nhận ra mô hình trên trong biểu đồ. Dữ liệu được sử dụng trong biểu đồ có thể là bất kỳ loại dữ liệu nào (ví dụ: đó là dữ liệu thị trường chứng khoán). Tôi nên đã sử dụng hình ảnh sạch hơn của biểu đồ.
Suraj Neupane

@SurajNeupane Câu hỏi hơi không rõ ràng, vui lòng giải thích thêm. dựa trên những gì bạn đã đề cập, tôi nghĩ bạn có thể tạo các tính năng trên một cửa sổ chuyển động và coi nó như một vấn đề phân loại được giám sát.
iratzhash

Tôi xin lỗi nếu tôi đánh lừa bạn. Tôi đã xây dựng nhiều hơn về chủ đề này. Hãy cho tôi biết nếu vẫn chưa rõ ràng, tôi sẽ nghĩ ra một cách khác để giải thích.
Suraj Neupane

Câu trả lời:


1

Đây là một số gợi ý có thể hữu ích.

  1. Dữ liệu trên đường cong gập ghềnh hơn những con đường ở đất nước tôi. Vì vậy, tôi nghĩ rằng bạn nên bắt đầu bằng cách làm mịn đường cong. Có nhiều bộ lọc làm mịn như từ làm mịn trung bình đơn giản nhất đến các mô hình Hồi quy cục bộ như LOESS . Có một số thông số để điều chỉnh. Hãy xem ví dụ.
  2. Tìm cực đại địa phương. Numpy của Python có một triển khai cho việc này và điều này sẽ giúp ích.

Ý tưởng của tôi là cơ bản trơn tru cho đến khi bạn có được đầu và vai của bạn, tức là ba cực đại.

Cảnh báo : Làm mịn mặc dù làm giảm lượng nhiễu (không phải theo nghĩa đen) trên đường cong, nó có xu hướng dịch chuyển đường cong từ vị trí ban đầu để thể hiện nó.

Một triển khai Python mẫu sẽ như thế nào

from statsmodels.nonparametric.smoothers_lowess import lowess
import numpy as np
from scipy.signal import argrelextrema
import matplotlib.pyplot as plt
sample_points =  np.array([1,2.3,3.5,3,4.5,5,2.25,33.3,5,6.7,7.3,56.0,70.1,4.2,5.4,6.2,4.4,100,2.9,45,10,3.4,4.8,50,2.3,3.45,5.5,6.7,7.9,8.7,6.1])
for i in np.arange(0,0.5,0.05):
    # i in the loop is the percentage of data points we are inputing for the loess regression. Wiki atricle explains it, I guess
    filtered = lowess(sample_points,range(len(sample_points)), is_sorted=True, frac=i, it=0)
    maxima = argrelextrema(filtered[:,1], np.greater)
    if len(maxima[0]) == 3:
        plt.plot(filtered[:,1])
        plt.show()

Tôi hy vọng loại này đưa ra hướng mà bạn có thể cần kiểm tra.


sample_points = np.array([1,2.3,3.5,3,4.5,5,2.25,33.3,5,6.7,7.3,56.0,70.1,4.2,5.4,6.2,4.4,100,2.9,45,10,3.4,4.8,50,2.3,3.45,5.5,6.7,7.9,8.7,6.1]) plt.plot(lowess(sample_points,range(len(sample_points)), is_sorted=True, frac=0.2, it=0),'b-'); plt.show(); Điều này rất gần với mô hình. Tôi muốn đào tạo mô hình này để khi nó thực sự xuất hiện trong biểu đồ, nó sẽ được công nhận. Điều đó có thể không ?
Suraj Neupane

@SurajNeupane Vâng, điều đó có thể được thực hiện bằng Dynamic Time Warping. Nhưng vì không có mô hình cụ thể khi vai trái và vai phải của bạn và chúng có thể xảy ra tại bất kỳ thời điểm nào trên đường cong, tôi đề nghị tìm cực đại sau khi làm mịn.
Kiritee Gak

5

Bạn nên xem xét một bộ phân loại dựa trên khoảng cách Dynamic Time Warping (DTW) . DTW là phương pháp tính toán kết hợp tối ưu giữa hai chuỗi đã cho (ví dụ chuỗi thời gian). Nó đã được sử dụng trong một thiết lập học tập có giám sát, đặc biệt nó đã được báo cáo để đạt được kết quả hiện đại, khi được sử dụng trong một phân loại lân cận gần nhất.


2

Bạn đã thấy luận án này ? Tác giả sử dụng DTW để xác định một bộ sưu tập các mẫu biểu đồ.


0

Dường như bạn có thể bắt chước mô hình bằng tỷ lệ phần trăm. Khoảng hai vai cao đến mức nào? (Đầu) hai vai có phải là chẵn không? Hoàn hảo hoặc làm cho sự khác biệt nhỏ những gì sự khác biệt nhỏ này. Tìm câu trả lời có thể đến sau khi nghiên cứu biểu đồ để xem tỷ lệ phần trăm của các mẫu thành công là bao nhiêu. Sau đó bắt chước điều này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.