Giao dịch thuật toán bằng python ấn độ

Cho đến tương đối gần đây, nếu bạn không làm việc tại một trong những tổ chức đầu tư tài chính lớn, thì bạn không có quyền truy cập vào giao dịch thuật toán

Tuy nhiên, internet và sự gia tăng đi kèm của các công ty FinTech đột phá và tài chính phi tập trung [DeFi] đã cách mạng hóa hoạt động đầu tư cá nhân bằng cách mang các công cụ đầu tư cấp chuyên nghiệp từng là lĩnh vực độc quyền từ Phố Wall sang Phố Chính. Giờ đây, bất kỳ ai có kiến ​​thức về Python và kết nối internet đều có thể thiết kế và triển khai các thuật toán giao dịch phức tạp.

Trong bài viết này, chúng ta sẽ khám phá thế giới thú vị của giao dịch thuật toán với Python và tìm hiểu cách Trình chỉnh sửa bot mã Python tiên tiến nhất của Trality có thể giúp bạn tạo, kiểm tra lại, tối ưu hóa và triển khai các thuật toán cho giao dịch trực tiếp, cho dù bạn là ai. Bạn có phải là nhà giao dịch muốn tìm hiểu thêm về Python hay một lập trình viên Python quan tâm đến việc áp dụng các kỹ năng của mình vào giao dịch tiền điện tử không?

Bạn đang tìm cách tạo thuật toán giao dịch của riêng mình bằng Python?

Hãy xem Trình chỉnh sửa mã bot Python của Trality — một công cụ dựa trên trình duyệt mạnh mẽ được thiết kế cho các nhà giao dịch muốn xây dựng, kiểm tra lại, tối ưu hóa và giao dịch trực tiếp với các bot giao dịch theo thuật toán. Chúng tôi cung cấp mức độ linh hoạt và tinh vi cao nhất có sẵn trong giao dịch tư nhân. Trên thực tế, đó là cốt lõi của những gì chúng tôi làm tại Trality

Tại sao nên sử dụng Python làm ngôn ngữ lập trình?

Hãy bắt đầu với câu hỏi rõ ràng. Tại sao lại sử dụng Python? . Nếu bạn quan tâm đến một ngôn ngữ lập trình được sử dụng rộng rãi ngày nay, thì Python sẽ là lựa chọn hàng đầu của bạn, ngoại trừ C/C++ rõ ràng nếu bạn đang làm việc với các hệ thống nhúng. Dưới đây là một số lý do tại sao nó đã trở nên phổ biến

Python thân thiện với người mới bắt đầu

Dù là ngôn ngữ máy tính hay ngoại ngữ, học bất kỳ ngôn ngữ mới nào cũng khó, nhưng Python thì khác. Nó tương đối dễ học và dễ sử dụng, làm cho nó trở nên thân thiện với cả người mới bắt đầu và người dùng do đường cong học tập nông của nó. Đó là cú pháp đơn giản, không phức tạp có nghĩa là nó gần với ngôn ngữ tự nhiên hơn, giúp viết và thực thi nhanh hơn nhiều so với các lựa chọn thay thế. Và tính dễ bảo trì của nó có nghĩa là bạn không lãng phí thời gian để tìm hiểu các tài liệu không cần thiết

Được Guido van Rossum hình thành vào những năm 1980 và xuất hiện lần đầu tiên vào năm 1991, Python được hưởng lợi từ việc tồn tại hơn ba thập kỷ sử dụng và các ứng dụng trong thế giới thực. Kể từ khi thành lập, nó đã tiếp tục tích lũy được một cộng đồng lập trình viên hiểu biết và hữu ích cùng với sự hỗ trợ và tài liệu đáng kinh ngạc

Python và hỗ trợ doanh nghiệp

Dù bạn đảm nhận các tập đoàn như thế nào, sự chứng thực của họ có thể trả cổ tức. Facebook, Amazon và Google phụ thuộc rất nhiều vào Python, trong khi các công ty từ Instagram và Spotify đến Wikipedia và thậm chí Reddit đã áp dụng nó ở các mức độ khác nhau. Trên thực tế, Google lần đầu tiên bắt đầu sử dụng nó vào năm 2006

Python và nghiên cứu nâng cao

Ngoài lĩnh vực công ty, CERN và NASA đều sử dụng Python. Chỉ cần nghĩ về sự linh hoạt mà Python có được khi được sử dụng để hợp lý hóa thiết kế sứ mệnh tàu con thoi. Nếu nó có thể được sử dụng một cách nhanh chóng, hiệu quả và chính xác để gửi các vật thể kim loại lớn, nặng vào không gian [và ngược lại], thì chắc chắn đó là thách thức trong việc tạo ra một hệ thống giao dịch thuật toán có lợi nhuận

Tại sao nên sử dụng Python để giao dịch theo thuật toán?

