sách gpt4 ai đã đi

Thực hành giao dịch định lượng Python: sử dụng hàm Resample để chuyển đổi dữ liệu "K hàng ngày"

In lại Tác giả:qq735679552 Thời gian cập nhật: 2022-09-27 22:32:09 26 4
mua khóa gpt4 Nike

CFSDN nhấn mạnh vào việc tạo ra giá trị thông qua mã nguồn mở. Chúng tôi cam kết xây dựng một nền tảng chia sẻ tài nguyên để mọi người làm CNTT có thể tìm thấy thế giới tuyệt vời của riêng mình tại đây.

Bài đăng trên blog CFSDN này "Thực hành giao dịch định lượng Python: sử dụng hàm Resample để chuyển đổi dữ liệu "K hàng ngày"" được tác giả thu thập và sắp xếp. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.

Sử dụng hàm Resample để chuyển đổi chuỗi thời gian.

 1. Hàm resample là gì?

Đây là hàm phương thức của thư viện phân tích dữ liệu Python Pandas.

Nó chủ yếu được sử dụng để chuyển đổi tần suất của chuỗi thời gian. Một số công việc tóm tắt thống kê có thể được thực hiện.

Tần số chuyển đổi của chuỗi thời gian là gì?

Ví dụ, K hàng ngày và K hàng tuần của cổ phiếu.

Giả sử tôi chỉ có thể lấy được dữ liệu K-line hàng ngày, ví dụ từ ngày 1 tháng 11 đến ngày 5 tháng 11, thì làm thế nào tôi có thể chuyển đổi nó thành dữ liệu K-line hàng tuần?

ngày xe đạp Giá mở cửa Giá đóng cửa Giá cao nhất Giá thấp nhất
Ngày 1 tháng 11 vào thứ Hai 1.11 1.11 1.11 1.12
Ngày 2 tháng 11 Thứ ba 1.12 1.12 1.11 1.12
Ngày 3 tháng 11 Thứ Tư 1.13 1.13 1.11 1.12
Ngày 4 tháng 11 Thứ năm 1,15 1.14 1.11 1.12
Ngày 5 tháng 11 Thứ sáu 1.14 1,15 1.11 1.12

Trước hết, chúng ta cần phải làm rõ về giá mở cửa, đóng cửa, giá cao nhất và giá thấp nhất của đường K hàng tuần. Giá mở cửa của mỗi tuần là giá mở cửa của ngày đầu tiên trong tuần, giá đóng cửa là giá đóng cửa của ngày cuối cùng trong tuần. Giá cao nhất của tuần là giá cao nhất trong tuần, giá thấp nhất của tuần là giá thấp nhất trong tất cả các giá thấp nhất trong tuần. Vì vậy, nếu bạn nhìn vào nền tảng giao dịch chứng khoán, K hàng tuần của nền tảng này được ghi lại dựa trên ngày giao dịch thứ Sáu. Giá mở cửa, giá đóng cửa, giá cao nhất và giá thấp nhất được tính theo các quy tắc mà tôi vừa giải thích. Quy tắc lựa chọn cho K hàng tháng và K hàng năm là giống nhau. Chu kỳ của K hàng tháng là một tháng, và chu kỳ của K hàng năm là một năm.

Bạn cũng có thể xác minh độ chính xác của phép tính này thông qua dữ liệu trực tuyến. Quy tắc tính toán này, bao gồm tính toán giá mở cửa, giá đóng cửa, giá cao nhất và giá thấp nhất, tương tự như những gì hàm lấy mẫu lại có thể thực hiện. Ngoài ra, Resample còn có một chức năng khác là thực hiện tổng hợp thống kê. Ví dụ, nếu tôi muốn tính tổng khối lượng giao dịch hàng tuần của một cổ phiếu, tôi có thể sử dụng hàm Resample.sum để cộng khối lượng giao dịch từ thứ Hai đến thứ Sáu.

Để mọi người dễ nhớ hơn, bạn cũng có thể hiểu resample là hàm pivot table trong Excel. Bạn có thể thực hiện nhiều thao tác lọc và thống kê tóm tắt theo ngày. Quan trọng nhất là anh ấy có thể theo dõi ngày tháng.

2. Chức năng Resample thực tế

Vì hai bài học này vẫn còn khá cơ bản nên chưa có nội dung theo từng mô-đun.

