Networks Business Online Việt Nam & International VH2

Điều cở bản để lập trình Indicator | IFCM Việt Nam

Đăng ngày 07 November, 2022 bởi admin

Giới thiệu

Mục đích của bài viết này là để lý giải những nguyên tắc viết indicator trên ví dụ, và việc xem xét ” những đá ngầm ” mà những lập trình viên hoàn toàn có thể gặp, khi triển khai những bước tiên phong của họ trong sự tăng trưởng ngôn từ NTL + .
Trong việc kiến thiết xây dựng những Indicator, Bạn cần phải xác lập những giá trị được thống kê giám sát, ghi lại trong buffer, và làm thế nào chúng được hiển thị trên màn hình hiển thị. Hình thành những chỉ số đấy một cách đúng để phần mêm hoạt động giải trí đúng. Khi tạo logic cho indicator, Bạn cần phân biệt, những giá trị cần tính, cách ghi vào buffer, cách hiển thị lên trên màn hình hiển thị. Hình thành những tính năng đấy đúng là tiềm năng khi thiết kế xây dựng indicator .
Ví dụ, tất cả chúng ta sẽ thiết lập indicator mà sẽ hiển thị chênh lệch những thanh bar với giá đóng cáo hơn giá mở và số lượng thanh bar với giá đóng thấp hơn giá mở ; những chênh lệch đấy tích tụ ở trong quy trình tiến độ N. Chúng ta sẽ đưa indicator đấy hiển trong hành lang cửa số mới theo mẫu hình gistogramm .

Thiết lập mã script

Logic của chúng ta sẽ đơn giản và dễ hiêu, để có thể đơn giản kiểm tra cách làm việc của indicator. Cho mỗi thanh Bar với số I phân tích trong giai đoạn số N bar trước đấy và sẽ ghi lại thống kê, khi phát hiện thấy sổ bar tăng thì sẽ công thêm giá trị cuối thêm 1, còn khi thấy bar hạ thì trừ 1.

imgXem mật mã của ứng dụng .
Trước hết phải tăng cấp lại những sô liệu mà sẽ được sử dùng trong indicator .

#set_indicator_separate
double ExtMapBuffer1[];
int ExtCountedBars=0;
extern int period = 10;

Mục # set_indicator_separate cho tất cả chúng ta biết là biểu đồ sẽ được hiển thị trong hành lang cửa số mới và sẽ không hiển thị trong biểu đồ tỷ giá. Dòng tiếp theo là số liệu toàn thế giới ExtMapBuffer1, trong đấy tất cả chúng ta sẽ lưu lại những giá trị số liệu. Lưu y rằng, tất cả chúng ta không đặt kích cỡ của số liệu này, vị compilator sẽ tự động hóa chia ra bộ nhớ thiết yếu cho việc làm .

Trong ExtMapBuffer1 sẽ lưu lại tất cả các điểm tham gia trong việc xây dựng biểu đồ, còn theo ô dọc sẽ là các số thứ tự trong số liệu. Sau đấy chúng ta cho thêm số liệu ExtCounterBars bằng 0. Trong số liệu này chúng ta sẽ lưu giữ số liệu các thanh bar. Như vậy chúng ta sẽ không cần tính số lượng thanh bar mỗi lân, như vậy sẽ nhanh hơn. Tiếp theo là số liệu toàn câu period để lưu số lượng khoảng thời gian mà indicator sẽ tính dữ liệu. Lưu ý rằng số liệu loại extern cho phep chúng ta thay đổi ngày trong khi đang chay phần mềm, không cần phải chỉnh đổi lại mã.

Xem ví dụ công dụng Initialize ( ), mà trong đấy sẽ lưu lại những kiểm soát và điều chỉnh chính cho indicator của bạn .

Chức năng SetIndexCount của Indicator lưu các số liệu. Buffer với số liệu ExtMapBuffer1 sẽ chỉ có một, nên chúng ta viết số 1 vào cuối. Chúng ta cần liên kết số thứ tự và số liệu. Dòng này là dòng liên kết Indicator.SetIndexBuffer(0, ExtMapBuffer1), giá trị 0 là để vẻ biểu đồ từ số liệu ExtMapBuffer1.

Tiếp theo tất cả chúng ta điền những đặc thù cho indicator. Thông số thứ nhất của chiêu thức SetIndexStyle điền số liệu trong buffer : giá trị = 0, mà đã được viết trong SetIndexBuffer. Thứ 2 là kiểu loại vẽ : gistogramm. Trong thông số kỹ thuật thư 3 là style đường IsSolid ( hoàn toàn có thể cho bất kể giá trị nào vào, tại vì giá trị này chỉ anh hưởng đến độ dày bằng 1 của gistogramm ). Tiếp theo chúng tà điền thông số kỹ thuật độ dày bằng 5 và mầu xanh clrBlue ( mầu hoàn toàn có thể cho như format RGB, ví dụ 0x0000 FF ) .
Tiếp theo là tính năng Run ( ), sẽ thực thi tính năng chính là draw ( ). Chức năng draw ( ) sẽ tính toàn bộ những tài liệu .
Trong số liệu toàn thế giới ExtCountedBars điền số lượng thanh bar, mà đã không biến hóa từ lân cuối. Những giá trị này tất cả chúng ta đã tính sẵn rồi, nên sẽ không cần tính lại. Tiếp them tất cả chúng ta sẽ đặt nếu giá trị ExtCountedBars < 0 thì sẽ dừng hoạt động giải trí của indicator. Tiếp theo công dụng draw ( ) sẽ tính những giá trị và lưu lại vào buffer .
Trong dòng « int pos = Chart. Bars-ExtCountedBars-1 ; » chọn vị trí khởi đầu từ giá trị cũ đến giá trị mới nhất. Với số lương thành bar bằng Chart. Bar, thanh bar đứng xa nhất sẽ có số index là Chart. Bars-1, tiếp đến : Chart. Bars-ExtCountedBars-1. Dữ liệu Value dùng để lưu lại thống kê. Tiếp theo trong chu kỳ luân hồi Chart. Bars-ExtCountedBars-1 đến 0 cho mỗi bar lưu giữ tài liệu cho từng khoảng cách thời hạn .
Ghép lại mã thành một :

Tiếp theo cho thêm nâng cấp vào mã để indicator làm việc hoàn thiện hơn: Những thanh với giá trị âm sẽ hiển thị bằng một mầu, còn dương tính sẽ mầu khác. Như thế chúng ta sẽ cần thêm 4 buffer.

Indicator mới với những loại mầu :imgKhi thiết lập mã, Bạn hoàn toàn có thể gặp những lỗi trong ghi chúc như : « run fuction call failed » ( khởi động công dụng run bị lỗi ). Lỗi như này hoàn toàn có thể gặp khi ghi giá trị vào số liệu với số index sai, nên thế khi gặp những lỗi tựa như hãy kiểm tra lại thứ tự index của số liệu .

Tổng kết

Trong bài viết này tất cả chúng ta đã tạo từng bước một indicato. Và đã lập trình một cách đơn thuần nhất để làm quen với ngôn từ NTL + một cách đơn thuần nhất. Có thể những indicator này sẽ không thiết yếu cho bạn trong việc thanh toán giao dịch, nhưng trong bài viết này đã không đưa ra mục địch viết ra indicator mà giúp cho việc thanh toán giao dịch. Trong bài viết này đã xem xét những tính năng mà sẽ thiết yếu khi viết bất kể một indicator nào khác .

Source: https://vh2.com.vn
Category : Tin Học