Một trong những điều đặc biệt thuận tiện về Python là mức độ giúp viết và đánh giá các cấu trúc giao dịch theo thuật toán dễ dàng hơn nhờ phương pháp lập trình chức năng của nó. In fact, relative ease and simplicity of use are some of Python’s main selling points for traders interested in coding their first or next crypto trading bot

Dưới đây là một vài lý do tại sao Python là lựa chọn hoàn hảo cho giao dịch thuật toán

Python có thể đọc và truy cập được

Đối với những người mới sử dụng giao dịch thuật toán, mã Python có thể đọc và truy cập được. Không giống như các ngôn ngữ viết mã khác, đơn giản là có ít ngôn ngữ hơn, điều đó có nghĩa là giao dịch bằng Python yêu cầu ít dòng mã hơn do có sẵn nhiều thư viện

Python phổ biến

Rất có thể các nền tảng thuật toán và công cụ giao dịch đã có trên radar của bạn đang sử dụng Python. Văn hóa giao dịch theo thuật toán được thực hiện bằng ngôn ngữ Python, giúp bạn dễ dàng cộng tác, giao dịch mã hoặc nguồn cộng đồng để được hỗ trợ

Python, song song hóa và sức mạnh

Song song hóa và sức mạnh tính toán to lớn của Python kết thúc danh mục đầu tư của bạn với khả năng mở rộng. So với các ngôn ngữ khác, việc sửa các mô-đun mới thành Python dễ dàng hơn và mở rộng nó. Và do các mô-đun hiện có, các nhà giao dịch dễ dàng chia sẻ chức năng giữa các chương trình khác nhau hơn

Python và gỡ lỗi

Python là một ngôn ngữ “thông dịch”. Trình thông dịch thực thi các câu lệnh mã “từng cái một”, không giống như trình biên dịch thực thi toàn bộ mã, liệt kê tất cả các lỗi có thể xảy ra cùng một lúc. Gỡ lỗi trong Python là toàn diện và kỹ lưỡng, vì nó cho phép thay đổi trực tiếp mã và dữ liệu, tăng tốc độ thực thi do các lỗi đơn lẻ [chứ không phải nhiều lỗi] xuất hiện và có thể được xóa

Python yêu cầu ít dòng mã hơn

Các thư viện hỗ trợ toàn diện, phong phú của Python có nghĩa là hầu hết các tác vụ lập trình được sử dụng nhiều đều đã được viết sẵn trong đó, hạn chế [các] độ dài của [các] mã được viết. Quan trọng hơn, Python hoạt động ngay lập tức, điều mà nhiều lập trình viên gán cho sự kết hợp của kiểu gõ động, cú pháp giống như mã giả và trình thông dịch Python

Thư viện Python phổ biến cho giao dịch thuật toán

Python không chỉ là mã nguồn mở, miễn phí, dễ học và dễ sử dụng, mà nó còn có một bộ sưu tập thư viện nổi bật cho hầu hết mọi tác vụ liên quan đến giao dịch thuật toán [và giao dịch nói chung]. Dưới đây chúng tôi lướt qua một số thư viện phổ biến dựa trên mục đích của chúng, từ thu thập dữ liệu, thao tác dữ liệu và vẽ sơ đồ đến phân tích kỹ thuật, học máy và kiểm tra ngược

Thư viện Python cho dữ liệu

Nếu bạn đang tìm kiếm một công cụ thao tác và phân tích dữ liệu nguồn mở mạnh mẽ, nhanh chóng và dễ sử dụng, thì không đâu khác ngoài Pandas [đặc biệt tốt với dữ liệu chuỗi thời gian và thao tác với các bảng số]

Python ban đầu không dành cho điện toán số, đó là nơi mà NumPy hoặc Numerical Python phát huy tác dụng. Hầu như bất kỳ ai làm việc với Python ngày nay đều sử dụng bộ công cụ mạnh mẽ của NumPy, bao gồm các công cụ tích hợp mã C/C++ và Fortran, đối tượng mảng N chiều và biến đổi Fourier, cùng nhiều thứ khác

SciPy là một thư viện Python nguồn mở dành cho máy tính kỹ thuật và khoa học, kết hợp toán học, kỹ thuật và khoa học. Các tính năng bao gồm đại số tuyến tính, tích hợp, nội suy, chức năng đặc biệt, FFT, xử lý tín hiệu và hình ảnh, và bộ giải ODE, trong số những thứ khác

Thư viện Python để trực quan hóa dữ liệu

If you need online tools for analytics, statistics, and scientific graphing libraries for Python, then Plotly is your answer. Chẳng hạn, việc sửa đổi biểu đồ hình nến để bao gồm khối lượng có thể được thực hiện theo một trong hai cách với Plotly [hoặc thậm chí tạo một biểu đồ riêng]

Biểu đồ thống kê có thể được tạo bằng Seaborn [dựa trên matplotlib], giúp các nhà giao dịch khám phá và hiểu rõ hơn về dữ liệu trực quan thông qua biểu đồ