Chúng ta sẽ thực hiện công việc mô-đun thực sự khi tạo cơ sở dữ liệu chứng khoán. Cho đến nay, tất cả đều ở dạng chữ viết cơ bản. Tôi xin nói trước điều này.

1. Chuyển đổi K hàng ngày sang K hàng tuần

1.1 Nghiên cứu tài liệu chức năng.

Tìm kiếm Pandas Resample trên Google: liên kết đầu tiên là tài liệu chính thức về chức năng này.

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.resample.html .

Thực hành giao dịch định lượng Python: sử dụng hàm Resample để chuyển đổi dữ liệu

Sau đây là phần giới thiệu: Resample là một phương thức trong Pandas DataFrame. Sau đây là giải thích về các thông số.

Ở đây chúng tôi chỉ giải thích hai tham số phổ biến, một là quy tắc và tham số còn lại là đóng.

  • Quy tắc cho biết loại chỉ báo tuần hoàn nào bạn đưa vào đó, với m biểu thị Tháng, Y biểu thị Năm và w biểu thị Tuần.
  • đóng biểu thị đường phân chia mà bạn lấy. Ví dụ, nếu tôi chuyển đổi k hàng ngày thành k hàng tuần, tôi nên lấy Thứ Hai làm đường phân chia hay Thứ Sáu làm đường phân chia? Điều này được xác định bởi đóng.

Sau đây là một ví dụ:

>>>index = pd.date_range("1/1/2000", periods=9, freq="T")>>>series = pd.Series(range(9), index=index)>>>series 2000-01-01 00:00:00 0 2000-01-01 00:01:00 1 2000-01-01 00:02:00 2 2000-01-01 00:03:00 3 2000-01-01 00:04:00 4 2000-01-01 00:05:00 5 2000-01-01 00:06:00 6 2000-01-01 00:07:00 7 2000-01-01 00:08:00 8Freq: T, kiểu dữ liệu: int64

Ở đây, trước tiên chúng ta tạo một DataFrame chuỗi thời gian, đây là biến chuỗi. Bạn có thể nghĩ về nó như một kiểu bảng chỉ có một trường. Sau đó đọc tiếp:

>>> series.resample("3T").sum() 2000-01-01 00:00:00 32000-01-01 00:03:00 122000-01-01 00:06:00 21 Tần suất: 3T, kiểu dữ liệu: int64

Phương pháp Resample được sử dụng ở đây, 3T nghĩa là 3 phút và T nghĩa là phút. sum() là một bản tóm tắt, nghĩa là bản tóm tắt của cột dữ liệu này.

Có nghĩa là số liệu thống kê được thực hiện sau mỗi 3 phút. Lưu ý rằng giá trị thời gian của bản tóm tắt chuỗi thời gian này là phút đầu tiên của khoảng thời gian 3 phút. Nếu tôi muốn lấy phút cuối cùng của khoảng thời gian, tôi có thể thay đổi giá trị nhãn thành "phải":

>>> series.resample("3T", label="right").sum() 2000-01-01 00:03:00 32000-01-01 00:06:00 122000-01-01 00:09:00 21 Tần suất: 3T, kiểu dữ liệu: int64

1.2 Thực chiến.

Lấy dữ liệu thực tế của K hàng ngày:

#Lấy kdf hằng ngày = get_price("000001.XSHG", end_date="2021-05-30 14:00:00",count=20, frequency="1d", fields=["open","close","high","low","volume","money"]) print(df)

Thực hành giao dịch định lượng Python: sử dụng hàm Resample để chuyển đổi dữ liệu

Bạn có thể thấy rằng toàn bộ dữ liệu từ ngày 28 tháng 4 đến ngày 28 tháng 5 đã được thu thập. Để dễ hiểu hơn, chúng ta thêm một cột dữ liệu nữa, đó là cột ngày trong tuần của ngày hiện tại.

#Lấy kdf hằng ngày = get_price("000001.XSHG", end_date="2021-05-30 14:00:00",count=20, frequency="1d", fields=["open","close","high","low","volume","money"]) df["weekday"]=df.index.weekdayprint(df)

Thực hành giao dịch định lượng Python: sử dụng hàm Resample để chuyển đổi dữ liệu

Ở đây 0 biểu thị thứ Hai. Làm thế nào để chuyển đổi nó thành số liệu thống kê hàng tuần?

