Tài nguyên đang được tải lên... tải...

3.4 Khởi động nhanh lập trình trực quan

Tác giả:Tốt, Tạo: 2019-04-23 15:00:14, Cập nhật: 2019-04-27 11:54:05

Tóm lại

Nhiều nhà giao dịch chủ quan quan tâm đến giao dịch định lượng, ban đầu, họ bắt đầu với sự tự tin đầy đủ. Sau khi học ngữ pháp cơ bản, hoạt động dữ liệu, cấu trúc dữ liệu, kiểm soát logic của ngôn ngữ lập trình truyền thống và mã dài và phức tạp, họ bắt đầu bối rối. Đó là lý do tại sao ngôn ngữ lập trình trực quan có thể phù hợp hơn để bắt đầu.

Chiến lược hoàn chỉnh

Để giúp bạn nhanh chóng hiểu các điểm chính của phần này, trước khi giới thiệu lập trình trực quan FMZ Quant, hãy tìm ra logic chiến lược là gì? Và có sự hiểu biết sơ bộ về khái niệm danh từ trong phần này. Chúng tôi sử dụng giá đóng đơn giản nhất để mở vị trí dài khi nó lớn hơn trung bình động 50 giai đoạn và để mở vị trí ngắn khi nó thấp hơn trung bình động 50 giai đoạn.

  • Mở vị trí dài: Nếu hiện không có vị trí, và giá đóng lớn hơn mức trung bình động 50 giai đoạn.

  • Khởi mở vị trí ngắn: Nếu hiện tại không có vị trí, và giá đóng là thấp hơn mức trung bình động 50 giai đoạn.

  • Khóa vị trí dài: Nếu hiện đang nắm giữ vị trí dài, và giá đóng là thấp hơn trung bình động 50 giai đoạn.

  • Khóa vị trí ngắn: Nếu hiện đang nắm giữ vị trí ngắn, và giá đóng lớn hơn mức trung bình động 50 giai đoạn.

Nếu bạn viết logic chiến lược ở trên trong lập trình trực quan, như được hiển thị dưới đây:

img

Như đã được hiển thị ở trên, toàn bộ quy trình thiết kế là: thiết lập các loại thị trường, mua một mảng K-line, mua giá trung bình 50 giai đoạn của K line, lấy giá đóng cửa của K line, lấy một mảng các vị trí nắm giữ, xác định tình trạng của vị trí nắm giữ, đánh giá liệu giá đóng cửa có lớn hơn hoặc thấp hơn trung bình động, và cuối cùng, thực hiện vị trí mở hoặc đóng.

Ở đây bạn cần phải chú ý đến khái niệm array, đó là một trong những cấu trúc dữ liệu quan trọng cho mọi ngôn ngữ lập trình. Một mảng giống như một container, chứa một loạt các giá trị. Ví dụ: gọi API lấy mảng K-line, và kết quả trả về là:

//This is a K-line array. There are 3 data in it: the data of the one before pervious K line, the data of the pervious K line, the data of the current K line, and assigned these values to the "arr" variable.