Thư viện Python cho máy học

Khi nói đến các thư viện Python dành cho máy học, có một số thư viện tốt mà bạn có thể sử dụng với tư cách là một nhà giao dịch thuật toán, bao gồm scikit-learning, LightGBM, PyTorch và TensorFlow. Và hãy nhớ đọc bài viết của chuyên gia nội bộ của chúng tôi về Tránh những cạm bẫy phổ biến của chiến lược học máy

Thư viện Python cho Markov Chain Monte Carlo [MCMC]

Triển khai các mô hình thống kê Bayes và các thuật toán phù hợp, chẳng hạn như chuỗi Markov Monte Carlo [MCMC] để lấy mẫu từ phân phối xác suất bằng cách sử dụng PyMc và ghép nối nó với NumPy cho số, bất cứ khi nào có thể

Thư viện Python để phân tích kỹ thuật

Bạn đang tìm thư viện chỉ báo phân tích kỹ thuật tài chính? . Và khi bạn đang ở đó, hãy xem pandas-ta và chọn từ hơn 130 chỉ báo và chức năng tiện ích cũng như hơn 60 mô hình nến phân tích kỹ thuật

Thư viện Python để phân tích giao dịch

Các nhà giao dịch thuật toán có thể thực hiện lập hồ sơ danh mục đầu tư bằng cách sử dụng QuantStats, cho phép người dùng hiểu rõ hơn về hiệu suất của họ thông qua các số liệu và phân tích rủi ro

Ưu và nhược điểm của Python đối với giao dịch thuật toán

Trong các phần trên, chúng ta đã thấy một số lợi ích của việc sử dụng Python cho giao dịch thuật toán. Nó dễ học, dễ sử dụng, dễ đọc, dễ tiếp cận, mạnh mẽ, linh hoạt và hoạt động ngay lập tức—các thành phần chính khi xây dựng chiến lược giao dịch thuật toán có lợi nhuận

Ưu điểm của Python cho giao dịch thuật toán

Bằng cách kết nối kinh tế, tài chính và khoa học dữ liệu, Python đã trở thành một trong những ngôn ngữ lập trình phổ biến nhất cho các công ty FinTech, liên tục được xếp hạng trong số ba ngôn ngữ phổ biến nhất trong các dịch vụ tài chính.

Trên thực tế, Python mang lại nhiều cơ hội việc làm nhất xét về mặt tuyệt đối trong lĩnh vực ngân hàng. Theo nghiên cứu được thực hiện vào năm 2020, đã có gần 1.500 công việc Python, với 14 lập trình viên Python khác đang theo đuổi từng người. Những công ty lớn như Citigroup hiện cung cấp các lớp mã hóa Python cho các nhà phân tích ngân hàng và thương nhân như một phần trong sáng kiến ​​giáo dục thường xuyên của họ. Vì nhiều lý do đã đề cập trước đó trong bài viết này, Python có rất nhiều thứ để cung cấp cho các nhà giao dịch cũng như các nhà phân tích và nhà nghiên cứu.

Nếu bạn quan tâm đến một công việc trong lĩnh vực ngân hàng, thì Python chắc chắn sẽ khiến bạn quan tâm. Chương trình Quartz của Bank of America sử dụng Python làm ngôn ngữ chính. Theo lời của cựu chuyên gia công nghệ BoA, Kirat Singh, “Mọi người tại JPMorgan hiện cần biết Python và có khoảng 5.000 nhà phát triển sử dụng nó tại Bank of America,” nói thêm rằng “Có gần 10 triệu dòng mã Python trong Quartz và chúng tôi đã nhận được gần 3.000 lượt xác nhận mỗi ngày. Đó là một ngôn ngữ kịch bản tốt và dễ dàng tích hợp vào cả mặt trước và mặt sau, đó là một trong những lý do chúng tôi chọn nó ngay từ đầu. ”

Do các công cụ phân tích của nó, Python được sử dụng rộng rãi trong giao dịch định lượng. Nhờ các thư viện như Pandas, người dùng Python được hưởng lợi từ việc trực quan hóa dữ liệu dễ dàng hơn và tính toán thống kê tinh vi. Các nhà cung cấp dịch vụ tài chính cũng có thể khai thác các thuật toán học máy mạnh mẽ và phân tích dự đoán của họ bằng các giải pháp dựa trên Python sử dụng các thư viện như scikit-learning hoặc PyBrain, trong số nhiều giải pháp khác đã đề cập trước đó

Nhược điểm của Python đối với giao dịch thuật toán

Một trong những điểm mạnh chính của Python cũng là một trong những điểm yếu của nó. Do dễ sử dụng, nhiều tính năng và thư viện phong phú, người dùng Python có thể gặp khó khăn khi học và làm việc với các ngôn ngữ lập trình khác, vốn tốn nhiều thời gian hơn để học và thành thạo.