#Lấy tuần kimport pandas dưới dạng pdff_week = pd.DataFrame()df_week = df["open"].resample("W").first()print(df_week)

Thực hành giao dịch định lượng Python: sử dụng hàm Resample để chuyển đổi dữ liệu

Bạn có thể thấy rằng ngày 30/05/2021 là ngày cuối cùng của tuần. Giá mở cửa tương ứng thực sự là con số này. Điều này chứng tỏ dữ liệu K hàng tuần mà chúng tôi tính toán là chính xác.

Giá đóng cửa là dữ liệu của ngày cuối cùng của giá đóng cửa hàng tuần.

Giá cao nhất là giá trị lớn nhất của giá đóng cửa tuần.

Giá thấp nhất là giá đóng cửa thấp nhất của mỗi tuần.

#Lấy tuần kimport pandas dưới dạng pd ddf_week = pd.DataFrame() df_week["open"] = df["open"].resample("W").first() df_week["close"] = df["close"].resample("W").last() df_week["high"] = df["high"].resample("W").max() df_week["low"] = df["low"].resample("W").min() print(df_week)

Thực hành giao dịch định lượng Python: sử dụng hàm Resample để chuyển đổi dữ liệu

Dữ liệu so sánh, giá đóng cửa là dữ liệu giá đóng cửa của ngày gần nhất. Giá cao nhất là giá cao nhất của mỗi ngày trong tuần hiện tại. Thấp là mức giá thấp nhất trong số các mức giá thấp nhất của mỗi ngày trong tuần hiện tại.

Chúng ta có thể chuyển đổi dữ liệu K hàng ngày thành dữ liệu K hàng tuần chỉ với chưa đến 10 dòng mã.

2. Chức năng thống kê tóm tắt (thống kê khối lượng giao dịch hàng tháng và số tiền giao dịch)

Tóm tắt khối lượng giao dịch và giá trị giao dịch.

Tôi muốn chuyển đổi khối lượng và tiền thành tổng khối lượng và tổng tiền.

#Lấy tuần kimport pandas dưới dạng pd ddf_week = pd.DataFrame() df_week["open"] = df["open"].resample("W").first() df_week["close"] = df["close"].resample("W").last() df_week["high"] = df["high"].resample("W").max() df_week["low"] = df["low"].resample("W").min() df_week["volume(sum)"] = df["volume"].resample("W").sum() df_week["money(sum)"] = df["money"].resample("W").sum() print(df_week)

3. Từ K hằng ngày đến K hằng tháng

Giả sử tôi có dữ liệu của một năm. Tôi nên chuyển đổi nó thành K hàng tháng như thế nào?

Bạn chỉ cần thay đổi 2 vị trí:

  • Thêm vàongày bắt đầuNhận dữ liệu đầy đủ của một năm
  • Sẽlấy mẫu lạiChỉ cần thay đổi tham số thành M, trong đó M là viết tắt của Tháng.
#Lấy kdf hằng ngày = get_price("000001.XSHG", end_date="2021-05-30 14:00:00", start_date="2020-05-30", frequency="1d", fields=["open","close","high","low","volume","money"]) df["weekday"]=df.index.weekdayprint(df)#Lấy kimport pandas hằng tuần dưới dạng pdff_week = pd.DataFrame()df_week["open"] = df["open"].resample("M").first()df_week["close"] = df["close"].resample("M").last()df_week["high"] = df["high"].resample("M").max()df_week["low"] = df["thấp"].resample("M").min()in(df_week)

Trên đây là chi tiết về việc sử dụng hàm Resample để chuyển đổi dữ liệu "daily K" trong giao dịch định lượng Python. Để biết thêm thông tin về hàm Resample của Python để chuyển đổi dữ liệu "daily K", vui lòng chú ý đến các bài viết liên quan khác của tôi! .

Liên kết gốc: https://blog.csdn.net/biggbang/article/details/117433870.

Cuối cùng, bài viết này về thực hành giao dịch định lượng Python sử dụng hàm Resample để chuyển đổi dữ liệu "daily K" ở đây. Nếu bạn muốn biết thêm về thực hành giao dịch định lượng Python sử dụng hàm Resample để chuyển đổi dữ liệu "daily K", vui lòng tìm kiếm các bài viết của CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

26 4 0
qq735679552
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com