arr = [{"Time":1540137600000,"Open":4013,"High":4116,"Low":4013,"Close":4085,"Volume":4124040}, 
{"Time":1540224000000,"Open":4087,"High":4106,"Low":4068,"Close":4076,"Volume":3252216},
{Time":1540310400000,"Open":4064,"High":4123,"Low":4050,"Close":4120,"Volume":3642856}]

Mã trên là một mảng K-line tổng cộng ba dữ liệu, Có 3 dữ liệu trong đó: dữ liệu của một trước K đường thông qua, dữ liệu của K đường thông qua, dữ liệu của K đường hiện tại, và gán các giá trị này cho biến arr. Nếu chúng ta muốn có được giá trị cuối cùng của mảng này (dữ liệu K đường hiện tại) chúng ta có thể viết nó như thế này (xem các dòng 4 và 5):

//This is a K-line array. There are 3 data in it: the data of the one before pervious K line, the data of the pervious K line, the data of the current K line, and assigned these values to the "arr" variable.

arr = [{"Time":1540137600000,"Open":4013,"High":4116,"Low":4013,"Close":4085,"Volume":4124040}, 
{"Time":1540224000000,"Open":4087,"High":4106,"Low":4068,"Close":4076,"Volume":3252216},
{Time":1540310400000,"Open":4064,"High":4123,"Low":4050,"Close":4120,"Volume":3642856}]

k0_1 = arr[2]; // get the data of current k line, this is the first method
k0_2 = arr[arr.length - 1]; // get the data of current k line, this is the second method
k1 = arr[arr.length - 2]; // get the data of pervious k line

Chúng ta nên sử dụng phương pháp thứ hai (dòng thứ 5), bởi vì có hàng trăm dữ liệu đường K trong thực tế, và đường K mới đang tăng liên tục. Vì vậy, bạn nên lấy chiều dài của mảng trước, arr.length có nghĩa là lấy chiều dài của mảng, và sau đó trừ đi 1, đó là dữ liệu đường K mới nhất. Nếu bạn muốn lấy dữ liệu của đường K phía trước, trừ đi 2.

Bạn có thể thấy rằng các dữ liệu này trong {} với tên tiếng Anh tương ứng với nghĩa tương ứng: thời gian, giá mở cửa, giá cao nhất, giá thấp nhất, giá đóng cửa, khối lượng giao dịch. Nếu bạn muốn có được giá đóng cửa của đường K xuyên qua, thêm . sau đó theo giá trị cần thiết. Hãy tham khảo các dòng 8 ~ 10 trong mã bên dưới.

//This is a K-line array. There are 3 data in it: the data of the one before pervious K line, the data of the pervious K line, the data of the current K line, and assigned these values to the "arr" variable.

arr = [{"Time":1540137600000,"Open":4013,"High":4116,"Low":4013,"Close":4085,"Volume":4124040}, 
{"Time":1540224000000,"Open":4087,"High":4106,"Low":4068,"Close":4076,"Volume":3252216},
{Time":1540310400000,"Open":4064,"High":4123,"Low":4050,"Close":4120,"Volume":3642856}]

k0_1 = arr[2]; // get the data of current k line, this is the first method
k0_2 = arr[arr.length - 1]; // get the data of current k line, this is the second method
k1 = arr[arr.length - 2]; // get the data of pervious k line

k1.Close; // get the pervious k line closing price
k2.Time; // get the pervious k line time
k1.Volume; // get the pervious k line trading volume

Tại sao lại sử dụng ngôn ngữ lập trình trực quan?

Với những khái niệm trên, hãy viết một chương trình đầu ra hello, world với ngôn ngữ lập trình Java, để cảm nhận lập trình truyền thống, như được hiển thị dưới đây:

public class HelloWorld {
    public static void main(string[] ages) {
        system.out.println("hello world!");
    }
}

Tôi tin rằng hầu hết người mới bắt đầu chỉ biết từ tiếng Anh "hello, world!" trong ngoặc kép, và những người khác chỉ bị nhầm lẫn như địa ngục. Do đó, tốt hơn là sử dụng lập trình trực quan như một điểm khởi đầu.

Lập trình trực quan là gì?

Lập trình trực quan đã tồn tại trong một thời gian dài. ý tưởng lập trình này, được trang bị nhiều mô-đun điều khiển, chỉ bằng cách kéo và thả, bạn có thể xây dựng logic mã, hoàn thành thiết kế chiến lược giao dịch, quá trình giống như các khối xây dựng.

img

Như đã thấy ở trên, cùng một chương trình, lập trình trực quan chỉ yêu cầu một dòng code. Điều này làm giảm đáng kể ngưỡng lập trình, đặc biệt là đối với những người không biết gì về lập trình, đây là một trải nghiệm hoạt động tuyệt vời.

Các đặc điểm của ngôn ngữ lập trình trực quan là gì?

Blockly ((tên của công cụ lập trình trực quan này) không phải là một đồ chơi lập trình, nó giống như một loại trình soạn thảo, không phải là loại trình soạn thảo ngụy trang hệ điều hành, hỗ trợ nhiều yếu tố cơ bản của lập trình, chẳng hạn như: biến, hàm, mảng và dễ mở rộng các khối tùy chỉnh, bạn có thể sử dụng nó để hoàn thành các nhiệm vụ lập trình phức tạp. Được thiết kế phù hợp với triết lý Unix: Làm một điều.

Công cụ lập trình trực quan FMZ Quant Blockly được Google xuất bản. Tương tự như thiết kế của Scratch, được ra mắt bởi Đại học Massachusetts, ngưỡng không thực sự cho lập trình (xem bên dưới).

img

Trong giao diện lập trình trực quan FMZ Quant, có hàng trăm mô-đun giao dịch phổ biến được tích hợp, và nhiều mô-đun giao dịch sẽ được thêm vào sau này để hỗ trợ các ý tưởng mới và các ứng dụng mới của nhà giao dịch, sẽ được phát triển và duy trì chung bởi các nhà phát triển.

Mặc dù cú pháp đơn giản và không mất hiệu suất. Nó có thể đáp ứng hầu hết các phát triển chiến lược giao dịch định lượng đơn giản. Không có vấn đề về chức năng hoặc tốc độ, nó cũng tốt như các ngôn ngữ lập trình thông thường như Python và JavaScript. trong tương lai, nó sẽ hỗ trợ các ứng dụng tài chính phức tạp hợp lý.

cách sử dụng

img img

Viết một lời chào, chương trình thế giới

img img

Chạy, in "Hello, world"

img

Tóm lại

Từ khi bắt đầu một chiến lược lập trình trực quan hoàn chỉnh, đến việc giới thiệu và đặc điểm của ngôn ngữ lập trình trực quan, chúng tôi đã cho bạn thấy cách sử dụng công cụ này trên nền tảng FMZ Quant, và viết một ví dụ về " hello world ". Tuy nhiên, chúng tôi cần nhắc nhở mọi người rằng như một bước đá để giao dịch định lượng, hiện tại nó chỉ có một giao diện API hạn chế trên nền tảng FMZ Quant. Đối với giao dịch định lượng, tốt hơn là đối xử với nó như một công cụ, giúp bạn sắp xếp logic của chiến lược của bạn.

Thông báo phần tiếp theo

Lập trình trực quan không khác gì những điều cơ bản của các ngôn ngữ lập trình cấp cao, và thậm chí một số nơi là phổ quát. Học lập trình trực quan là một bước tiến để học lập trình tiên tiến. Trong phần tiếp theo chúng ta sẽ tìm hiểu về việc học tiên tiến của lập trình trực quan, bao gồm cách viết các mô-đun giao dịch định lượng được sử dụng phổ biến trên nền tảng FMZ Quant và cách phát triển một chiến lược giao dịch nội ngày hoàn chỉnh.

Các bài tập sau giờ học

  1. Trên nền tảng FMZ quant giao diện lập trình trực quan, sử dụng API và hiểu ý nghĩa của chúng.

  2. Nhận giá mở cửa mới nhất bằng ngôn ngữ lập trình trực quan và xuất nó vào nhật ký.


Thêm nữa