Mặc dù Python vượt trội trong các ứng dụng máy tính để bàn và máy chủ, nhưng nó kém ấn tượng hơn trong điện toán di động, ít nhất là theo một số người dùng.

Ngoài ra còn có vấn đề về các biến, được coi là các đối tượng và do đó có thể chuyển thành rò rỉ bộ nhớ và tắc nghẽn hiệu suất [i. e. , hàng triệu biến được lưu trữ] xuất phát từ việc quản lý bộ nhớ không hiệu quả

Thiết lập không gian làm việc cho giao dịch thuật toán

Đúng. Bây giờ bạn đã biết thêm về Python. Bạn hiểu lợi ích của nó và cách nó có thể giúp bạn kiếm lợi nhuận từ giao dịch thuật toán. Bây giờ bạn cần thiết lập không gian làm việc của mình, có thể có các mức độ khó khác nhau. Mức tối thiểu liên quan đến việc chạy Python và Môi trường phát triển tích hợp [IDE] trên hệ thống của bạn

Một giải pháp thay thế tốt hơn là sử dụng Trình chỉnh sửa mã bot Python tiên tiến nhất của Trality — Trình chỉnh sửa mã bot Python dựa trên trình duyệt mạnh mẽ được thiết kế cho các nhà giao dịch muốn xây dựng, kiểm tra lại, tối ưu hóa và giao dịch trực tiếp với các bot giao dịch theo thuật toán

Trình chỉnh sửa mã Tratility Hướng dẫn

Trình chỉnh sửa mã bot của Trality hoàn toàn MIỄN PHÍ để sử dụng cho giao dịch ảo. Nếu khối lượng giao dịch thực của bạn vượt quá 5.000 EUR mỗi tháng, thì gói giá bắt đầu từ 9. 99 EUR và cao nhất là 59. 99 EUR cho khối lượng giao dịch không giới hạn

Xây dựng Chiến lược Giao dịch với Trình chỉnh sửa mã Python Bot của Trality

Vì vậy, làm thế nào bạn thực sự có thể bắt đầu sử dụng Trality's Code Editor? . Chiến lược này sử dụng hai khoảng thời gian, chỉ báo động lượng Ước tính Định tính Định lượng [QQE] và đặt một mức chốt lời và cắt lỗ theo sau ngay khi chúng ta thực hiện một vị thế. [Để được giải thích chi tiết về bất kỳ khía cạnh nào của chiến lược, hãy xem Tài liệu Trality. ]

Trong chiến lược này, chúng tôi chỉ muốn tham gia giao dịch khi tài sản đang có xu hướng tăng trong cả ngắn hạn và dài hạn. Đối với xu hướng ngắn hơn, chúng tôi sẽ sử dụng nến 1 giờ và xác định xu hướng là xu hướng tăng nếu đường trung bình động hàm mũ [EMA] của 5 nằm trên đường EMA của 20. Đối với xu hướng dài hơn, chúng ta sẽ sử dụng nến 1 ngày và xác định xu hướng là xu hướng tăng nếu đường trung bình động đơn giản [SMA] 15 nằm trên đường SMA 80. Hơn nữa, chúng tôi sẽ chỉ tham gia giao dịch với điều kiện giá hiện tại của tài sản nằm dưới đường EMA là 5

Như đã đề cập, chúng tôi sẽ sử dụng chỉ báo QQE để tham gia giao dịch vào đúng thời điểm. QQE là siêu xu hướng của chỉ số sức mạnh tương đối [RSI]. Nếu bạn không chắc chắn về cách thức hoạt động của nó hoặc cần giải thích thêm, hãy truy cập trang tài liệu của chúng tôi.

Cuối cùng, chúng tôi sẽ đặt mức chốt lời ở mức 5% và cắt lỗ theo sau ở mức 10% để bảo vệ danh mục đầu tư của mình. Chiến lược Python này dựa trên tỷ lệ thắng cao. Nói cách khác, đạt được mức chốt lời phải là một sự kiện có xác suất cao và chạm vào điểm dừng lỗ sau đó phải là một sự kiện có xác suất thấp.

Sau khi đã xác định chiến lược, chúng tôi đã sẵn sàng để bắt đầu xây dựng. Hãy đi qua từng khối xây dựng chính từng bước một.  

Bước 1. Xác định chức năng xử lý

Đối với người mới bắt đầu, mọi chức năng được chú thích bằng công cụ trang trí lịch trình của chúng tôi sẽ chạy trong một khoảng thời gian xác định và nhận dữ liệu biểu tượng. Chúng tôi gọi các trình xử lý chức năng được chú thích này, nhưng bạn có thể đặt tên cho chúng theo bất kỳ tên nào bạn muốn. Họ phải có hai đối số, mặc dù. Chúng tôi gọi trạng thái đầu tiên và dữ liệu thứ hai. Đối số thứ hai sẽ luôn nhận dữ liệu ký hiệu cho khoảng thời gian mà bạn đã chỉ định. Trong bot cụ thể này, chúng tôi giao dịch theo hai khoảng thời gian khi chúng tôi sử dụng nến 1 ngày và nến 1 giờ. Do đó, chúng tôi sẽ sử dụng hai trình xử lý và chỉ định BTCUSDT làm cặp giao dịch. Tất nhiên, bạn cũng có thể giao dịch trên nhiều biểu tượng

