Bạn có lợi gì khi tham gia khóa học này? Trước hết, khóa học này dựa trên ngôn ngữ lập trình JavaScript và Python. Ngôn ngữ chỉ là một công nghệ. Cuối cùng, chúng ta nên áp dụng công nghệ này vào một ngành công nghiệp. Thương mại định lượng là một ngành công nghiệp mới nổi, hiện đang trong giai đoạn phát triển nhanh và có nhu cầu lớn về nhân tài.
Thông qua việc học tập có hệ thống của khóa học này, bạn có thể có sự hiểu biết sâu sắc hơn về lĩnh vực giao dịch định lượng. Nếu bạn là một sinh viên chuẩn bị tham gia lĩnh vực giao dịch định lượng, nó cũng sẽ giúp bạn. Nếu bạn là một người đam mê đầu tư cổ phiếu hoặc tương lai, thì giao dịch định lượng có thể hỗ trợ giao dịch chủ quan của bạn. Bằng cách phát triển các chiến lược giao dịch, bạn có thể kiếm lợi nhuận trên thị trường tài chính, và cũng mở rộng các kênh và nền tảng cho đầu tư và quản lý tài chính của bạn.
Trước đó, hãy để tôi nói về kinh nghiệm giao dịch cá nhân của tôi. Tôi không chuyên về tài chính, tôi đã học thống kê. Ban đầu, tôi bắt đầu giao dịch cổ phiếu chủ quan trong thời gian học. Sau đó, tôi trở thành một học viên giao dịch định lượng của các quỹ cổ phần tư nhân trong nước, chủ yếu tham gia nghiên cứu chiến lược và phát triển chiến lược.
Tôi đã giao dịch trong vòng tròn này trong hơn mười năm, và đã phát triển nhiều loại chiến lược. Triết lý đầu tư của tôi là: kiểm soát rủi ro là trên tất cả mọi thứ khác và tập trung vào lợi nhuận tuyệt đối. Chủ đề của chủ đề của chúng tôi là: từ giao dịch định lượng đến quản lý tài sản - phát triển chiến lược CTA cho lợi nhuận tuyệt đối.
Có người có thể hỏi CTA là gì? CTA chính xác là gì? CTA được gọi là cố vấn giao dịch hàng hóa ở nước ngoài và quản lý đầu tư ở Trung Quốc. CTA truyền thống là thu thập tiền của đa số các nhà đầu tư, sau đó ủy thác cho các tổ chức đầu tư chuyên nghiệp, và cuối cùng đầu tư vào hợp đồng tương lai chỉ số chứng khoán, hợp đồng tương lai hàng hóa và hợp đồng trái phiếu kho bạc thông qua các cố vấn giao dịch (đặc biệt là CTA).
Nhưng trên thực tế, với sự phát triển và mở rộng liên tục của thị trường tương lai toàn cầu, khái niệm của CTA cũng đang mở rộng, và phạm vi của nó vượt xa thị trường tương lai truyền thống. Nó có thể đầu tư không chỉ vào thị trường tương lai, mà còn vào thị trường lãi suất, thị trường chứng khoán, thị trường ngoại hối và thị trường tùy chọn. Miễn là có một lượng dữ liệu lịch sử nhất định cho loại này, nó có thể phát triển các chiến lược CTA tương ứng dựa trên các dữ liệu lịch sử này.
Ngay từ đầu những năm 1980, công nghệ giao dịch điện tử chưa trưởng thành. Vào thời điểm đó, hầu hết các nhà giao dịch đánh giá xu hướng tương lai của hợp đồng tương lai hàng hóa bằng cách vẽ các chỉ số kỹ thuật bằng tay, chẳng hạn như chỉ số William, KDJ, RSI, MACD, CCI, v.v. Sau đó, các nhà giao dịch thành lập một quỹ CTA đặc biệt để giúp khách hàng quản lý tài sản.
Sự thay đổi về quy mô quản lý quỹ CTA
Trong hàng tỷ đô la
Đặc biệt với sự gia tăng của giao dịch định lượng, quy mô của các quỹ CTA toàn cầu đã tăng từ 130,6 tỷ USD vào năm 2005 lên hơn 300 tỷ USD vào năm 2015. Chiến lược CTA cũng đã trở thành một trong những chiến lược đầu tư chính của các quỹ phòng hộ toàn cầu.
Tăng cùng với kích thước là hiệu suất của các quỹ CTA. Hãy nhìn vào chỉ số Barclays CTA trong biểu đồ dưới đây. Chỉ số Barclay CTA là một tiêu chuẩn ngành đại diện cho các cố vấn giao dịch hàng hóa toàn cầu. Từ cuối năm 1979 đến cuối năm 2016, lợi nhuận tích lũy của Chỉ số Quỹ Barclay CTA lên đến 28,95 lần, lợi nhuận hàng năm là 9,59%, tỷ lệ Sharp là 0,37, và mức rút tối đa là 15,66%.
Bởi vì trong danh mục đầu tư phân bổ tài sản, chiến lược CTA thường duy trì mối tương quan rất thấp với các chiến lược khác. Như được hiển thị trong vòng tròn màu đỏ bên dưới, trong thời kỳ thị trường gấu chứng khoán toàn cầu từ năm 2000 đến năm 2002 và cuộc khủng hoảng siêu cao cấp toàn cầu vào năm 2008, chỉ số quỹ Barclay CTA không chỉ không giảm mà còn đạt được lợi nhuận tích cực. Khi thị trường chứng khoán và thị trường trái phiếu trong cuộc khủng hoảng, CTA có thể cung cấp lợi nhuận mạnh mẽ. Ngoài ra, chúng ta có thể thấy rằng mức lợi nhuận của Chỉ số CTA hàng hóa Barclay kể từ năm 1980 đã mạnh hơn S&P 500 và việc rút tiền cũng thấp hơn nhiều so với S&P 500.
Sự phát triển của CTA ở Trung Quốc chỉ diễn ra trong mười năm qua, nhưng đà phát triển rất mạnh. Điều này chủ yếu là do môi trường giao dịch tương lai hàng hóa trong nước tương đối mở, ngưỡng thấp của các quỹ giao dịch, việc sử dụng hệ thống ký quỹ để giao dịch trong cả hai vị trí dài và ngắn, chi phí giao dịch thấp, cấu trúc kỹ thuật tiên tiến hơn của sàn giao dịch so với cổ phiếu và giao dịch hệ thống dễ dàng hơn.
Từ năm 2010, các quỹ CTA chủ yếu tồn tại dưới dạng quỹ tư nhân. Với việc mở dần phạm vi đầu tư của tài khoản đặc biệt của quỹ trong các chính sách trong nước, các quỹ CTA bắt đầu tồn tại dưới dạng tài khoản đặc biệt của quỹ. Chế độ hoạt động minh bạch và cởi mở hơn của nó cũng đã trở thành một công cụ cần thiết cho nhiều nhà đầu tư hơn để phân bổ tài sản.
Các chiến lược CTA cũng phù hợp hơn với các nhà giao dịch cá nhân so với các chiến lược giao dịch khác về sự dễ dàng tham gia, ngưỡng vốn, thực hiện các chiến lược giao dịch và kết nối API. Các hợp đồng tương lai trong nước rất nhỏ. Ví dụ, bột ngô hoặc đậu nành có thể được giao dịch với hàng ngàn nhân dân tệ, và hầu như không có ngưỡng vốn. Ngoài ra, bởi vì một số chiến lược CTA đến từ phân tích kỹ thuật truyền thống, nó tương đối dễ dàng so với các chiến lược khác.
Quá trình thiết kế của chiến lược CTA cũng tương đối đơn giản. Đầu tiên, dữ liệu lịch sử được xử lý ban đầu, và sau đó nhập vào mô hình định lượng. Mô hình định lượng bao gồm chiến lược giao dịch được hình thành bằng mô hình toán học, thiết kế lập trình và các công cụ khác, và tín hiệu giao dịch được tạo ra bằng cách tính toán và phân tích các dữ liệu này. Tất nhiên, trong phát triển thực tế, nó không đơn giản như biểu đồ trên. Ở đây chúng tôi chỉ cung cấp cho bạn một khái niệm tổng thể.
Từ quan điểm của chiến lược giao dịch, chiến lược CTA cũng đa dạng: nó có thể là một chiến lược xu hướng hoặc một chiến lược trọng tài; Nó có thể là một chiến lược dài hạn trung bình và dài hạn, hoặc một chiến lược ngắn hạn trong ngày; Logic chiến lược có thể dựa trên phân tích kỹ thuật hoặc phân tích cơ bản; Nó có thể là một giao dịch chủ quan hoặc giao dịch hệ thống.
Chiến lược CTA có các phương pháp phân loại khác nhau. Theo phương pháp giao dịch, nó có thể được chia thành giao dịch chủ quan và giao dịch hệ thống. Sự phát triển của chiến lược CTA nước ngoài tương đối tiên tiến, và chiến lược CTA của giao dịch hệ thống đã gần 100%. Theo phương pháp phân tích, nó có thể được chia thành phân tích cơ bản và phân tích kỹ thuật. Theo nguồn thu nhập, nó có thể được chia thành giao dịch xu hướng và giao dịch dao động.
Nói chung, chiến lược CTA chiếm khoảng 70% tổng thị trường giao dịch, chiến lược xu hướng chiếm khoảng 25%, và chiến lược phản xu hướng hoặc đảo ngược xu hướng chiếm khoảng 5%.Trong số đó, chiến lược xu hướng có tỷ lệ lớn nhất có thể được chia thành giao dịch tần số cao, giao dịch trong ngày, giao dịch ngắn và trung hạn và giao dịch trung và dài hạn theo thời gian vị trí.
Hiện nay, có hai chiến lược giao dịch tần số cao chính trên thị trường: một là chiến lược tạo thị trường tần số cao, một là chiến lược điều chỉnh tần số cao. Chiến lược tạo thị trường là cung cấp thanh khoản trong thị trường giao dịch. nghĩa là, trong thị trường giao dịch với nhà tạo thị trường, nếu ai đó muốn giao dịch, nhà tạo thị trường phải đảm bảo rằng lệnh của mình có thể giao dịch. Nếu không có đủ thanh khoản trên thị trường và lệnh không thể giao dịch, nhà tạo thị trường phải mua hoặc bán lệnh của đối tác.
Phân phối tần số cao là giao dịch hai cổ phiếu có mối tương quan cao hoặc ETF và danh mục đầu tư ETF. Theo phương pháp tính toán của ETF, giá dự kiến của ETF có thể được tính theo cùng một cách. Giá chỉ số ETF có thể trừ giá dự kiến của ETF để có được sự khác biệt giá. Thông thường, sự khác biệt giá sẽ chạy trong một kênh giá. Nếu sự khác biệt giá vượt qua các kênh trên và dưới, bạn có thể giao dịch sự khác biệt giá, chờ đợi sự trở lại của sự khác biệt giá và kiếm thu nhập từ nó.
Trong nghĩa đen, miễn là không có vị trí qua đêm, nó có thể được gọi là chiến lược giao dịch trong ngày. Do thời gian nắm giữ ngắn của giao dịch trong ngày, thường không thể kiếm lợi nhuận ngay sau khi vào thị trường, và sau đó rời khỏi thị trường nhanh chóng. Do đó, chế độ giao dịch này mang rủi ro thị trường thấp. Tuy nhiên, vì thị trường thay đổi nhanh chóng trong một khoảng thời gian ngắn, chiến lược trong ngày thường có yêu cầu cao hơn cho các nhà giao dịch.
Về lý thuyết, thời gian nắm giữ càng dài, khả năng chiến lược càng lớn và tỷ lệ rủi ro-lợi nhuận càng thấp. Đặc biệt trong các giao dịch tổ chức, do khả năng hạn chế của các chiến lược ngắn hạn, các quỹ lớn không thể vào và ra khỏi thị trường trong một khoảng thời gian ngắn, các chiến lược dài hạn sẽ được phân bổ. Nói chung, thời gian vị trí là vài ngày và tháng, hoặc thậm chí lâu hơn.
Nói chung, chiến lược CTA được nghiên cứu với dữ liệu phút, giờ và hàng ngày, bao gồm: giá mở cửa, giá cao nhất, giá thấp nhất, giá đóng cửa, khối lượng giao dịch, vv. Chỉ có một vài chiến lược CTA sẽ sử dụng dữ liệu Tick, chẳng hạn như giá mua, giá bán, khối lượng mua, khối lượng bán và các dữ liệu chuyên sâu khác trong dữ liệu L2.
Đối với ý tưởng cơ bản của chiến lược CTA, điều đầu tiên chúng ta nghĩ đến là dựa trên các chỉ số kỹ thuật truyền thống, bởi vì có nhiều tài liệu tham khảo công khai trong lĩnh vực này, và logic thường đơn giản, hầu hết đều dựa trên các nguyên tắc thống kê. Ví dụ, chúng ta quen thuộc với các chỉ số kỹ thuật khác nhau: MA, SMA, EMA, MACD, KDJ, RSI, BOLL, W&R, DMI, ATR, SAR, BIAS, OBV, vv.
Ngoài ra còn có một số mô hình giao dịch cổ điển trên thị trường, cũng có thể được sử dụng để tham khảo và cải thiện, bao gồm: kết hợp đa đường trung bình động, DualThrust, R-Breaker, phương pháp giao dịch Rùa, phương pháp giao dịch lưới, v.v.
Tất cả các chiến lược này đều là các chiến lược giao dịch dựa trên phân tích kỹ thuật truyền thống. Quá trình này là để chiết xuất các yếu tố hoặc điều kiện giao dịch với lợi thế xác suất theo dữ liệu lịch sử và các khái niệm giao dịch chính xác, và giả định rằng thị trường vẫn sẽ có luật như vậy trong tương lai. Cuối cùng, chiến lược giao dịch được thực hiện bằng mã và giao dịch tự động hoàn toàn.
Ưu điểm lớn nhất của chiến lược CTA là bất kể thị trường hiện tại đang tăng hay giảm, nó có thể đạt được lợi nhuận tuyệt đối, đặc biệt là khi thị trường thay đổi nhanh chóng, hoặc xu hướng thị trường rõ ràng là trơn tru, lợi thế của chiến lược là hiển nhiên, nói ngắn gọn, nếu có xu hướng, có lợi nhuận. Tuy nhiên, nếu thị trường đang trong tình huống biến động hoặc xu hướng không rõ ràng, chiến lược có thể mua ở điểm cao và bán ở điểm thấp, và dừng lỗ qua lại.
Chiến lược tương lai CTA có lợi chủ yếu vì các điểm sau:
Ngoài ra, tính năng giao dịch của theo dõi xu hướng là mất một số tiền nhỏ khi không có thị trường, và kiếm được một số tiền lớn khi thị trường xuất hiện. Tuy nhiên, những người đã làm giao dịch biết rằng thị trường biến động hầu hết thời gian, và chỉ trong một khoảng thời gian ngắn là thị trường xu hướng. Do đó, chiến lược theo dõi xu hướng có tỷ lệ thắng thấp trong giao dịch, nhưng lợi nhuận và tổn thất tổng thể của mỗi giao dịch tương đối lớn.
Bởi vì chiến lược theo dõi xu hướng không ổn định về thu nhập, nhiều tổ chức đầu tư sẽ sử dụng nhiều loại và chiến lược để xây dựng danh mục đầu tư, cũng sẽ được cấu hình với một số lượng nhất định các chiến lược đảo ngược.
Sự tương quan giữa CTA và tài sản truyền thống
Chúng ta hãy xem biểu đồ trên. Về mặt lý thuyết, các chiến lược khác nhau với các phong cách khác nhau hoặc tương quan tương đối thấp sẽ đôi khi cùng một và đôi khi khác nhau tín hiệu giao dịch cùng một lúc khi phải đối mặt với các thay đổi khác nhau trong giá thị trường.
Từ quan điểm trên, có thể kết luận rằng tốt hơn là phát triển nhiều chiến lược phụ vừa phải hơn là phát triển một chiến lược chính. Làm thế nào để kiểm soát các chiến lược này? Ở đây chúng ta có thể học hỏi từ thuật toán rừng ngẫu nhiên trong học máy. Rừng ngẫu nhiên không phải là một thuật toán độc lập, nó là một khung quyết định chứa nhiều cây quyết định. Nó tương đương với chiến lược phụ trên chiến lược phụ của cây quyết định. cụm chiến lược phụ được tổ chức và kiểm soát thông qua chiến lược phụ.
Tiếp theo, chúng ta cần thiết kế một chiến lược mẹ. Chúng ta có thể đánh giá tính thanh khoản, lợi nhuận và sự ổn định của mỗi loại trong toàn bộ thị trường tương lai hàng hóa để sàng lọc danh mục đầu tư hàng hóa tương lai với sự biến động thấp về lợi nhuận, và sau đó tiến hành sàng lọc trung lập ngành, giảm thêm sự biến động tổng thể thông qua sự phân tán ngành của danh mục đầu tư, và cuối cùng xây dựng danh mục đầu tư đa loại thực tế hàng hóa tương lai thông qua sự phù hợp giá trị thị trường cho giao dịch.
Mỗi loại cũng có thể được cấu hình với các chiến lược đa tham số, và nó có thể chọn sự kết hợp các tham số với hiệu suất tốt trong backtest. Khi xu hướng thị trường là rõ ràng, các chiến lược đa tham số thường sẽ hoạt động nhất quán, tương đương với việc thêm các vị trí; Khi thị trường ở trong tình huống biến động, hiệu suất của nhiều tập hợp các chiến lược tham số thường sẽ không nhất quán, do đó chúng có thể phòng ngừa rủi ro bằng cách đi dài hoặc ngắn, tương đương với việc giảm vị trí. Điều này có thể làm giảm thêm tỷ lệ backtest tối đa của danh mục đầu tư, trong khi duy trì tỷ lệ lợi nhuận tổng thể không thay đổi.
Newton đã từng nói: Nếu tôi nhìn xa hơn những người khác, đó là vì tôi đứng trên vai của những người khổng lồ.
Các chiến lược CTA có sẵn trên thị trường bao gồm chiến lược SMA, chiến lược Bollinger band, các quy tắc giao dịch rùa, chiến lược động lực, chiến lược trọng tài, v.v. Các chiến lược giao dịch định lượng có một đặc điểm, đó là chúng sẽ chậm trễ một khi được công khai. Nhưng điều này không ảnh hưởng đến chúng ta để học hỏi từ các chiến lược này và học hỏi từ bản chất của chúng, để chúng ta có thể giải quyết các vấn đề trên vai của những người khổng lồ.
Phân tích cơ bản không cần quan tâm đến xu hướng giá ngắn hạn. Người ta tin rằng giá trị sẽ được phản ánh trong giá cuối cùng. Nó là về việc phân tích các yếu tố đằng sau giá để xác định giá trị của các loại. Nói chung, phương pháp phân tích từ trên xuống được áp dụng: từ các yếu tố vĩ mô, các yếu tố đa dạng và các yếu tố khác.
Chúng ta có thể thấy từ biểu đồ trên rằng có nhiều yếu tố ảnh hưởng đến giá hàng hóa, và dữ liệu này luôn thay đổi.
Trên thực tế, phân tích cơ bản của hợp đồng tương lai hàng hóa không phải là phân tích tất cả các yếu tố. Chúng ta chỉ cần nắm bắt các yếu tố cốt lõi của phân tích cơ bản để tìm ra các quy tắc từ thông tin phức tạp.
Dữ liệu kinh tế vĩ mô rất phức tạp và thay đổi. Mỗi ngày, mọi lúc, có rất nhiều dữ liệu kinh tế được công bố, từ chính trị quốc gia, ngân hàng trung ương, ngân hàng đầu tư, chính thức và không chính thức. Ngoài cuộc khủng hoảng chính trị và kinh tế, phân tích vĩ mô là một tài liệu tốt để trò chuyện, nhưng không thực tế. Peter Lynch, một chuyên gia quản lý quỹ nổi tiếng ở Hoa Kỳ, đã từng nói:
Trong phân tích cơ bản, phân tích đa dạng chủ yếu là để phân tích phí bảo hiểm và chiết khấu, mối quan hệ cung và cầu, hàng tồn kho hàng hóa, lợi nhuận công nghiệp, v.v. Có thể nói rằng làm chủ phân tích yếu tố đa dạng của hợp đồng tương lai hàng hóa có thể đánh giá hầu hết xu hướng thị trường.
Như bạn bè đã làm hợp đồng tương lai biết, hợp đồng tương lai hàng hóa trong nước có thể đơn giản được chia thành sản phẩm công nghiệp và sản phẩm nông nghiệp. Các phương pháp phân tích của sản phẩm công nghiệp và sản phẩm nông nghiệp khác nhau. Chúng tôi sẽ giải thích chi tiết về hai khía cạnh của cung và nhu cầu. Trong sản phẩm công nghiệp, cung tương đối ổn định. Trừ khi có một bước đột phá công nghệ lớn, năng lực sản xuất không thể thay đổi đáng kể trong một khoảng thời gian ngắn. Do đó, yếu tố chính ảnh hưởng đến giá sản phẩm công nghiệp là nhu cầu. Nhu cầu sản phẩm nông nghiệp tương đối ổn định. Trong dài hạn, nhu cầu sản phẩm nông nghiệp thay đổi, nhưng trong ngắn hạn, nhu cầu sản phẩm nông nghiệp có xu hướng ổn định, vì vậy yếu tố chính ảnh hưởng đến giá sản phẩm nông nghiệp là nguồn cung.
Do đó, theo các định luật kinh tế, mối quan hệ giữa cung và nhu cầu quyết định giá hàng hóa cuối cùng. Về lý thuyết, miễn là có thể có được dữ liệu cung và nhu cầu, giá hàng hóa trong tương lai có thể được xác định. Đối với các sản phẩm công nghiệp, dữ liệu cung dễ dàng có được, nhưng khó có được dữ liệu nhu cầu. Đối với các sản phẩm nông nghiệp, dữ liệu nhu cầu dễ dàng có được và khó có được dữ liệu cung.
Trong thực tế, chúng ta có thể trừ đi thêm. Kết quả chung của cung và cầu trong thị trường kinh tế là hàng tồn kho. Chúng ta có thể đánh giá sức mạnh của mối quan hệ giữa cung và cầu thị trường thông qua dữ liệu hàng tồn kho. Nếu hàng tồn kho của một hàng hóa rất cao, điều đó có nghĩa là nguồn cung thị trường lớn hơn nhu cầu, và giá hàng hóa sẽ giảm trên tiền đề rằng các điều kiện bên ngoài vẫn không thay đổi. Nếu hàng tồn kho của một hàng hóa rất thấp, điều đó có nghĩa là nhu cầu thị trường lớn hơn nguồn cung, và giá hàng hóa sẽ tăng trên tiền đề rằng các điều kiện bên ngoài vẫn không thay đổi.
Ngoài việc phân tích hàng tồn kho hàng hóa, chúng ta cũng cần phân tích sự khác biệt giá giữa thị trường giao ngay và thị trường tương lai, còn được gọi là sự khác biệt cơ sở. Nếu giá tương lai lớn hơn giá giao ngay, chúng ta gọi đó là tiền thưởng tương lai; Nếu giá tương lai thấp hơn giá giao ngay, chúng ta gọi đó là giá giảm giá tương lai. Theo hệ thống giao hàng tương lai, vào ngày giao hàng tương lai, giá tương lai nên bằng giá giao ngay.
Bất kể phí bảo hiểm hoặc giảm giá, do những hạn chế của hệ thống giao hàng tương lai, giá tương lai vào ngày giao hàng nên bằng giá giao ngay theo lý thuyết. Khi ngày giao hàng đến gần, cả giá giao ngay và giá tương lai sẽ có xu hướng phù hợp. Một là sự trở lại của tương lai đến chỗ, và một là sự trở lại của điểm đến tương lai.
Theo nguyên tắc trên, chúng ta có thể sử dụng tồn kho và chênh lệch cơ sở để xác định giá tương lai cùng một lúc. Nếu tồn kho của một mặt hàng là thấp, và nếu giá tương lai thấp hơn nhiều so với giá giao ngay, chúng ta có thể đánh giá rằng nhu cầu của thị trường giao ngay lớn hơn nguồn cung, và xác suất giá giao ngay tăng trong tương lai là lớn; Cũng do hệ thống giao hàng tương lai, khi ngày giao hàng đến gần, giá tương lai sẽ tăng, và nó sẽ bằng với giá giao ngay.
Cuối cùng, chúng ta đánh giá hướng có thể của giá trong tương lai thông qua sự khác biệt tồn kho và cơ sở, nhưng không có điểm mua và bán chính xác, vì vậy chúng ta cần hợp tác với phân tích kỹ thuật để cung cấp một tín hiệu rõ ràng về bước vào và bước ra.
Khi nói đến các chiến lược giao dịch, chúng ta phải nói về các quy tắc giao dịch rùa đại diện. Quy tắc giao dịch rùa xuất phát từ thí nghiệm nổi tiếng nhất trong lịch sử giao dịch. Richard Dennis, một nhà đầu cơ hàng hóa, muốn biết liệu các nhà giao dịch vĩ đại có được sinh ra hay được đào tạo.
Trong bốn năm tiếp theo, những con rùa đạt được lợi nhuận trung bình hàng năm là 80%. Dennis đã chứng minh rằng với một hệ thống và quy tắc đơn giản, những người có ít hoặc không có kinh nghiệm giao dịch có thể trở thành những nhà giao dịch xuất sắc. Tuy nhiên, một số rùa bán các quy tắc giao dịch rùa trên trang web để kiếm lợi nhuận. Để ngăn chặn hành vi này, hai rùa ban đầu, Curtis Firth và Arthur Maddock, quyết định cung cấp các quy tắc giao dịch rùa cho công chúng miễn phí trên trang web.
Sau khi sự thật được tiết lộ, mọi người phát hiện ra rằng các quy tắc giao dịch Rùa đã áp dụng kênh Donchian tối ưu hóa và sử dụng các chỉ số ATR để quản lý vị trí.
Tiếp theo, chúng ta hãy xem quy tắc giao dịch của Turtle nói gì.
Do đó, chúng ta có thể thấy rằng mặc dù các quy tắc giao dịch Rùa trông rất đơn giản, trên thực tế nó đã hình thành một ý nghĩa thực sự của nguyên mẫu của hệ thống giao dịch. Nó bao gồm tất cả các khía cạnh của một hệ thống giao dịch hoàn chỉnh, không để lại chỗ cho các nhà giao dịch để đưa ra quyết định chủ quan tưởng tượng, mà chỉ làm cho những lợi thế của hoạt động lập trình của hệ thống chơi, bao gồm: quy tắc nhập và xuất, quản lý quỹ và kiểm soát rủi ro, vv
Lợi thế lớn nhất của phương pháp giao dịch rùa là giúp chúng ta thiết lập một tập hợp các phương pháp giao dịch hiệu quả. Nó là sự kết hợp của việc mở lô, dừng lợi nhuận động và dừng lỗ, và chiến lược theo xu hướng của thị trường, đặc biệt là việc sử dụng giá trị ATR và khái niệm quản lý vị trí, điều này rất đáng học. Tất nhiên, nó cũng có một vấn đề chung với chiến lược theo dõi xu hướng, tức là lợi nhuận nổi và lấy lại. Có khả năng tất cả lợi nhuận nổi thu được từ việc mua người chiến thắng sẽ bị loại bỏ do làn sóng giảm mạnh tiếp theo. Nó rất mạnh trong xu hướng chung, và không tốt như mong đợi trong thị trường biến động.
Vào cuối thế kỷ trước, một phương pháp giao dịch rất tuyệt vời bắt đầu chiếm ưu thế trong lĩnh vực đầu tư tài chính ở Hoa Kỳ. Sau khi hàng ngàn người thực hành, mọi người thấy rằng phương pháp này có hiệu quả và giá trị thực tế lớn. Đồng thời, nó đã được nhiều chuyên gia đầu tư và thương nhân chuyên nghiệp công nhận. Cho đến nay, nó có thể được áp dụng cho hầu hết các lĩnh vực đầu tư tài chính hoàn hảo, cho dù ngoại hối, vàng, cổ phiếu, tương lai, dầu thô hoặc chỉ số và trái phiếu, đó là phương pháp hoạt động hỗn loạn.
Từ hỗn loạn đề cập đến mô tả trạng thái hỗn loạn của vũ trụ ban đầu. Ý tưởng của nó là kết quả là không thể tránh khỏi, nhưng bởi vì kiến thức hiện có không thể tính toán kết quả, bởi vì tính toán chính nó cũng đang thay đổi kết quả, kết quả tối đa hoặc tối thiểu cuối cùng có thể xuất hiện, nhưng không có kết quả không thể tránh khỏi. Điều này rất giống với thị trường giao dịch. Những người tham gia cũng thay đổi thị trường khi họ phân tích thị trường và mua và bán. Thị trường có sự biến đổi vĩnh cửu. Khi những người tham gia hiểu hình thức mới của thị trường, thị trường cũng hiểu rằng nó được các người tham gia công nhận, vì vậy sự biến đổi xảy ra. Và nó sẽ có xu hướng thay đổi theo hướng không rõ của những người tham gia. Nó có đủ trí tuệ để ngăn chặn những người tham gia nắm bắt các quy tắc thay đổi của nó, nghĩa là thị trường không ổn định, và sự hiểu biết về quá khứ của thị trường không thể đại diện cho tương lai.
Phương pháp hoạt động hỗn loạn là một tập hợp đầy đủ các ý tưởng đầu tư, chiến lược giao dịch và tín hiệu vào và ra, được phát minh bởi Bill Williams. Hiện nay, nhiều nhà đầu tư trên thế giới áp dụng hoạt động hỗn loạn để tham gia giao dịch thị trường. Bởi vì sự phát triển của thị trường tài chính Trung Quốc tụt lại phía sau, và lý thuyết hỗn loạn cũng là một ý tưởng tương đối mới, có rất ít người nghiên cứu các phương pháp hoạt động hỗn loạn ở Trung Quốc.
Theo tên gọi, cơ sở lý thuyết của phương pháp hoạt động hỗn loạn là lý thuyết hỗn loạn, được đề xuất bởi nhà khí tượng học Edward Lorenz. Đây là một trong những khám phá khoa học vĩ đại nhất vào cuối thế kỷ 20. Ông đã đưa ra hiệu ứng bướm nổi tiếng. Bill Williams áp dụng lý thuyết hỗn loạn vào lĩnh vực đầu tư tài chính một cách sáng tạo, kết hợp với hình học fractal, động lực phi tuyến tính và các ngành khác, và tạo ra một loạt các chỉ số phân tích kỹ thuật rất hiệu quả.
Toàn bộ phương pháp hoạt động của Chaos bao gồm năm chiều lớn (định số kỹ thuật):
Con cá sấu
Chiếc Fractal
Động lực
Tốc độ tăng tốc
Đường cân bằng
Chúng ta hãy xem biểu đồ trên. Alligator là một tập hợp các đường cân bằng sử dụng hình học phân đoạn và động lực phi tuyến tính. Bản chất của nó là mở rộng đường trung bình động cân bằng theo hàm số nhân, đó là một loại đường trung bình, nhưng phương pháp tính toán của nó hơi phức tạp hơn so với đường trung bình thông thường. Tiếp theo, chúng ta hãy xem cách xác định Alligator trong MyLanguage:
// Parameters
N1:=11;
N2:=21;
// Defining the price median
N3:=N1+N2;
N4:=N2+N3;
HL:=(H+L)/2;
// Alligator
Y^^SMA(REF(HL,N3),N4,1);
R:=SMA(REF(HL,N2),N3,1);
G:=SMA(REF(HL,N1),N2,1);
Đầu tiên, chúng ta xác định 2 thông số bên ngoài N1 và N2, và sau đó tính trung bình HL của giá cao nhất và giá thấp nhất theo các thông số bên ngoài, và sau đó tính trung bình HL với các thông số khác nhau. Đối với răng, đó là trung bình của khoảng giữa của đường trung, và hàm là trung bình của khoảng lớn của đường trung. Trong chiến lược này, chúng ta sử dụng hàm.
Trong phương pháp hoạt động hỗn loạn, một khái niệm fractal được định nghĩa rõ ràng. Chúng ta có thể làm một sự tương đồng: mở lòng bàn tay, với ngón tay hướng lên, ngón tay giữa là fractal trên, ngón tay nhỏ bên trái và ngón nhẫn, và ngón tay trỏ bên phải và ngón tay cái, tương ứng, đại diện cho đường K không có kỷ lục cao. Một fractal cơ bản bao gồm năm đường K này. Sau đó bạn có thể định nghĩa fractal với mã sau:
// Fractal
TOP_N:=BARSLAST(REF(H,2)=HHV(H,5))+2;
BOTTOM_N:=BARSLAST(REF(L,2)=LLV(L,5))+2;
TOP:=REF(H,TOP_N);
BOTTOM:=REF(L,BOTTOM_N);
MAX_YRG^^MAX(MAX(Y,R),G);
MIN_YRG^^MIN(MIN(Y,R),G);
TOP_FRACTAL^^VALUEWHEN(H>=MAX_YRG,TOP);
BOTTOM_FRACTAL^^VALUEWHEN(L<=MIN_YRG,BOTTOM);
Sau khi tính toán con cá sấu và fractal, chúng ta có thể viết một chiến lược hoạt động hỗn loạn đơn giản dựa trên hai điều kiện này và sử dụng một nhóm các đường trung bình động được cân nhắc theo hàm số nhân như giá chuẩn để tính toán chỉ số cá sấu và fractal. Tất nhiên, chiến lược hoạt động hỗn loạn ban đầu sẽ phức tạp hơn. Mã là như sau:
// If there are no current long position orders and the closing price rises above the upper fractal and the upper fractal is above the alligator, open a long position.
BKVOL=0 AND C>=TOP_FRACTAL AND TOP_FRACTAL>MAX_YRG,BPK(1);
// If there are no current short position orders and the closing price falls below the lower fractal and the lower fractal is below the alligator, open a short position.
SKVOL=0 AND C<=BOTTOM_FRACTAL AND BOTTOM_FRACTAL<MIN_YRG,SPK(1);
// Long positions are closed if the closing price falls below the jaws of the alligator.
C<Y,SP(BKVOL);
// Short positions are closed if the closing price rises above the jaws of the alligator.
C>Y,BP(SKVOL);
Để dễ hiểu, tôi đã viết các bình luận chi tiết trực tiếp vào mã.
Tiếp theo, hãy xem kết quả của backtest chiến lược hoạt động hỗn loạn đơn giản này thực sự trông như thế nào. Để làm cho backtest gần gũi hơn với môi trường thị trường thực tế, hoa hồng được đặt lên gấp đôi tỷ giá hối đoái, và các vị trí mở và đóng đều phải chịu điểm trượt mỗi lần nhảy hai lần. Loại dữ liệu backtest là chỉ số rebar, và loại giao dịch là lực chính rebar liên tục, với vị trí mở cố định 1 lô. Dưới đây là báo cáo hiệu suất backtest sơ bộ ở mức 1 giờ.
Từ đường cong vốn và dữ liệu hiệu suất backtest, chiến lược hoạt động tốt và đường cong vốn tổng thể đều tăng dần. Tuy nhiên, kể từ cuối năm 2016, đặc điểm thị trường của các loại thép đã thay đổi, từ xu hướng biến động cao một bên sang xu hướng biến động rộng. Từ góc độ đường cong vốn, lợi nhuận từ năm 2017 đến nay rõ ràng là yếu.
Nói tóm lại, bản chất của phương pháp hoạt động hỗn loạn là tìm một bước ngoặt, không quan tâm đến việc thị trường sẽ diễn ra như thế nào hoặc liệu nó là sự đột phá đúng hay sai. Nếu nó phá vỡ phân đoạn, nó sẽ đi vào thị trường trực tiếp. Đừng bao giờ cố gắng dự đoán thị trường, nhưng hãy là một người quan sát và theo dõi.
George Soros đã đưa ra một đề xuất quan trọng trong
Theo các nguyên tắc trên, chúng ta có thể biết rằng trong một thị trường tương lai không hiệu quả, lý do tại sao tác động của thị trường đối với các hợp đồng giao hàng trong các giai đoạn khác nhau không phải lúc nào cũng đồng bộ, và giá cả không hoàn toàn hiệu quả. sau đó, dựa trên giá hợp đồng giao hàng của cùng một đối tượng giao dịch trong các giai đoạn khác nhau, nếu có sự khác biệt giá lớn giữa hai giá, chúng ta có thể mua và bán hợp đồng tương lai trong các giai đoạn khác nhau cùng một lúc để điều chỉnh chéo giai đoạn.
Giống như hợp đồng tương lai hàng hóa, đồng tiền kỹ thuật số cũng có danh mục hợp đồng trọng tài chéo thời gian. Ví dụ, trong sàn giao dịch OKEX, có: ETC tuần hiện tại, ETC tuần tới, quý ETC. Ví dụ, giả sử rằng sự khác biệt giá giữa tuần hiện tại của ETC và quý ETC vẫn ở khoảng 5 trong một thời gian dài. Nếu sự khác biệt giá đạt 7 một ngày, chúng ta mong đợi rằng sự khác biệt giá sẽ trở lại 5 trong tương lai. Sau đó chúng ta có thể bán ETC trong tuần đó và mua quý ETC cùng một lúc để giảm chênh lệch giá, và ngược lại.
Mặc dù sự khác biệt giá này tồn tại, nhưng có nhiều sự không chắc chắn trong việc điều chỉnh thủ công do các hoạt động thủ công tốn thời gian, độ chính xác kém và tác động của sự thay đổi giá. Sự quyến rũ của điều chỉnh định lượng nằm trong việc nắm bắt các cơ hội điều chỉnh thông qua các mô hình định lượng và xây dựng các chiến lược giao dịch điều chỉnh, cũng như đặt lệnh giao dịch tự động vào sàn giao dịch thông qua các thuật toán được lập trình, để nắm bắt các cơ hội nhanh chóng và chính xác và kiếm lợi nhuận hiệu quả và ổn định.
Khóa học này sẽ dạy bạn cách sử dụng nền tảng giao dịch FMZ Quant và hợp đồng tương lai ETC trong sàn giao dịch OKEX để chứng minh cách nắm bắt các cơ hội điều chỉnh ngay lập tức, nắm bắt lợi nhuận có thể nhìn thấy mọi lúc và phòng ngừa rủi ro có thể gặp phải trong giao dịch tiền kỹ thuật số với một chiến lược điều chỉnh đơn giản.
Tạo ra một chiến lược điều chỉnh chéo giai đoạn cho tiền kỹ thuật sốKhó khăn: bình thường
Môi trường chiến lược
Chiến lược logic
Điều trên là một mô tả logic đơn giản về chiến lược điều khoản giao dịch xuyên giai đoạn của tiền kỹ thuật số.
function Data() {} // Basic data function
Data.prototype.mp = function () {} // Position function
Data.prototype.boll = function () {} // Indicator function
Data.prototype.trade = function () {} // Order placement function
Data.prototype.cancelOrders = function () {} // Order withdrawal function
Data.prototype.isEven = function () {} // Processing single contract function
Data.prototype.drawingChart = function () {} // Drawing function
function onTick() {
var data = new Data(tradeTypeA, tradeTypeB); // Create a basic data object
var accountStocks = data.accountData.Stocks; // Account balance
var boll = data.boll(dataLength, timeCycle); // Calculate the technical indicators of boll
data.trade(); // Calculate trading conditions to place an order
data.cancelOrders(); // Cancel orders
data.drawingChart(boll); // Drawing
data.isEven(); // Processing of holding individual contract
}
//Entry function
function main() {
while (true) { // Enter the polling mode
onTick(); // Execute onTick function
Sleep(500); // Sleep for 0.5 seconds
}
}
Hãy tưởng tượng quá trình giao dịch của chúng ta như thế nào trong giao dịch giám sát. Không có sự khác biệt thiết yếu trong giao dịch hệ thống. Nó không gì khác ngoài việc thu thập dữ liệu, tính toán dữ liệu, đặt giao dịch lệnh và xử lý sau khi đặt lệnh. Điều tương tự cũng đúng trong chương trình. Đầu tiên, chương trình sẽ thực hiện chức năng chính ở dòng 20, đó là một quy ước. Khi chương trình hoàn thành quá trình xử lý trước chiến lược giao dịch (nếu có), nó sẽ vào chế độ vòng vô hạn, tức là chế độ thăm dò. Trong chế độ thăm dò, chức năng onTick sẽ được thực hiện nhiều lần.
Sau đó trong chức năng onTick, đó là quá trình giao dịch của chúng tôi trong giao dịch chủ quan: đầu tiên, lấy dữ liệu giá cơ bản, sau đó lấy số dư tài khoản, sau đó tính chỉ số, sau đó tính các điều kiện giao dịch và đặt lệnh, và cuối cùng là xử lý sau khi đặt lệnh, bao gồm hủy lệnh, rút và xử lý một hợp đồng duy nhất.
Khung chiến lược có thể dễ dàng được thiết lập theo ý tưởng chiến lược và quá trình giao dịch.
Tiếp theo, chúng ta cần phải điền mã chi tiết cần thiết trong khung chiến lược theo quy trình giao dịch thực tế và chi tiết giao dịch.
var chart = {}
var ObjChart = Chart ( chart )
var bars = []
var oldTime = 0
var tradeTypeA = "this_week"; // Arbitrage A Contract
var tradeTypeB = "quarter"; // Arbitrage B Contract
var dataLength = 10; // Indicator period length
var timeCycle = 1; // K-line period
var name = "ETC"; // Currencies
var unit = 1; // Order quantity
function Data(tradeTypeA, tradeTypeB) { // Pass in arbitrage A contract and arbitrage B contract
this.accountData = _C(exchange.GetAccount); // Get account information
this.positionData = _C(exchange.GetPosition); // Get position information
var recordsData = _C(exchange.GetRecords); // Get K-line data
exchange.SetContractType(tradeTypeA); // Subscription arbitrage A contract
var depthDataA = _C(exchange.GetDepth); // Depth data of arbitrage A contract
exchange.SetContractType(tradeTypeB); // Subscription arbitrage B contract
var depthDataB = _C(exchange.GetDepth); // Depth data of arbitrage B contract
this.time = recordsData[recordsData.length - 1].Time; // Time of obtaining the latest data
this.askA = depthDataA.Asks[0].Price; // Sell one price of Arbitrage A contract
this.bidA = depthDataA.Bids[0].Price; // Buy one price of Arbitrage A contract
this.askB = depthDataB.Asks[0].Price; // Sell one price of Arbitrage B contract
this.bidB = depthDataB.Bids[0].Price; // Buy one price of Arbitrage B contract
// Positive arbitrage price differences (Sell one price of contract A - Buy one price of contract B)
this.basb = depthDataA.Asks[0].Price - depthDataB.Bids[0].Price;
// Negative arbitrage price differences (Buy one price of contract A - Sell one price of contract B)
this.sabb = depthDataA.Bids[0].Price - depthDataB.Asks[0].Price;
}
Data.prototype.mp = function (tradeType, type) {
var positionData = this.positionData; // Get position information
for (var i = 0; i < positionData.length; i++) {
if (positionData[i].ContractType == tradeType) {
if (positionData[i].Type == type) {
if (positionData[i].Amount > 0) {
return positionData[i].Amount;
}
}
}
}
return false;
}
Data.prototype.boll = function (num, timeCycle) {
var self = {}; // Temporary objects
// Median value of positive arbitrage price difference and negative arbitrage price difference
self.Close = (this.basb + this.sabb) / 2;
if (this.timeA == this.timeB) {
self.Time = this.time;
} // Compare two depth data timestamps
if (this.time - oldTime > timeCycle * 60000) {
bars.push(self);
oldTime = this.time;
} // Pass in the price difference data object into the K-line array according to the specified time period
if (bars.length > num * 2) {
bars.shift(); // Control the length of the K-line array
} else {
return;
}
var boll = TA.BOLL(bars, num, 2); // Call the boll indicator in the talib library
return {
up: boll[0][boll[0].length - 1], // boll indicator upper track
middle: boll[1][boll[1].length - 1], // boll indicator middle track
down: boll[2][boll[2].length - 1] // boll indicator down track
} // Return a processed boll indicator data
}
Data.prototype.trade = function (tradeType, type) {
exchange.SetContractType(tradeType); // Resubscribe to a contract before placing an order
var askPrice, bidPrice;
if (tradeType == tradeTypeA) { // If the order is placed in contract A
askPrice = this.askA; // set askPrice
bidPrice = this.bidA; // set bidPrice
} else if (tradeType == tradeTypeB) { // If the order is placed in contract B
askPrice = this.askB; // set askPrice
bidPrice = this.bidB; // set bidPrice
}
switch (type) { // Match order placement mode
case "buy":
exchange.SetDirection(type); // Set order placement mode
return exchange.Buy(askPrice, unit);
case "sell":
exchange.SetDirection(type); // Set order placement mode
return exchange.Sell(bidPrice, unit);
case "closebuy":
exchange.SetDirection(type); // Set order placement mode
return exchange.Sell(bidPrice, unit);
case "closesell":
exchange.SetDirection(type); // Set order placement mode
return exchange.Buy(askPrice, unit);
default:
return false;
}
}
Data.prototype.cancelOrders = function () {
Sleep(500); // Delay before cancellation, because some exchanges, you know what I mean
var orders = _C(exchange.GetOrders); // Get an array of unfilled orders
if (orders.length > 0) { // If there are unfilled orders
for (var i = 0; i < orders.length; i++) { // Iterate through the array of unfilled orders
exchange.CancelOrder(orders[i].Id); // Cancel unfilled orders one by one
Sleep(500); // Delay 0.5 seconds
}
return false; // Return false if an unfilled order is cancelled
}
return true; // Return true if there are no unfilled orders
}
Data.prototype.isEven = function () {
var positionData = this.positionData; // Get position information
var type = null; // Switch position direction
// If the remaining 2 of the position array length is not equal to 0 or the position array length is not equal to 2
if (positionData.length % 2 != 0 || positionData.length != 2) {
for (var i = 0; i < positionData.length; i++) { // Iterate through the position array
if (positionData[i].Type == 0) { // If it is a long order
type = 10; // Set order parameters
} else if (positionData[i].Type == 1) { // If it is a short order
type = -10; // Set order parameters
}
// Close all positions
this.trade(positionData[i].ContractType, type, positionData[i].Amount);
}
}
}
Data.prototype.drawingChart = function (boll) {
var nowTime = new Date().getTime();
ObjChart.add([0, [nowTime, boll.up]]);
ObjChart.add([1, [nowTime, boll.middle]]);
ObjChart.add([2, [nowTime, boll.down]]);
ObjChart.add([3