Bài viết trước, Thông tin cốt lõi - Chi tiết và suy nghĩ về việc cung cấp thực tế tự động của hệ thống giao dịch định lượng (I. Vấn đề và khó khăn), đã nói về một số vấn đề cơ bản của giao dịch thực trong vòng tròn tiền tệ. Bài viết này nói về mục đích chính của lời đề nghị của công ty.
Tôi nghĩ có bốn cái chính:
1. Thực hiện tính logic đã được thiết lập của chiến lược
Không còn nghi ngờ gì nữa. Khi có tín hiệu phải thực hiện các thao tác tương ứng, mở, đóng vị trí. Điểm này yêu cầu bạn cố gắng không sử dụng các lệnh giới hạn, nếu không, nếu giao dịch không thể hoàn thành, bạn sẽ phải theo đuổi lệnh đó. Cuối cùng, có nên theo đuổi lệnh đó hay không. câu hỏi.
Về lâu dài, sự trượt giá do sử dụng lệnh thị trường gần giống với sự trượt giá do thỉnh thoảng thiếu lệnh giới hạn nhưng lại đuổi theo lệnh, vì vậy tốt hơn là bạn nên trực tiếp tham gia và thoát khỏi thị trường, trừ khi chiến lược của bạn rất đặc biệt.
Ngoài ra, nếu bạn sử dụng lệnh giới hạn, mã của bạn sẽ phức tạp hơn vì bạn phải quản lý các lệnh giới hạn chưa được thực hiện và sau đó đuổi theo các lệnh. Và nếu chỉ một phần của lệnh giới hạn được thực hiện thì sao? Các lệnh giới hạn còn lại có luôn bị treo không? Hay tôi nên bỏ lỡ phần đó và phát hành một lệnh thị trường khác? Kiểu thao tác một bước này tạo ra nhiều lệnh giao dịch và việc xem xét sau đó cũng rắc rối và dễ nhầm lẫn. Vì vậy, tốt hơn là chỉ sử dụng lệnh thị trường. Chỉ cần việc gửi thành công, giao dịch về cơ bản sẽ được đảm bảo. Nếu đó thực sự là một chiến lược nhạy cảm với trượt giá thì chỉ giao dịch ở các mục tiêu có tính thanh khoản tốt.
Ngoài ra, đối với các hợp đồng, đòn bẩy không nên thay đổi theo ý muốn. Tốt nhất nên sử dụng đòn bẩy lý tưởng để kiểm tra lại và sau đó chiết khấu 20%. Đừng dự đoán thị trường một cách chủ quan và điều chỉnh đòn bẩy một cách thủ công. Thay đổi vị trí cũng là một điều cấm kỵ trong giao dịch tự động.
Tốt nhất là tự động thắng hoặc thua và giảm vị thế. Khi mức thoái lui đạt đến một mức nhất định thì nên giảm đòn bẩy. Đừng làm ngược lại, nghĩ rằng sắp có gió và tăng đòn bẩy. gốc và giảm đòn bẩy). Điều quan trọng nhất là giữ cho tài khoản của bạn tồn tại, vì vậy trước tiên hãy bất bại. Bạn có thể đợi đường vốn vượt qua giai đoạn thoái lui trước khi thêm đòn bẩy trở lại. Tuy nhiên, nếu sử dụng mô hình lãi suất kép thì đó đã là một hợp đồng thắng thua tự động đơn giản.
2. Giảm thiểu tình trạng trượt dốc
Điều này đã được đề cập trong bài viết trước. Sự trượt giá không thể được loại bỏ, nó chỉ có thể được giảm thiểu. Điều này đòi hỏi bạn phải có được thông tin về giá thị trường càng sớm càng tốt, cũng như các loại tiền và thông tin vị trí khác nhau trong tài khoản trao đổi, để bạn có thể phản hồi nhanh chóng.
Xét về cấu trúc tổng thể của ưu đãi thực tế, có nhiều chiến lược phụ và nó đòi hỏi phải thu thập kịp thời nhiều thông tin khác nhau. Do đó, cần có một trung tâm thị trường websocket chuyên dụng để chia sẻ các nhiệm vụ. Được trang bị trung tâm thị trường Plan B của Restful để dự phòng. Bằng cách này, nếu websocket bị ngắt kết nối và không thể kết nối, vẫn sẽ có một mức giá tương đối mới để đánh giá xem có cần thiết phải rời khỏi thị trường hay không. Khi chạy phải nhanh. Thà chạy sai hướng còn hơn bị kẹt xe mà không biết tương lai sẽ ra sao.
3. Hoạt động lâu dài
Điều này đã được đề cập trong bài viết trước. Vòng tròn tiền tệ chạy 7*24 và mã của bạn không thể tắt được. Điều này yêu cầu mã sẽ không bị gián đoạn bởi nhiều ngoại lệ khác nhau được đưa ra và phải có mã để xử lý các tình huống không mong muốn khác nhau. Cũng không được có lỗi như rò rỉ bộ nhớ, nếu không chương trình sẽ bị lỗi theo thời gian và thậm chí toàn bộ máy chủ sẽ bị ngừng hoạt động. May mắn thay, Python không dễ gặp phải những vấn đề như vậy. Nó có cơ chế tái chế bộ nhớ tự động. Nếu nó không hoạt động, bạn có thể khởi động lại chương trình giao dịch theo cách thủ công mỗi ngày hoặc vài ngày. Dù sao, đó là giao dịch tần suất trung bình và thấp. Đây là những yêu cầu phát triển mã back-end cơ bản và dễ dàng đạt được.
Nói chung, giao dịch định lượng sử dụng Python. Một tính năng chính của Python, một ngôn ngữ kịch bản, là biên dịch động, có hiệu suất chạy thấp hơn một chút vì không dễ gỡ lỗi vì nó được biên dịch và thực thi cùng một lúc (nhưng nó sẽ không ảnh hưởng đến các giao dịch tần số trung bình và thấp tại tất cả). Nếu có vấn đề tiềm ẩn trong logic của mã, nó có thể không dễ phát hiện. Ví dụ: nếu có 100 dòng mã và có vấn đề ở dòng 99 nhưng mỗi lần nó chỉ chạy đến dòng 95 thì vấn đề sẽ không được phát hiện vì lỗi phải được tìm thấy sau khi chạy đến dòng 99 và kích hoạt lệnh mã có liên quan. Nhưng điều này có thể đã quá muộn và chương trình sẽ gặp sự cố trực tiếp nếu bạn không thử bắt ngoại lệ.
Một tính năng khác thực sự được bao gồm trong vấn đề nêu trên. Bởi vì Python được gõ mạnh nên rất hiếm khi xảy ra chuyển đổi ngầm định. Nếu bạn quá tin tưởng vào kiểu dữ liệu được máy chủ gửi đến, đặc biệt là những con số đó, bạn rất có thể sẽ bị thiệt hại, vì đôi khi những con số đó sẽ trở thành chuỗi. Các loại tiền tệ khác nhau trong sàn giao dịch, các phiên bản API khác nhau và cùng một dữ liệu trả về từ websocket và phần còn lại có thể thuộc các loại khác nhau. Vì vậy, về nguyên tắc, bạn phải ép buộc chuyển đổi mỗi lần, hoặc trước tiên hãy xác định xem có cần thiết phải chuyển đổi hay không.
Ngoài ra, không trộn lẫn các vị thế mở và đóng giữa các chiến lược khác nhau, đặc biệt là các chiến lược có cùng loại tiền tệ và hãy thực hiện tốt việc cô lập chúng. Nếu không, trong một số điều kiện thị trường khắc nghiệt, chiến lược A sẽ đóng vị thế của chiến lược B, điều này cuối cùng sẽ dẫn đến sai lệch. Bạn có thể phải dừng lời đề nghị thực sự và bắt đầu lại, điều này sẽ không mạch lạc và bạn có thể bỏ lỡ các xu hướng chính của thị trường.
Nói một cách dễ hiểu, mọi thứ đều dành cho hoạt động lâu dài hoàn toàn tự động và không cần can thiệp của giao dịch thực.
Tuy nhiên, nếu chiến lược quá phức tạp thì có thể không dễ đạt được cách tiếp cận hoàn toàn không cần can thiệp. Đơn giản hóa chiến lược cũng là điểm khởi đầu, đừng làm nó quá phức tạp. Ví dụ: các tín hiệu như OBV nên được sử dụng một cách tiết kiệm, vì OBV cần theo dõi thông tin về giá và khối lượng dài hạn, còn giao dịch thực tế cần duy trì quá nhiều dữ liệu. Mỗi lần gián đoạn và khởi động lại đều là một vấn đề rắc rối. Phương án cuối cùng là tránh những yếu tố như vậy.
4. Kiểm soát rủi ro
Đây là ưu tiên hàng đầu trong các yêu cầu chào hàng của công ty.
Điều nguy hiểm nhất là không thể đóng một vị thế. Thị trường đi theo hướng ngược lại và tiếp tục hỗn loạn. Kết quả là mã thoát của bạn nằm ngoài tầm kiểm soát. Dù lý do là gì, vị thế vẫn bị đóng với mức thua lỗ. Trong vòng tròn tiền tệ, altcoin có thể tăng giá nhiều lần trong một khoảng thời gian ngắn. Do đó, trong trường hợp bán khống, ngay cả khi bạn không sử dụng đòn bẩy và vẫn có một nửa vị trí, nghĩ rằng bạn không có gì phải lo lắng, vị trí đó có thể đã bị xóa sổ vào buổi sáng.
Vì vậy, cần đảm bảo cơ chế thoát ra phải có hiệu lực. Nếu bạn bỏ lỡ cơ hội để mở một vị trí, ít nhất nó sẽ không gây tử vong. Nếu bạn bỏ lỡ cơ hội, thì đó là điều đáng tiếc nhất, nhưng nếu bạn bỏ lỡ cơ hội để đóng vị trí, nó sẽ gây ra vấn đề lớn.
Dưới đây là hai giải pháp ngắn gọn và tôi sẽ nói chi tiết về chúng sau khi có thời gian.
Điểm đầu tiên là tốt nhất nên có một mức dừng lỗ cứng, tương tự như mức dừng lỗ theo tỷ lệ cố định. Ví dụ: nếu một loại tiền lớn mất hơn 10% và một loại tiền nhỏ mất 15%, vị thế sẽ bị đóng ngay lập tức và bỏ chạy.
Đối với phương pháp dừng lỗ cố định, giá dừng lỗ phải được đặt tại thời điểm mở vị thế. Do đó, lệnh dừng lỗ thuật toán (một số còn gọi là lệnh có điều kiện) phải được gửi càng sớm càng tốt sau khi mở một vị thế và không cần phải thay đổi giá giữa chừng. Bằng cách này, sàn giao dịch sẽ giúp bạn theo dõi giá theo thời gian thực và sau đó giúp bạn gửi lệnh thị trường để thoát khỏi thị trường sau khi lệnh được kích hoạt. Có thể có nhiều sai sót trong cách tiếp cận này, nhưng nó có nhiều khả năng ổn định và đáng tin cậy hơn mức dừng lỗ do bạn tự đặt ra. Và ngay cả khi có sự cố xảy ra và nó không được kích hoạt, bạn vẫn có thể đến sàn giao dịch. đòi quyền lợi (vì vậy bạn phải lên sàn giao dịch hàng đầu).
Tất nhiên, loại dừng lỗ này được sử dụng để che đáy và hiếm khi được kích hoạt. Tốt nhất là bạn nên kiểm soát thời điểm thoát theo chiến lược của riêng mình để mức thoái lui có thể nhỏ hơn.
Điểm thứ hai là chương trình sẽ không mở các vị thế một cách ngẫu nhiên. Đừng mở các vị thế liên tục nhưng nghĩ rằng không phải như vậy, và cuối cùng sẽ mở ra một giao dịch lớn. Sẽ không sao nếu giá không biến động trong một khoảng thời gian ngắn. Bạn có thể can thiệp thủ công để điều chỉnh. Nếu giá đột ngột đảo chiều, vị thế của bạn có thể bị thanh lý. Điều này tùy thuộc vào số lượng vị thế bạn đã mở. Tất nhiên đây là lỗi ở mức độ thấp nhưng vẫn xảy ra. Đặc biệt sau khi lặp đi lặp lại và nâng cấp code giữa chừng, có thể sẽ không được cân nhắc kỹ lưỡng.
Trong trường hợp này, trước tiên bạn cần phải giảm tốc độ mở một vị trí và bạn phải đợi kết quả mở vị trí quay trở lại. Ngoài ra, bạn phải kiểm tra và xác nhận thông tin tài khoản tại thời điểm đó trước khi mở vị thế. Tất nhiên, bạn cũng có thể ghi lại mọi hoạt động cục bộ, điều này sẽ tiết kiệm được số lượng yêu cầu API và thời gian truy vấn của chính sàn giao dịch. Tình trạng tài khoản.
Ngoài ra, hiệu quả hơn, có thể giới hạn trước mức đòn bẩy tối đa của một sàn giao dịch. Điều này có thể được điều chỉnh bởi chính bạn. Binance mặc định là 20 lần, nhưng bạn có thể thay đổi thành 3 lần hoặc thậm chí 2 lần (tất nhiên, điều này yêu cầu bản thân chiến lược của bạn không sử dụng đòn bẩy cao, nếu không bạn sẽ không thể mở đòn bẩy cao khi cần thiết). Vì vậy, dù mã có điên rồ đến đâu thì cũng không thể tạo ra mức độ phơi sáng lớn khi bạn đang ngủ. Điều này an toàn hơn.
Tóm lại, đôi khi ưu đãi thực sự không chỉ là mã giao dịch mà còn cần bố trí các tuyến phòng thủ khác để tránh bị các sự kiện thiên nga đen xâm nhập. Đừng bao giờ xem nhẹ nó bất cứ lúc nào và cố gắng bịt kín những điểm mù.