Trong bước này, chúng tôi sẽ chỉ tập trung vào việc xác định handler_long, điều này sẽ đảm nhiệm việc xác định xu hướng dài hạn

def initialize[state]:
    pass
 
@schedule[interval="1d", symbol="BTCUSDT"]
def handler_long[state, data]:

Bước 2. Giải quyết tín hiệu xu hướng dài hạn trong handler_long

Trong bước đầu tiên của thuật toán, chúng tôi xây dựng chức năng xác định xu hướng tăng cho hàm handler_long. Chúng tôi xác định các đường trung bình động đơn giản [SMA], một đường có khoảng thời gian nhìn lại ngắn hơn gồm 15 cây nến và một đường dài hơn với khoảng thời gian là 80 cây nến.

   sma_short = data.sma[15].last
   sma_long = data.sma[80].last

   if sma_short > sma_long:
   	state.long_trend = "uptrend"
   else:
   	state.long_trend = "downtrend"

nó thật đơn giản. Bây giờ chúng ta đã hoàn thành chức năng handler_long. Cái này nó thì trông như thế nào

________hai

Bước 3. Xác định handler_short

Lets now carry on and define handler short. Hãy nhớ rằng, handler_short sẽ chạy trên nến 1 giờ

@schedule[interval="1h", symbol="BTCUSDT"]
def handler_short[state, data]:

Bước 4. Tìm nạp dữ liệu chỉ báo và giá tài sản cho handler_short

Bây giờ, hãy làm việc với hàm handler_short, nhưng trước khi thực hiện, trước tiên chúng ta cần tìm nạp dữ liệu chỉ báo. Tuy nhiên, hãy tóm tắt nhanh trước khi tiếp tục

  • Chúng tôi sẽ sử dụng EMA 5 và 20 để xác định xu hướng ngắn hơn
  • Chúng tôi sẽ sử dụng QQE, với cài đặt [20, 5, 4. 2] tham gia giao dịch vào đúng thời điểm
  • Chúng tôi sẽ chỉ tham gia giao dịch nếu giá tài sản thấp hơn EMA là 5, do đó chúng tôi cần lấy giá tài sản từ dữ liệu
    ema_short = data.ema[5].last
    ema_long = data.ema[20].last

    qqe = data.qqe[20, 5, 4.2]  
    last_trend = qqe["trend"].last

    last_closing_price = data.close_last 

Bước 5. Tính tín hiệu mua cho handler_short

Trong bước này, chúng tôi đặt các quy tắc để tham gia giao dịch. Để làm như vậy, chúng tôi tạo một hàm bên trong có tên là signal_check, hàm này đảm nhận việc kiểm tra xem các quy tắc tham gia giao dịch có được đáp ứng hay không. Chức năng bên trong kiểm tra như sau. xu hướng dài hơn là xu hướng tăng, xu hướng ngắn hơn là xu hướng tăng, QQE biểu thị mua và giá của tài sản nằm dưới đường EMA 5. Nếu tất cả các quy tắc được đáp ứng, thì signal_check trả về “True” [nếu không, nó sẽ trả về “False”]

 def signal_check[]:
        if state.long_trend == "uptrend" and ema_short > ema_long and last_trend > 0 and last_closing_price < ema_short:
            return True 
        else:
            return False

Bước 6. Tìm nạp thông tin danh mục đầu tư

Bây giờ chúng tôi truy vấn bất kỳ vị trí mở nào bằng ký hiệu. Bằng cách gọi chức năng này, chúng tôi nhận được một giá trị Boolean cho biết liệu một vị trí mở cho biểu tượng đó có tồn tại hay không. Cuối cùng, chúng tôi kiểm tra xem có bất kỳ lệnh mở nào không

position = query_open_position_by_symbol[data.symbol, include_dust=False]
    has_position = position is not None
    has_open_orders = len[query_open_orders[]] > 0

Bước 7. Giải quyết lệnh mua

Đây là nơi xác định trái tim và linh hồn của thuật toán của chúng tôi. chiến lược giao dịch của nó. Chúng tôi sử dụng API đặt hàng để tạo đơn đặt hàng. Cụ thể, thuật toán đặt lệnh thị trường sẽ mua nếu chức năng bên trong signal_check báo hiệu mua với giá 300 USDT. Hơn nữa, thuật toán sử dụng một phạm vi lệnh hủy bỏ khác vì chúng tôi muốn đặt mức chốt lời ở mức 5% và mức cắt lỗ theo sau ở mức 10% cho cả hai vị trí đầy đủ

