[TOC]
Hợp đồng tương lai hàng hóa, hợp đồng tiền điện tử
Hợp đồng tương lai hàng hóa/tiền mã hóa
this_week OKEX futures contract for current week
next_week OKEX futures contract for next week
quarter OKEX futures contract for quarter
XBTUSD BITMEX Perpetual Contract
rb888 Rebar main contract
MA000 Methanol Index Contract
rb1901 Rebar contract
…and so on.
Khi thiết lập hợp đồng, bạn có thể chọn rb1901/rb1905 Dữ liệu thị trường là rb1901, hợp đồng giao dịch lệnh là rb1905
Một biến là một không gian mở trong bộ nhớ máy tính để lưu trữ dữ liệu.
Xác định biến số đầu tiên
// Assign 1 to the variable a
a:=1;
Trong
Phân biệt với
INFO(CLSOE>OPEN,'OK!');
// integer
int:=2;
// decimal
float:=3.1;
// The current period closing price is greater than -999, you will find that the return value of each cycle is 1, representing true, because the closing price is almost impossible to be negative
Is_true:=Close>-999;
VARIABLE:VALUE1:10; // Declare a global variable with a value of 10 and execute only once.
Trong hầu hết các hệ thống, tên biến không cho phép sử dụng hệ thống
Tiếng Anh + gạch dưới
// output
Move_avg_5:=MA(C,5);
Nếu bạn thích tiếng Anh, hãy để mọi người hiểu ý nghĩa của các biến của bạn càng nhiều càng tốt. Đừng sử dụng các phương pháp đặt tên như: A1, AAA, BBB... Tin tôi đi, sau một vài ngày, khi bạn xem lại mã chỉ số của mình, bạn sẽ rất đau đớn do thiếu bộ nhớ. Tương tự như vậy, khi bạn xuất mã cho người khác, tư duy của người đọc chắc chắn đã sụp đổ.
Sau đó, từ bây giờ, hãy nắm lấy
M Language càng nhiều càng tốt! Tôi hy vọng nó sẽ là một công cụ mạnh mẽ cho phân tích và ra quyết định của bạn.
Loại dữ liệu là một khái niệm cơ bản. Trong lập trình, khi chúng ta gán dữ liệu rõ ràng cho một biến, biến sẽ trở thành loại của dữ liệu.
1、2、3、1.1234、2.23456 ……
'1' 、'2' 、'3' ,string type must be wrapped with ''
a collection of data consisting of a series of single-valued data
Sử dụng 1 cho true và 0 cho false
Ví dụ
// Declare a variable of a numeric type
var_int := 1;
// Declare a variable of sequence data
var_arr := Close;
// String type can not be declared separately, you need to combine functions
INFO(C>O, 'rising line');
Các hoạt động và tính toán được sử dụng để thực hiện mã chỉ số, đó là biểu tượng của hoạt động tham gia.
Được sử dụng để gán giá trị cho một biến
:
một dấu hai chấm, đại diện cho việc gán và đầu ra cho sơ đồ (sơ đồ thay thế)
Close1:Close; // Assign Close to the variable Close1 and output it to the diagram
:=
Close2:=Close; // Assign Close to the variable Close2
^^
^^, hai ^ biểu tượng đại diện cho việc gán, gán giá trị cho các biến và xuất ra biểu đồ (bản đồ chính).
lastPrice^^C;
..
..., hai chấm, Biểu tượng đại diện cho việc gán, gán giá trị cho biến và hiển thị nó trong bảng thanh trạng thái, nhưng không xuất ra biểu đồ (bản đồ chính, tiểu biểu đồ...).
openPrice..O
Các toán tử liên quan là các toán tử thoáng qua được sử dụng trong các biểu thức có điều kiện.
Giá trị trả về: Loại Boolean, không đúng (1), phải sai (0)
// Assign the result of 2 > 1 to the rv1 variable, at this time rv1=1
Rv1:=2>1;
// returns false, which is 0, because 2 is greater than 1. :-)
rv3:=2<1;
x:=Close;
// Assign the result of the operation with a closing price greater than or equal to ¥ 10 to the variable rv2
// Note that since “close” is a sequence of data, when the close>=10 operation is performed, the essence is that each cycle is performed, so each cycle will have a return value of 1, 0.
rv2:=Close>=10;
Omitted here
A:=O=C; // Determine if the opening price is equal to the closing price.
1<>2 // Judgment weather 1 is equal to 2 or not, the return value is 1 (true)
Return value: Boolean type, not true (1), must be false (0)
// determine whether cond_a, cond_b, cond_c is true at the same time,
cond_a:=2>1;
cond_b:=4>3;
cond_c:=6>5;
cond_a && cond_b and cond_c; // return value 1, true
cond_a:=1>2;
cond_b:=4>3;
cond_c:=5>6;
cond_a || cond_b or cond_c; // return value 1, true
Return value: numeric type
Nó là sự hoàn thành của biểu tượng các toán tử số học cơ bản, đó là biểu tượng được sử dụng để xử lý bốn hoạt động số học.
+ +
A:=1+1; // return 2
Trừ -
A:=2-1; // return 1
Xấp xỉ
A:=2*2; // return 4
Phân bằng /
A:=4/2; // return 2
Trong thế giới lập trình,
function thực sự là một phần mã thực hiện một chức năng nhất định và có thể được gọi bằng mã khác.
function(param1,param2,……)
Thành phần:
Tên của hàm (đối tượng 1, tham số 2,...), có thể không có tham số, có thể có nhiều tham số, chẳng hạn như MA ((x, n); đại diện cho một trung bình động đơn giản của các chu kỳ n trả về x bên trong, nơi MA ((() là hàm, x và n là các tham số của hàm.
Khi sử dụng một hàm, chúng ta cần hiểu định nghĩa cơ bản của hàm, tức là dữ liệu có thể được thu được bằng cách gọi hàm. Nói chung, hàm có tham số. Khi chúng ta truyền tham số, chúng ta cần đảm bảo rằng kiểu dữ liệu được truyền là phù hợp. Ở giai đoạn hiện tại, hàm gợi ý mã của hầu hết các IDE là rất không hoàn hảo. Chúng không hiển thị các kiểu dữ liệu nhất định cho các tham số được đưa ra, điều này mang lại cho chúng ta một số rắc rối.
Return a simple moving average
usage:
AVG:=MA(X,N): N's simple moving average of X, algorithm (X1+X2+X3+...+Xn)/N,N supports variables
Sau đó, chúng ta phân tích kỹ lưỡng chức năng và cố gắng tìm cách nhanh chóng học và sử dụng chức năng.
Để học hàm nhanh chóng, trước tiên chúng ta cần hiểu khái niệm gọi là
// Because it will be used in the following code, use the variable return_value to receive and save the return value of function()
// retrun_value := function(param1,param2);
// for example:
AVG:=MA(C,10); // AVG is retrun_value , “function” function is: MA function, param1 parameter: C is the closing price sequence data, param2 parameter: 10.
Thứ hai, khái niệm quan trọng thứ hai của hàm là tham số, đi qua các tham số khác nhau, bạn có thể nhận được các giá trị trả về khác nhau.
// variable ma5 receives 5 day closing price moving average
ma5:=MA(C,5);
// variable ma10 receives 10 day closing price moving average
ma10:=MA(C,10);
Các thông số đầu tiên X của các biến trên ma5, ma10 là C (giá đóng), trên thực tế C cũng là một hàm (trở lại chuỗi giá đóng kể từ khi mở), nhưng nó không có các thông số. tham số thứ hai 5, 10,Đây được sử dụng để nói với hàm MA (), chúng ta muốn có được trung bình động của giá đóng trong bao nhiêu ngày, thông qua các thông số, hàm trở nên linh hoạt hơn.
Trong phần giới thiệu chức năng sau đây, sử dụng, làm theo ba nguyên tắc trên.
Lập trình hỗn hợp giữa ngôn ngữ M và ngôn ngữ JavaScript
%%
// here you can call any API function of FMZ Quant.
scope.TEST = function(obj) {
return obj.val * 100;
}
%%
Giá đóng cửa: C; Giá đóng cửa được phóng to gấp 100 lần: TEST©; Giá đóng trước đó được phóng to 100 lần: TEST(REF(C, 1)); // Chuột di chuyển đến đường K backtest và giá trị biến được hiển thị.
- scope object
scope object, you can add attributes and assign anonymous functions to attributes. An anonymous function referenced by this attributes can be called in the M language code section.
- scope.getRefs(obj) function
In the JavaScript code block, call the scope.getRefs(obj) function, which returns the data of the incoming obj object.
The following %%%% of the symbolic package's JavaScript code will get the incoming C closing price when the TEST(C) function is called in the M language code.
The scope.getRefs function returns all closing prices for this K-line data. Since the throw "stop" interrupt routine is used, the variable “arr” contains only the closing price of the first Bar of k-line. You can try to delete throw "stop" and it will execute the last return of the JavaScript code, returning all the closing price data.
```
%%
scope.TEST = function(obj){
var arr = scope.getRefs(obj)
Log("arr:", arr)
throw "stop"
return
}
%%
TEST(C);
```
- scope.bars
In the JavaScript code block, access all K line bars.
The TEST function returns a value, 1 is the falling k-line and 0 is the rising line.
```
%%
scope.TEST = function(){
var bars = scope.bars
return bars[bars.length - 1].Open > bars[bars.length - 1].Close ? 1 : 0 // can only return values
}
%%
arr:TEST;
```
```
# Note:
# TEST Received anonymous function, the return value must be a numeric value
# If the anonymous function has no parameters, write VAR:=TEST directly when calling TEST; write VAR:=TEST(); will report an error.
# TEST in #scope.TEST must be uppercase.
```
- scope.bar
In the JavaScript code block, access the current bar.
Calculate the average of “opening high but closing low” of k-line’s prices.
```
%%
scope.TEST = function(){
var bar = scope.bar
var ret = (bar.Open + bar.Close + bar.High + bar.Low) / 4
return ret
}
%%
avg^^TEST;
```
- scope.depth
Access the market depth data (order book)
```
%%
scope.TEST = function(){
Log(scope.depth)
throw "stop" // Throw an exception after printing the depth data, pause.
}
%%
TEST;
```
- scope.symbol
Get the current trading pair name string
```
%%
scope.TEST = function(){
Log(scope.symbol)
throw "stop"
}
%%
TEST;
```
- scope.barPos
Get the K line Bar location.
```
%%
scope.TEST = function(){
Log(scope.barPos)
throw "stop"
}
%%
TEST;
```
- scope.get\_locals('name')
This function is used to get the variables in the M language code part
```
V:10;
%%
scope.TEST = function(obj){
return scope.get_locals('V')
}
%%
GET_V:TEST(C);
```
```
# Note:
# If a variable does not calculate data when the period is insufficient, this time the scope.get_locals function is called in the JavaScript code.
# When get this variable, it will give an error: line:XX - undefined locals a variable name undefined
```
Sử dụng: #EXPORT Formula Name... #END để tạo ra một công thức. Nếu bạn chỉ muốn lấy dữ liệu cho các khoảng thời gian khác nhau, bạn cũng có thể viết một công thức trống mà không cần tính toán công thức.
Công thức trống là:
#EXPORT TEST
NOP;
#END // End
Sử dụng: #IMPORT [MIN, thời gian, tên công thức] AS giá trị biến, công thức tham chiếu, lấy dữ liệu của thời gian đặt (giá đóng, giá mở, v.v., thu được bằng giá trị biến).
Ví dụ mã:
// this code demonstrates how to reference formulas of different cycles in the same code
// #EXPORT extends the syntax, ending with #END as a formula, you can declare multiple
#EXPORT TEST
Mean 1:EMA(C, 20);
Mean 2:EMA(C, 10);
#END // End
#IMPORT [MIN,15,TEST] AS VAR15 // Reference formula, K line cycle is 15 minutes
#IMPORT [MIN,30,TEST] AS VAR30 // Reference formula, K line cycle is 30 minutes
CROSSUP(VAR15.Mean1, VAR30.Mean1),BPK;
CROSSDOWN(VAR15.Mean2, VAR30.Mean2),SPK;
The highest price of 15 mins:VAR15.HIGH;
The highest price of 30 mins:VAR30.HIGH;
AUTOFILTER;
Trong mô hình, bằng cách viết hàm AUTOFILTER để điều khiển và thực hiện việc lọc tín hiệu của một mở và một đóng. Khi nhiều tín hiệu vị trí mở đáp ứng điều kiện, tín hiệu đầu tiên được coi là tín hiệu hiệu quả, và cùng một tín hiệu trên đường k tiếp theo sẽ được lọc ra.
Mô hình lọc hỗ trợ các lệnh: BK, BP, BPK, SK, SP, SPK, CLOSEOUT, không hỗ trợ BK (5) và các lệnh khác với lô
E.g:
MA1:MA(CLOSE,5);
MA2:MA(CLOSE,10);
CROSSUP(C,MA1),BK;
CROSSUP(MA1,MA2),BK;
C>BKPRICE+10||C<BKPRICE-5,SP;
AUTOFILTER;
Chức năng AUTOFILTER không được ghi trong mô hình, cho phép tín hiệu vị trí mở liên tục hoặc tín hiệu vị trí đóng liên tục, có thể được sử dụng để tăng hoặc giảm vị trí.
Các lệnh được hỗ trợ: BK ((N), BP ((N), SK ((N), SP ((N), CLOSEOUT, BPK ((N), SPK ((N), không hỗ trợ vị trí mở và đóng mà không có lô. (1) Nhóm hướng dẫn hỗ trợ. (2) Khi nhiều điều kiện chỉ dẫn được đáp ứng cùng một lúc, các tín hiệu được thực hiện theo thứ tự mà các câu lệnh có điều kiện được viết. Ví dụ:
MA1:MA(CLOSE,5);
MA2:MA(CLOSE,10);
CROSSUP(C,MA1),BK(1);
CROSSUP(MA1,MA2),BK(1);
C>BKPRICE+10||C<BKPRICE-5,SP(BKVOL);
Một đường K với một mô hình tín hiệu có thể được chia thành mô hình giá đóng và mô hình giá lệnh.
1)Mô hình giá đóng cửa
Đường K đi qua tín hiệu tính toán để đặt một lệnh (giá trị cũng được thực hiện trong quá trình hình thành một đường K. Tại thời điểm này, tín hiệu sẽ không chắc chắn và tín hiệu xuất hiện khi đường k chưa hoàn thành sẽ bị bỏ qua và không đặt lệnh)
Hướng tín hiệu phù hợp với hướng của vị trí chờ và không có tình trạng biến mất tín hiệu.
E.g:
MA1:MA(CLOSE,5);
MA2:MA(CLOSE,10);
CROSSUP(MA1,MA2),BPK;//5 cycle moving average line up cross 10 cycle moving average line to buy long.
CROSSDOWN(MA1,MA2),SPK;//5 cycle moving average line down cross 10 cycle moving average line to sell short.
AUTOFILTER;
2)Mô hình giá hướng dẫn
Bất kể đường k đã hoàn thành hay chưa, tín hiệu được tính toán và lệnh được đặt trong thời gian thực, nghĩa là lệnh được đặt trước khi đường K hoàn thành;
Nếu hướng của vị trí không phù hợp với hướng của tín hiệu ở cuối đường k, vị trí sẽ được đồng bộ hóa tự động.
E.g:
MA1:MA(CLOSE,5);
MA2:MA(CLOSE,10);
CROSSUP(MA1,MA2),BPK;//5 cycle moving average line up cross 10 cycle moving average line to buy long.
CROSSDOWN(MA1,MA2),SPK;//5 cycle moving average line down cross 10 cycle moving average line to sell short.
AUTOFILTER;
Mô hình sử dụng multsig hoặc multsig_min để kiểm soát và thực hiện nhiều tín hiệu từ một đường K duy nhất.
Bất kể đường k đã hoàn thành, tính tín hiệu và đặt lệnh thời gian thực.
Tín hiệu sẽ không được xem xét lại, không có tình trạng biến mất tín hiệu và hướng tín hiệu phù hợp với hướng vị trí.
Thực hiện nhiều lần trong một đường K nếu đáp ứng nhiều điều kiện tín hiệu
E.g:
MA1:MA(CLOSE,5);
MA2:MA(CLOSE,10);
CROSSUP(MA1,MA2),BK;
C>BKPRICE+10||C<BKPRICE-5,SP;
AUTOFILTER;
MULTSIG(0,0,2,0);
bổ sung: 1, Mô hình tổng hợp và trừ vị trí, hai phương pháp của một tín hiệu k-line: lệnh đặt giá đóng và lệnh đặt giá chỉ dẫn đều được hỗ trợ.
2、Tổng cộng và trừ mô hình vị trí,cũng hỗ trợ một tín hiệu k-line duy nhất để đặt lệnh.
Tăng và trừ mô hình vị trí, viết hàm multsig hoặc multsig_min, nhận ra nhiều lần của Tăng và trừ vị trí trên một đường k, hoặc giảm vị trí nhiều lần.
Sử dụng toán tử
^^ để thiết lập chỉ số được hiển thị trên hình ảnh chính trong khi gán giá trị cho biến.
MA60^^MA(C, 60); // Calculate the moving average indicator with a parameter of 60
Sử dụng toán tử
ATR:MA(MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)),26); // Assign a value to the ATR variable, The ":" symbol is followed by the formula for calculating the ATR
Nếu bạn không muốn hiển thị trên biểu đồ chính hoặc phụ
Sử dụng toán tử
MA60..MA(C, 60); // Calculate the moving average indicator with a parameter of 60
Bạn có thể sử dụng DOT và COLORRED để thiết lập kiểu dòng, màu sắc, v.v. phù hợp với thói quen của người dùng quen thuộc với ngôn ngữ M.
Giới thiệu các
vấn đề thường gặp trong việc chuẩn bị các chỉ số, thường là những điểm cần chú ý khi viết các chỉ số.
Hãy chú ý đến cuối
Lưu ý rằng các từ khóa hệ thống không thể được tuyên bố là biến.
Lưu ý rằng chuỗi sử dụng dấu ngoặc đơn, ví dụ:
Phản hồi
// The content of the comment
(các phương thức đầu vào có thể được gõ bằng cả tiếng Anh và tiếng Trung), có nghĩa là mã không được biên dịch trong quá trình thực thi, nghĩa là nó không thực hiện // nội dung đằng sau nó.
{ Comment content }
Bấm bình luận.
A:=MA(C,10);
{The previous line of code is the calculation of the moving average.}
(* Comment content *)
Bấm bình luận.
A:=MA(C,10);
(*The previous line of code is the calculation of the moving average.*)
Khi viết mã, nó thường gây ra một lỗi ký hiệu vì phương pháp nhập chuyển đổi giữa tiếng Trung và tiếng Anh. Các loại phổ biến là như sau: colon:, terminator; dấu phẩy, ngoặc (), vv, những ký tự khác nhau trong tiếng Trung và tiếng Anh cần phải chú ý.
>=
<=
Nhận giá mở của biểu đồ đường K
Giá mở đầu
Chức năng: OPEN, viết tắt là O
Các thông số: Không có
Giải thích: Trả lại giá mở đầu của chu kỳ
Dữ liệu trình tự
OPEN obtained the opening price of the K-line chart.
Note:
1、can be shorthand as O.
example 1:
OO:=O; //Define OO as the opening price; pay attention to the difference between O and 0.
example 2:
NN:=BARSLAST(DATE<>REF(DATE,1));
OO:=REF(O,NN); //Get the opening price of the day
example 3:
MA5:=MA(O,5); //Define the 5-period moving average of the opening price (O is OPEN shorthand).
Nhận giá cao nhất của biểu đồ đường K
Giá cao nhất
Chức năng:HIGH, viết tắt là H
Các thông số: Không có
Giải thích: trả lại giá cao nhất trong chu kỳ
Dữ liệu trình tự
HIGH Get the highest price of the K-line chart.
Note:
1、can be shorthand as H.
example 1:
HH:=H; //Define HH as the highest price.
example 2:
HH:=HHV(H,5); //Take the maximum value of the highest price within 5 cycles.
example 3:
REF(H,1); //Take the highest price of the previous K line
Nhận giá thấp nhất của biểu đồ đường K
Giá thấp nhất
Chức năng: LOW, viết tắt là L
Các thông số: Không có
Giải thích: Trả về giá thấp nhất của chu kỳ.
Dữ liệu trình tự
LOW gets the lowest price of the K-line chart.
Note:
1、can be shorthand as L.
example 1:
LL:=L; //Define LL as the lowest price.
example 2:
LL:=LLV(L,5); //Get the minimum value of the lowest price in 5 cycles.
example 3:
REF(L,1); //Get the lowest price of the previous K line
Nhận giá đóng của biểu đồ đường K
Giá đóng cửa
Chức năng: CLOSE, viết tắt là C
Các thông số: Không có
Giải thích: Trả lại giá đóng của chu kỳ
Dữ liệu trình tự
CLOSE Get the closing price of the K-line chart.
Note:
1、When the k-line in the market is not finished, get the latest price.
2、Can be shorthand as C.
example 1:
A:=CLOSE; //Define the variable A as the closing price (A is the latest price when the k line is not finished).
example 2:
MA5:=MA(C,5); //Define the 5-period moving average of the closing price (C is short for CLOSE).
example 3:
A:=REF(C,1); //Get the closing price of the previous k line.
Nhận khối lượng của biểu đồ đường K
Khối lượng giao dịch
Chức năng:VOL, viết tắt là V
Các thông số: Không có
Giải thích: Trả lại âm lượng của chu kỳ này.
Dữ liệu trình tự
VOL gets the volume of the K-line chart.
Note:
Can be shorthand as V.
The return value of this function on the root TICK is the cumulative value of all TICK transactions for the day.
example 1:
VV:=V; //Define VV as volume
example 2:
REF(V,1); //indicates the volume of the previous cycle
example 3:
V>=REF(V,1); //The volume is greater than the volume of the previous cycle, indicating that the volume increases (V is short for VOL).
Đề xuất về phía trước
Reference the value of X before N cycles.
Note:
1、When N is a valid value, but the current number of k lines is less than N, a null value is returned;
2、When N is 0, the current X value is returned;
3、When N is null, it returns a null value.
4、N can be a variable
example 1:
REF(CLOSE,5); indicates the closing price of the 5th cycle before the current cycle
example 2:
AA:=IFELSE(BARSBK>=1,REF(C,BARSBK),C);//Take the closing price of the K line of latest buying long of the open position signal
//1) When the k-line BARSBK of the BK signal returns a null value, the k-line REF(C, BARSBK) of the BK signal is returned.
Null value;
//2)When the BK signal is sent, the k-line BARSBK returns a null value, and if the BARSBK>=1 is not satisfied, then send the closing price of the k-line.
//3)The k-line BARSBK after the BK signal is sent returns the number of cycles of the K-line of the open position from the current K-line, REF(C, BARSBK)
Returns the closing price of the opening k line.
//4)Example: 1, 2, 3 three k lines, 1 K line is the opening position signal K line, then return the closing price of this k line, 2, 3
K line returns the closing price of the 1 K line.
Lấy đơn vị giao dịch của hợp đồng dữ liệu
Take the trading unit of the data contract.
usage:
UNIT takes the trading unit of the data loading contract.
Tương lai hàng hóa
Giá trị UNIT liên quan đến hợp đồng
rb contract - 1 hand, 10 (tons)
Cryptocurrency Spot
Giá trị UNIT là 1
Tiền tương lai tiền điện tử Giá trị UNIT liên quan đến đồng tiền hợp đồng
OKEX Futures: 1 BTC contract represents $100, and 1 contract in other currencies represents $10
Sự thay đổi giá tối thiểu cho các hợp đồng dữ liệu
Take the minimum price change of the data contract.
usage:
MINPRICE; Take the minimum price change for loading data contracts.
Sự thay đổi tối thiểu trong hợp đồng giao dịch
Take the minimum price change of the trading contract.
usage:
MINPRICE1; Take the minimum price change of the trading contract.
Take the position of the K line
BARPOS,returns the number of cycles from the first K line to the current cycle.
Note:
1、BARPOS returns the number of existing K lines in the local area, starting from the data existing on the local machine.
2、The return value of the first K line already on the local machine is 1.
example 1:LLV(L,BARPOS);//Find the minimum value of the local existing data.
example 2:IFELSE(BARPOS=1,H,0);//The current K line is the highest value of the first K line already in the local machine, otherwise it is 0.
Giá trị thời gian là số phút.
1, 3, 5, 15, 30, 60, 1440
Ngày
Chức năng: DATE
Các thông số: Không có
Giải thích: Nhận ngày của chu kỳ từ 1900
Dữ liệu trình tự
Dành thời gian cho dòng K.
TIME,take the K line time.
Note:
1、The function returns in real time on the real-market, and returns the start time of the K line after the K line is finished.
2、The function returns the exchange data reception time, which is the exchange time.
3、The TIME function returns a six-digit form when used in the second period, ie: HHMMSS, which is displayed in four-digit form on other periods, namely: HHMM.
4、The TIME function can only be loaded in the period below the daily period. The return value of the function is always 1500 in the period above the daily period (Included the daily period).
5、use the TIME function to close the position of the tail operation needs attention
(1) The time set by the end of the closing position is recommended to be set to the actual time that can be taken in the K line return value (eg, the RB index is 5 minutes, the last K line return time is 1455, and the tail closing position is set to TIME> =1458, CLOSEOUT; the signal that the tail is closed can not appear in the effect test)
(2) Using the TIME function as the condition for closing the position at the end of the market, it is recommended to open position condition also to make the corresponding time limit (such as setting the closing condition of the tail to TIME>=1458, CLOSEOUT; then the corresponding opening conditions are required Add condition TIME<1458; avoid opening the position again after closing the position)
example 1:
C>O&&TIME<1450,BK;
C<O&&TIME<1450,SK;
TIME>=1450,SP;
TIME>=1450,BP;
AUTOFILTER;
//Close the position after 14:50.
example 2:
ISLASTSK=0&&C>O&&TIME>=0915,SK;
Những năm
YEAR,the year is obtained.
Note:
YEAR ranges from 1970—2033。
example 1:
N:=BARSLAST(YEAR<>REF(YEAR,1))+1;
HH:=REF(HHV(H,N),N);
LL:=REF(LLV(L,N),N);
OO:=REF(VALUEWHEN(N=1,O),N);
CC:=REF(C,N);//take the highest price, the lowest price, the opening price, and the closing price of the previous year.
example 2:
NN:=IFELSE(YEAR>=2000 AND MONTH>=1,0,1);
Trả về tháng của chu kỳ
MONTH, returns the month of a cycle.
Note:
MONTH has a value range of 1-12.
example 1:
VALUEWHEN(MONTH=3&&DAY=1,C);//The closing price is taken when the K-line date is March 1.
example 2:
C>=VALUEWHEN(MONTH<REF(MONTH,1),O),SP;
Nhận số ngày trong chu kỳ
DAY, returns the number of days in a cycle.
Note:
The DAY value ranges from 1-31.
example 1:
DAY=3&&TIME=0915,BK;//From the date of 3 days, the time is 9:15, buy long.
example 2:
N:=BARSLAST(DATE<>REF(DATE,1))+1;
CC:=IFELSE(DAY=1,VALUEWHEN(N=1,O),0);//When the date is 1, the opening price is taken, otherwise the value is 0.
Giờ
HOUR,Returns the number of hours in a cycle.
Note:
HOUR ranges from 0 to 23
example 1:
NX:=BARSLAST(CROSS(HOUR=9,0.5));
DRAWLINE3(CROSSDOWN(HOUR=14,0.5),REF(H,NX),NX,CROSSDOWN(HOUR=14,0.5),REF(H,1),1,0),COLORGREEN;
//Connect 9:00 to the latest k-line high point before the market close.
example 2:
HOUR=10;//The return value is 1 on the K line at 10:00, and the return value on the remaining K lines is 0.
1 phút
MINUTE, Returns the number of minutes in a cycle.
Note:
1:MINUTE has a value range of 0-59
2:This function can only be loaded on the minute period, returning the number of minutes since the current K line.
example 1:
MINUTE=0;//The return value on the minute K line at the beginning of an hour is 1, and the remaining K lines return a value of 0.
example 2:
TIME>1400&&MINUTE=50,SP;//close position at 14:50.
Nhận số tuần
WEEKDAY, get the number of weeks.
Note:
1:WEEKDAY has a value range of 0-6.
2:The value displayed by the function on the weekly cycle is always 5, and the number of weeks on the day of the end of the K line is returned on the monthly cycle.
example 1:
N:=BARSLAST(MONTH<>REF(MONTH,1))+1;
COUNT(WEEKDAY=5,N)=3&&TIME>=1450,BP;
COUNT(WEEKDAY=5,N)=3&&TIME>=1450,SP;
AUTOFILTER;//each month delivery date is automatically closed all position at the end of that day.
example 2:
C>VALUEWHEN(WEEKDAY<REF(WEEKDAY,1),O)+10,BK;
AUTOFILTER;
Trả về trạng thái vị trí của chu kỳ hiện tại
BARSTATUS returns the position status of the current cycle.
Note:
The function returns 1 to indicate that the current cycle is the first cycle, return 2 to indicate the last cycle, and return 0 to indicate that the current cycle is in the middle position.
example:
A:=IFELSE(BARSTATUS=1,H,0); //If the current K line is the first cycle, the variable A returns the highest value of the K line, otherwise it takes 0.
Giữa
BETWEEN(X,Y,Z) indicates whether X is between Y and Z, and returns 1 (Yes), otherwise returns 0 (No).
Note:
1、If X=Y, X=Z, or X=Y and Y=Z, the function returns a value of 1 (Yse).
example 1:
BETWEEN(CLOSE,MA5,MA10); //indicates that the closing price is between the 5-day moving average and the 10-day moving average.
Chức năng chéo
CROSS(A,B) means that A passes B from the bottom to up, and returns 1 (Yes), otherwise it returns 0 (No).
Note:
1、The conditions for crossing must satisfy A<=B of pervious k line, and it is confirmed as crossing when the current k-line satisfies A>B.
example 1:
CROSS(CLOSE,MA(CLOSE,5)); //means the crossing line from below through the 5-period moving average
Chuyển xuống
CROSSDOWN(A,B):indicates that when A down crossing B from above, it returns 1 (Yes), otherwise it returns 0 (No).
Note:
1、CROSSDOWN (A, B) is equivalent to CROSS (B, A), CROSSDOWN (A, B) is written to better understand
example 1:
MA5:=MA(C,5);
MA10:=MA(C,10);
CROSSDOWN(MA5,MA10),SK; //MA5 down cross MA10, sell short
//CROSSDOWN(MA5,MA10),SK; and CROSSDOWN(MA5,MA10)=1, SK; express the same meaning
Đi ngang qua
CROSSUP(A,B) When A passes up from bottom to B, it returns 1 (Yes), otherwise it returns 0 (No)
Note:
1、CROSSUP (A, B) is equivalent to CROSS (A, B), CROSSUP (A, B) is written to better understand.
example 1:
MA5:=MA(C,5);
MA10:=MA(C,10);
CROSSUP(MA5,MA10),BK;//MA5 cross up MA10, buy long.
//CROSSUP(MA5,MA10),BK; and CROSSUP(MA5,MA10)=1, BK; express the same meaning
Xác định xem nó có tiếp tục đáp ứng yêu cầu không
EVERY(COND,N),judge whether the COND condition is always satisfied in the N period. If it is, the function returns a value of 1; if it is not, the function returns a value of 0;
Note:
1、N contains the current k line.
2、If N is a valid value, but there are not many K lines in front of it, or N is a null value, the condition is not satisfied, and the function returns 0.
3、N can be a variable
example 1:
EVERY(CLOSE>OPEN,5);//indicates that it has been a positive line for 5 cycles.
example 2:
MA5:=MA(C,5);//Define a 5-cycle moving average
MA10:=MA(C,10);//Define the 10-cycle moving average
EVERY(MA5>MA10,4),BK;//MA5 is greater than MA10 in 4 cycles, then buy long.
//EVERY(MA5>MA10,4),BK; and EVERY(MA5>MA10,4)=1, BK; express the same meaning
Xác định xem có sự hài lòng không
EXIST(COND,N) determines whether there are conditions for satisfying COND in N cycles
Note:
1、N contains the current k line.
2、N can be a variable.
3、If N is a valid value, but there are not many K lines in front of it, calculate according to the actual number of cycles.
example 1:
EXIST(CLOSE>REF(HIGH,1),10);indicates whether there is a maximum price in the 10 cycles that is greater than the previous period, if it exist, return 1, and if it does not exist, returns 0.
example 2:
N:=BARSLAST(DATE<>REF(DATE,1))+1;
EXIST(C>MA(C,5),N);//Indicates whether there is a k line that meets the closing price greater than the 5-period moving average. If it exist, return 1, and if it does not exist, return 0.
Chức năng có điều kiện
IF(COND,A,B) Returns A if the COND condition is true, otherwise returns B
Note:
1、COND is a judgment condition; A and B can be conditions or numerical values.
2、the function supports the variable loop to reference the previous period of its own variable, that is, support the following writing method Y: IF (CON, X, REF (Y, 1));
example 1:
IF(ISUP,H,L);// k line is the rising line, take the highest price, otherwise take the lowest price
example 2:
A:=IF(MA5>MA10,CROSS(DIFF,DEA),IF(CROSS(D,K),2,0));//When MA5>MA10, take whether DIFF is cross up the DEA, otherwise (MA5 Not greater than MA10), when K, D is down crossing, let A be assigned a value of 2. If the above conditions are not met, A is assigned a value of 0.
A=1,BPK;//When MA5>MA10, use DIFF cross up DEA as the buying long condition
A=2,SPK;//When MA5 is not greater than MA10, K D down crossing are used as selling short conditions
Chức năng có điều kiện
IFELSE(COND,A,B) Returns A if the COND condition is true, otherwise returns B
Note:
1、COND is a judgment condition; A and B can be conditions or numerical values.
2、the function supports the variable loop to refer to the previous period of its own variable, that is, supports the following writing method Y: IFELSE (CON, X, REF (Y, 1));
example 1:
IFELSE(ISUP,H,L);//k line is the rising line, take the highest price, otherwise take the lowest price
example 2:
A:=IFELSE(MA5>MA10,CROSS(DIFF,DEA),IFELSE(CROSS(D,K),2,0)); //When MA5>MA10, whether DIFF up cross DEA, otherwise (MA5 Not greater than MA10), when K, D down cross, let A be assigned a value of 2. If the above conditions are not met, A is assigned a value of 0.
A=1,BPK;//When MA5>MA10, use DIFF up cross DEA as the buying long condition
A=2,SPK;//When MA5 is not greater than MA10, K, D down cross are used as selling short conditions
thời tiết hợp đồng hiện tại một hợp đồng được chỉ định
weather ISCONTRACT(CODE) is currently the specified contract.
Usage:ISCONTRACT(CODE); is the current contract returns 1, not the current contract returns 0.
Note:
1、When judging whether it is a specified contract, CODE can be the transaction code of the contract.
example:
ISCONTRACT('MA888');
ISCONTRACT('rb1901');
ISCONTRACT('this_week'); // cryptocurrency OKEX Futures Contract
ISCONTRACT('XBTUSD'); // cryptocurrency BITMEX Futures Contract
Hỗ trợ các biểu thức đều đặn
Xác định hợp đồng
ISCONTRACT('this_week'); // Determine if the current contract is OKEX futures this_week (week) contract
Đánh giá tên của sàn giao dịch
ISCONTRACT('@Futures_(CTP|BitMEX)'); // Determine whether the current exchange object is a commodity futures or a cryptocurrency BITMEX futures exchange
ISCONTRACT('@(OKEX|Bitfinex|Futures_CTP)'); // To determine the exchange, you need to add @ character at the beginning
Đường K rơi xuống
ISDOWN determines whether the cycle is falling
Note:
1、ISDOWN is equivalent to C<O
example:
ISDOWN=1&&C<REF(C,1),SK;//When the current k line is finished and the closing price is lower than the closing price of the previous period, then selling short
//ISDOWN=1&&C<REF(C,1),SK; is equivalent to ISDOWN&&C<REF(C,1),SK;
Giá mở bằng giá đóng
ISEQUAL determines if the cycle is "The opening price equal to closing price"
Note:
1、ISEQUAL is equivalent to C=O
example 1:
EVERY(ISEQUAL=1,2),CLOSEOUT; //continue for 2 k lines are “The opening price equal to closing price
```
Xác định xem chu kỳ là đường K cuối cùng
ISLASTBAR determines if the cycle is the last k line
example 1:
VALUEWHEN(ISLASTBAR=1,REF(H,1));//The current k-line is the last k-line, taking the highest price of the previous cycle.
Xác định null
ISNULL determine whether it is null or not
Usage:ISNULL(N);if N is null, the function returns 1; if N is non-null, the function returns 0.
Example: MA5:=IFELSE(ISNULL(MA(C,5))=1, C,MA(C,5));//Define a five-period moving average. When the number of K-lines is less than five, return the current K-line closing price.
Đường tăng
ISUP determines whether the cycle is rising
Note:
1、ISUP is equivalent to C>O
example:
ISUP=1&&C>REF(C,1),BK; //If the current k line is a rising k line and the closing price is greater than the closing price of the previous period, then buying long.
//ISUP=1&&C>REF(C,1),BK; and ISUP&&C>REF(C,1),BK;
//Express the same meaning
Xác định chức năng
LAST(COND,N1,N2) Determines whether the COND condition has been met for the past N1 to N2 cycles.
Note:
1、If N1 and N2 differ by only one cycle (eg, N1=3, N2=2), the function judges whether the condition is satisfied on the cycle closest to the current K line (ie, whether the K line in the past N2 cycles is meeting the conditions)
2、When N1/N2 is a valid value, but the current k-line number is less than N1/N2, or N1/N2 null, means is not true, and the function returns 0.
3、N1 and N2 cannot be variables.
example 1:
LAST(CLOSE>OPEN,10,5); // indicates that it has been a rising line from the 10th cycle to the 5th cycle in the past.
example 2:
MA5:=MA(C,5);
LAST(C>MA5,4,3);//determine whether the K line from the current k-line 3 cycles satisfies “C greater than MA5”.
Duy trì chức năng chéo
LONGCROSS(A,B,N) indicates that A is less than B in N cycles, and this cycle A up cross B from bottom to top.
Note:
1、When N is a valid value, but the current k-line number is less than N, the LONGCROSS function returns a null value.
2、N does not support variables.
example 1:
LONGCROSS(CLOSE,MA(CLOSE,10),20); //indicates that the closing price continues below the 10-day moving average for 20 cycles and then up cross the 10-day moving average from bottom to top.
không...
NOT(X):Take a non. Returns 1 when X=0, otherwise returns 0.
example 1:
NOT(ISLASTBK); If the previous signal is not a BK signal, the NOT (ISLASTBK) returns a value of 1; the previous signal is a BK signal, and the NOT (ISLASTBK) returns a value of 0.
example 2:
NOT(BARSBK>=1)=1;//The BK signal is sent to the current K line to satisfy the condition.
//NOT(BARSBK>=1)=1 is equivalent to NOT (BARSBK>=1).
Trả về null
Return null
usage:
MA5:=MA(C,5);
MA10:=MA(C,10);
A:=IFELSE(MA5>MA10,MA5,NULL),COLORRED;//When MA5>MA10, draw the five-day moving average MA5, when MA5>MA10 is not satisfied, return null value, no drawing line.
Giá trị
VALUEWHEN(COND,X) Takes the current value of X when the COND condition is true. If the COND condition is not true, take the value of X when the COND condition is established last time.
Note:
X can be either a numerical value or a condition.
example 1
VALUEWHEN(HIGH>REF(HHV(HIGH,5),1),HIGH);indicates that the current highest price is greater than the maximum value of the highest price of the first five cycles and returns the current highest price.
example 2:
VALUEWHEN(DATE<>REF(DATE,1),O);indicates the opening price of the first k-line of the day
example 3:
VALUEWHEN(DATE<>REF(DATE,1),L>REF(H,1));//indicates whether the current lowest price on the first k line of the day is greater than the highest price of the last K line yesterday. Returns 1, indicating that there is a price gap on that day. Returns 0, indicating that there are no price gap on that day.
Chức năng điều kiện vòng lặp
LOOP2(COND,A,B); loop condition function Returns A if the COND condition is true, otherwise returns B
Note:
1、COND is a judgment condition; A and B can be conditions or numerical values.
2、the function supports variable loop reference to the previous period of its own variable, that is, support the following writing method Y: = LOOP2 (CON, X, REF (Y, 1));
example 1:
X:=LOOP2(ISUP,H,REF(X,1));//k line is the rising line, take the highest price of the current K line, otherwise take the highest price of the pervious K line that is a rising k line; if it has not appeared before, X returns null
example 2:
BB:=LOOP2(BARSBK=1,LOOP2(L>LV(L,4),L,LV(L,4)),LOOP2(L>REF(BB,1),L,REF(BB,1)));//When holding long position, the lowest price in the first 4 cycles of opening position k line is the starting stop loss point BB, if the lowest price of the subsequent K line is higher than the previous lowest price, taking the current lowest price as stop loss point, otherwise take the previous lowest point to be the stop loss point.
SS:=LOOP2(BARSSK=1,LOOP2(H<HV(H,4),H,HV(H,4)),LOOP2(H<REF(SS,1),H,REF(SS,1)));// When holding short position, the highest price in the first 4 cycles of opening position k line is the starting stop loss point SS, if the highest price is lower than the previous highest price, taking the current highest price as stop loss point, Otherwise take the previous high point as stop lose points
H>HV(H,20),BK;
L<LV(L,20),SK;
C<BB,SP;
C>SS,BP;
AUTOFILTER;
Số chu kỳ mà thời gian hợp lệ đầu tiên đến hiện tại một
BARSCOUNT(COND) The number of cycles that the first valid period to the current one
Note:
1、The return value is the number of cycles from which the COND is calculated from the first valid period and up to now.
2、The return value of BARSCOUNT(COND) on the current k line on the condition that the condition is first established is 0.
example:
BARSCOUNT(MA(C,4));//The calculation MA(C,4) has the first return value to the current number of cycles.
Điều kiện cuối cùng được xác định là đúng
BARSLAST(COND):The last condition COND was established to the current number of cycles
Note:
1、The return value of BARSLAST(COND) on the current k line is 0.
example 1:
BARSLAST(OPEN>CLOSE); //The number of cycles from the previous falling k line to the present
Example 2:
N:=BARSLAST(DATE<>REF(DATE,1))+1;//minute period, the number of k line on the current day.
//Because the condition is established, the return value of BARSLAST(COND) on the current k line is 0, so "+1" is the k-line number of current day.
Điều kiện đầu tiên được thiết lập cho số lượng chu kỳ hiện tại
BARSSINCE(COND) The first condition is established to the current number of cycles.
Note:
1、the return value is the first time the COND is established to the current number of cycles
2、The return value of BARSSINCE (COND) on the current k-line of the condition established for the first time is 0.
example :
BARSSINCE(CLOSE>OPEN);
//Statistics of the number of cycles from the K line that satisfies the condition of the first line to the present.
Thống kê Điều kiện đầu tiên trong giai đoạn N là thiết lập