if signal_check[] == True and not has_position and not has_open_orders:
        state.buy_order = order_value[symbol=data.symbol, value=300]
        with OrderScope.one_cancels_others[]:
            state.take_profit = order_take_profit[symbol=data.symbol,amount=state.buy_order.quantity, stop_percent=0.05,subtract_fees=True]
            state.stop_loss = order_trailing_iftouched_amount[symbol=data.symbol, amount=-subtract_order_fees[state.buy_order.quantity ], trailing_percent= 0.1, stop_price=data.close[-1]*0.88]

Bước 8. Đặt các mảnh lại với nhau

Nếu chúng tôi kết hợp tất cả các bước này lại với nhau, chúng tôi sẽ nhận được đoạn mã nhỏ sau đây, sau đó chúng tôi có thể đưa đoạn mã này vào lần kiểm tra ngược đầu tiên của mình

________số 8

Kiểm tra lại và đánh giá chiến lược giao dịch

Trality cung cấp cho người dùng một bộ chỉ số đầy đủ để sử dụng khi thử nghiệm chiến lược của họ, trong đó có ba loại. hiệu suất, lợi nhuận rủi ro và chạy. Tài liệu Trality của chúng tôi chứa mọi thứ bạn cần biết về các công cụ và dữ liệu khác nhau mà bạn có thể tùy ý sử dụng khi kiểm tra lại chiến lược giao dịch của mình

Đã đến lúc kiểm tra lại chiến lược giao dịch và xem xét các số liệu quan trọng nhất. Tỷ lệ Sharpe, tổng lợi nhuận và tỷ lệ rút tiền tối đa. Khung thời gian được sử dụng cho kịch bản này là 01. 06. 21-01. 12. hai mươi mốt

kết quả kiểm tra lại

Tỷ lệ Sharpe

Tỷ lệ Sharpe là một trong những thước đo lợi tức rủi ro phổ biến nhất được sử dụng trong giao dịch, giúp các nhà đầu tư hiểu rõ hơn về lợi tức đầu tư so với rủi ro của nó. Nó có được bằng cách tính chênh lệch giữa lợi tức đầu tư và lợi tức phi rủi ro, chia cho độ lệch chuẩn của khoản đầu tư [i. e. , độ biến động của nó]

Trong hình trên, bạn có thể thấy bot giao dịch của chúng tôi đạt được tỷ lệ Sharpe cao. Đây là bằng chứng cho thấy bot đã quản lý để giữ an toàn cho danh mục đầu tư của chúng tôi trong khi vẫn tạo ra lợi nhuận tốt [9. 39%]

hoàn trả đầy đủ

Tổng lợi nhuận là một thống kê hiệu suất [được đo bằng phần trăm] thể hiện lãi hoặc lỗ ròng tích lũy trong một khoảng thời gian nhất định. Nó được tính như sau

trong đó PVt và PVT đại diện cho giá trị danh mục đầu tư tại thời điểm bắt đầu t và kết thúc T

Mục tiêu chính của chiến lược của chúng tôi là tạo ra lợi nhuận trong khi vẫn giữ an toàn cho danh mục đầu tư của chúng tôi. Do đó, vì chúng tôi không chấp nhận nhiều rủi ro nên chúng tôi đã không quản lý để đánh bại thị trường bằng cách tạo ra tổng lợi nhuận là 9. 39% với bot giao dịch của chúng tôi

Rút tiền tối đa

Mức sụt giảm tối đa [MDD] là khoản lỗ tối đa quan sát được từ đỉnh đến đáy của danh mục đầu tư trước khi đạt được đỉnh mới. Đây là phần trăm chênh lệch giữa PnL cao và thấp. Rút tiền tối đa là một chỉ báo về rủi ro giảm giá trong một khoảng thời gian xác định

Như thể hiện trong các kết quả kiểm tra lại ở trên, MDD trong khoảng thời gian cụ thể của chiến lược giao dịch Python của chúng tôi là 6. 35%. Nói cách khác, mức thua lỗ tối đa mà chiến lược của chúng tôi quan sát được từ mức cao nhất là 6. 35%. Kết quả này đạt được do điểm dừng lỗ theo sau trong chiến lược Python của chúng tôi giới hạn mức giảm tối đa

Tối ưu hóa các tham số của chiến lược giao dịch

Tạo một bot dựa trên Python có lợi nhuận có thể là một thách thức. Ngay cả khi bạn có một ý tưởng thuật toán mà bạn hài lòng, việc tối ưu hóa các tham số của nó có thể gây khó chịu và tốn thời gian. Đó là lý do tại sao nhóm nghiên cứu của chúng tôi đã xây dựng Trality Optimizer

Trong phần này, chúng ta sẽ tối ưu hóa chiến lược giao dịch theo thuật toán của mình. Như bạn có thể thấy từ mã bên dưới, chúng tôi sẽ cần thêm chú thích tính năng mới “@parameter” trên đầu trình khởi tạo. Để sử dụng các chú thích @parameter, sau đó chúng ta cần thêm đối tượng params vào các chức năng và các chỉ báo

Bây giờ nó đã sẵn sàng để được tối ưu hóa. Đừng quên kích hoạt Trình tối ưu hóa trong cài đặt nâng cao

@parameter[name="ema_short", type="float", default=5, min=3, max=15, enabled=True]
@parameter[name="ema_long", type="float", default=20, min=15, max=40, enabled=True]
def initialize[state, params]:
    pass

@schedule[interval="1d", symbol="BTCUSDT"]
def handler_long[state, data, params]:
   sma_short = data.sma[15].last
   sma_long = data.sma[80].last

   if sma_short > sma_long:
   	state.long_trend = "uptrend"
   else:
   	state.long_trend = "downtrend"


@schedule[interval="1h", symbol="BTCUSDT"]
def handler_short[state, data, params]:

    ema_short = data.ema[params.ema_short].last
    ema_long = data.ema[params.ema_long].last

    qqe = data.qqe[20, 5, 4.2]  
    last_trend = qqe["trend"].last

    last_closing_price = data.close_last 

    def signal_check[]:
        if state.long_trend == "uptrend" and ema_short > ema_long and last_trend > 0 and last_closing_price < ema_short:
            return True 
        else:
            return False

    position = query_open_position_by_symbol[data.symbol, include_dust=False]
    has_position = position is not None
    has_open_orders = len[query_open_orders[]] > 0
    
    if signal_check[] == True and not has_position and not has_open_orders:
        state.buy_order = order_value[symbol=data.symbol, value=300]
        with OrderScope.one_cancels_others[]:
            state.take_profit = order_take_profit[symbol=data.symbol,amount=state.buy_order.quantity, stop_percent=0.05,subtract_fees=True]
            state.stop_loss = order_trailing_iftouched_amount[symbol=data.symbol, amount=-subtract_order_fees[state.buy_order.quantity ], trailing_percent= 0.1, stop_price=data.close[-1]*0.88]

Bằng cách chạy Trình tối ưu hóa, chúng tôi nhận thấy rằng tham số tối ưu cho ema_short là 6 và cho ema_long là 21. 25. Bạn có thể xem kết quả backtesting ở hình bên dưới

Kết quả của trình tối ưu hóa

Với các tham số tối ưu, bot đã quản lý để tăng lợi nhuận từ 9. 39% đến 12. 76% và tăng tỷ lệ Sharpe từ 1. 39 đến giá trị vượt trội là 2. 01, mà bạn cũng có thể thấy ở trên

Triển khai chiến lược giao dịch cho giao dịch ảo

Hy vọng rằng bạn đã tìm thấy hướng dẫn từng bước này về cách tạo một chiến lược giao dịch Python đơn giản vừa hữu ích vừa truyền cảm hứng. Giờ đây, bạn có thể sử dụng MIỄN PHÍ Trình chỉnh sửa mã của Trality để điều chỉnh cài đặt và cảm nhận tốt hơn về nền tảng cũng như những gì nó có thể làm cho bạn. Hoặc tạo bot giao dịch của riêng bạn từ đầu và tùy chỉnh nó để đáp ứng nhu cầu của bạn

Sau khi bạn hài lòng với bot giao dịch Python của mình, bước tiếp theo là triển khai nó cho giao dịch ảo bằng Trality và chúng tôi sẽ hướng dẫn bạn qua các bước đơn giản bên dưới. Chặng cuối cùng trong hành trình phát triển chiến lược của bạn liên quan đến giao dịch trực tiếp, nơi bạn có thể chọn từ danh sách không ngừng mở rộng của Trality gồm một số sàn giao dịch đáng tin cậy nhất thế giới, bao gồm Binance, Binance. Hoa Kỳ, Kraken, Bitpanda, FTX và Coinbase Pro

Tuy nhiên, chúng tôi khuyến khích bạn thử nghiệm bot của mình trong giao dịch ảo trước để xem chiến lược này hoạt động như thế nào trong điều kiện thực tế mà không gây bất kỳ rủi ro nào đối với tài chính của bạn. Hãy nhớ rằng, giao dịch ảo chỉ có vậy—không sử dụng tiền thật

Bắt đầu nào

Bước 1. Nhấp vào nút “Bắt đầu Bot” trong Trình chỉnh sửa mã

Triển khai bot - Bắt đầu bot

Bước 2. Bạn sẽ được yêu cầu tạo phiên bản mới cho bot của mình

Triển khai bot - Tạo phiên bản mới

Bước 3. Chọn giao dịch giấy [giao dịch ảo]

Triển khai bot - Giao dịch ảo

Bước 4. Đồng ý với các điều khoản và điều kiện, sau đó nhấp vào “Bắt đầu bot này”

Triển khai bot - Bước cuối cùng

Thành công. Bot của bạn hiện đang chạy trên một tài khoản ảo

Giờ đây, bạn có thể thực hành giao dịch bao lâu tùy thích với bot Python tùy chỉnh của mình, tối ưu hóa các tham số của nó và nâng cao kỹ năng của bạn trong quy trình trước khi giao dịch trực tiếp bằng tiền thực tế

Điều gì tạo nên một nhà giao dịch thuật toán giỏi?

Sprint, swim, cycle—algorithmic trading is a lot like being a triathlete. [Bây giờ tôi biết bạn đang nghĩ gì—không phải là một trong những phép loại suy thể thao đầy cảm hứng đó. ]

Tuy nhiên, cũng giống như vận động viên ba môn phối hợp, các nhà giao dịch phải thành thạo ba kỹ năng thiết yếu để thành công. toán học, tài chính và mã hóa. Bạn có thể giỏi toán và biết mã hóa từ trong ra ngoài, nhưng nếu bạn không biết nhiều về tài chính thì bạn sẽ gặp khó khăn khi về đích. Bạn cần có những ý tưởng sáng tạo về cách giao dịch;

Nhưng nó không chỉ là thành thạo các kỹ năng kỹ thuật. Ai cũng có thể học bơi. Hoặc trở nên giỏi chạy. Hoặc là một người thích đi xe đạp. Đó là những điều sẽ giúp bạn vượt qua vòng loại và tham gia cuộc đua. Nhưng để thực sự vượt trội so với những người khác hoặc vượt quá những gì bạn nghĩ là có thể cho chính mình, bạn phải yêu thích cảm giác của nước và mặt đất dưới chân mình. Khung kim loại đó, với các bánh răng, bàn đạp và bánh xe, cần phải trở thành một phần mở rộng của cơ thể bạn.

Tại Trality, chúng tôi có thể trang bị cho bạn những công cụ hiện đại, đẳng cấp thế giới để đưa bạn vào vị trí tốt nhất có thể khi tham gia cuộc đua lớn.

Phần còn lại là tùy thuộc vào bạn

Điểm mấu chốt

Python không chỉ là một ngôn ngữ lập trình tuyệt vời cho các nhà giao dịch thuật toán. Từ các tập đoàn trị giá hàng tỷ đô la cho đến các công ty mới thành lập, đó là ngôn ngữ thúc đẩy một số thương hiệu lớn nhất hiện nay và có thể là những ngôi sao của ngày mai. Google, Facebook và Microsoft sử dụng Python cho những thứ như ứng dụng web, khoa học dữ liệu, AI, học máy, học sâu và tự động hóa tác vụ, trong khi Instagram, Spotify và Uber sử dụng Python để cung cấp năng lượng cho trang web của họ

Tuy nhiên, gần gũi hơn, các nhà giao dịch yêu cầu các công cụ mạnh mẽ để tiến hành phân tích thị trường toàn diện nhằm phân biệt các xu hướng và hiểu biết sâu sắc, sau đó đưa ra dự đoán và dự báo dựa trên những phát hiện của họ. Python trao quyền cho các nhà giao dịch thuật toán để tạo ra các chiến lược giao dịch có lợi nhuận và hưởng lợi từ những hiểu biết phân tích dự đoán về điều kiện của các thị trường cụ thể

Python có tốt cho một số giao dịch không?

Python giúp viết và đánh giá các cấu trúc giao dịch thuật toán dễ dàng hơn nhờ phương pháp lập trình chức năng của nó . Mã Python có thể dễ dàng mở rộng thành các thuật toán động để giao dịch. Python có thể được sử dụng để phát triển một số nền tảng giao dịch tuyệt vời trong khi sử dụng C hoặc C++ là một công việc phức tạp và tốn thời gian.

Là một cái gì đó bất hợp pháp ở Ấn Độ?

Giao dịch tiền thuật toán ở Ấn Độ ngày nay . Algorithmic trading was introduced and allowed in India in 2008 by the Securities and Exchange Board of India [SEBI].

Phần mềm nào là tốt nhất cho giao dịch thuật toán Ấn Độ?

Danh sách 5 phần mềm giao dịch Algo tốt nhất .
Vệt Zerodha
Thuật toán Zerodha
thuật toán
buôn bán người máy
người máy

Python kết nối với Zerodha như thế nào?

Điều gì xảy ra khi bạn cung cấp thông tin đăng nhập của mình .
Nhập chi tiết đăng nhập của bạn trong khi vẫn mở tab mạng
Trên tab Nhà phát triển-> Mạng, nhấn vào XHR để lọc sự lộn xộn, Zerodha sử dụng các yêu cầu json cho tất cả các trao đổi dữ liệu
Bạn có thể nhấp vào tab xem trước để xem phản hồi từ Zerodha là gì

Chủ Đề