(2)Sau khi tín hiệu BP được gửi, BARSBP đường K quay lại số thời gian từ đường K để mua và đóng các vị trí đến đường K hiện tại. Nếu điều kiện của BARSBP>=1 được đáp ứng, giá trị là HHV(H, BARSBP+1), tức là giá trị tối đa của các vị trí mua và đóng (bao gồm cả đường K hiện tại khi tín hiệu đóng xuất hiện) đến mức giá cao nhất hiện tại. 3.AA:=IFELSE(BARSBP>=1,REF(C,BARSBP),C);//Lấy giá đóng của dòng K cuối cùng để mua và đóng vị trí: (1)Khi BARSBP của đường K hiện tại gửi tín hiệu BP trả về không, sau đó khi đường K không đáp ứng điều kiện của BARSBP>=1, AA trả về giá đóng của đường K hiện tại. (2) K-line BARSBP sau khi tín hiệu BP được gửi trả về số thời gian của K-line để mua và đóng vị trí từ K-line hiện tại, sau đó AA trả về REF ((C, BARSBP), đó là giá đóng của K-line đóng. (3)Ví dụ: ba đường K: 1, 2 và 3, đường K trong 1 là đường K hiện tại của tín hiệu đóng cửa, sau đó trả về giá đóng cửa của đường K hiện tại, và đường K AA trong 2 và 3 trả về giá đóng cửa của đường K trong 1. ` `
Trả về số lượng lô tín hiệu cho tín hiệu Sig cố định Nth được đếm ngược từ đường K hiện tại (các lệnh ngược lấy số lượng lô vị trí mở).
Sử dụng:REFSIG_VOL(Sig,N);
, xác định kích thước lô của tín hiệu Sig cố định thứ ba tính từ đường K hiện tại. Nếu không có tín hiệu sig, hoặc nếu không có tín hiệu sig cố định, hàm trả về 0.
Nhận xét:
1.Các tín hiệu được hỗ trợ bởi vị trí Sig là:BK
, SK
, BP
, SP
, BPK
, SPK
,CLOSEOUT
,STOP
.
2.Nếu đếm ngược đến tín hiệu Sig cố định nth là trên đường K hiện tại, thì hàm sẽ quay trở lại lô tín hiệu hiện tại.
4.Khi N là 0 hoặc không, hàm trả về 0.
5.Các thông số N hỗ trợ các biến.
Ví dụ:
// If there are 5 K-lines from the current K-line where the third fixed BK signal is located from the bottom of the current K-line, and the number of signal lots is greater than 2, close all positions
REFSIG_PLACE(BK,3)=5&&REFSIG_VOL(BK,3)>2,SP(BKVOL);
Trở lại giá tín hiệu của tín hiệu Sig cố định thứ ba từ đầu của đường K hiện tại.
Sử dụng:REFSIG_PRICE(Sig,N);
Nếu không có tín hiệu Sig, hoặc nếu không có tín hiệu Sig cố định, hàm trả về 0.
Nhận xét:
1.Các tín hiệu được hỗ trợ bởi vị trí Sig là:BK
, SK
, BP
, SP
, BPK
, SPK
,CLOSEOUT
,STOP
.
2.Nếu có một tín hiệu Sig cố định trên đường K hiện tại, thì khi hàm tính tín hiệu, tín hiệu của đường K hiện tại được bao gồm.
3.Khi N là 0 hoặc không, hàm trả về không.
4.Các thông số N hỗ trợ các biến.
Ví dụ:
// If the opening price of the 3rd last fixed BK signal from the current K-line is 3000, and the long position is greater than 0, sell and close the position
REFSIG_PRICE(BK,3)=3000&&BKVOL>0,SP;
Đếm số tín hiệu X trong N thời gian.
Sử dụng:COUNTSIG(X,N);
Đếm số tín hiệu X trong N thời gian.
X có thểBK
, SK
, SP
, BP
, SPK
, BPK
,CLOSEOUT
,STOP
.
Nhận xét:
1.Trong giai đoạn thống kê,
(1) Bao gồm dòng K hiện tại.
(2) Nếu N bằng 0, thì đếm từ giá trị hợp lệ đầu tiên.
(3) Khi N là một giá trị hợp lệ, nhưng số K-line hiện tại nhỏ hơn N, đếm từ đầu tiên đến đoạn hiện tại.
(4) Giá trị trả về là null khi N là null.
(5) N có thể là một biến.
2.Khi đếm tín hiệu:
(1) Phương pháp thực hiện tín hiệu được chọn làm tín hiệu xác nhận sau khi kết thúc đường K hoặc xem xét sau khi kết thúc đường K (ví dụ: ghi CHECKSIG(SIG,
Ví dụ:
N:=BARSLAST(DATE<>REF(DATE,1))+1;
BKN:=COUNTSIG(BK,N);
MA5:=MA(C,5);
BKN=0&&C>MA5,BK; // There is no BK signal in the day and the latest price is greater than the 5-period moving average, then buy and open a position
Lấy vị trí đường K của tín hiệu vị trí mở được chỉ định.
Sử dụng:ENTRYSIG_PLACE(N);
Nếu không có tín hiệu để mở một vị trí, hàm trả về null.
Nhận xét:
1.Các tín hiệu cho việc mở các vị trí là:BK
, SK
, BPK
, SPK
.
2.Một vị trí được coi là một giao dịch hoàn chỉnh từ thời điểm nó được mở cho đến khi nó được giữ ở mức 0.
3.Nếu số tín hiệu mở trong một giao dịch hoàn chỉnh nhỏ hơn N, hàm trả về null.
4.Vị trí đường K là số từ đường K hiện tại đến đường K nơi tín hiệu mở được chỉ định.
5.Khi N là 0 hoặc không, hàm trả về không.
6.Đối tượng N không được hỗ trợ như một biến.
Ví dụ:
ENTRYSIG_PLACE(3)=5&&BKVOL>0,SP; // If the K-line of the third position opening signal is 5 K-lines away from the current K-line, and the long position is greater than 0, sell and close the position
Lấy giá của tín hiệu vị trí mở được chỉ định.
Sử dụng:ENTRYSIG_PRICE(N);
Nếu không có tín hiệu để mở một vị trí, hàm trả về null.
Nhận xét:
1.Các tín hiệu cho việc mở các vị trí là:BK
, SK
, BPK
, SPK
.
2.Một vị trí được coi là một giao dịch hoàn chỉnh từ thời điểm nó được mở cho đến khi nó được giữ ở mức 0.
3.Nếu số tín hiệu mở trong một giao dịch hoàn chỉnh nhỏ hơn N, hàm trả về null.
4.Khi N là 0 hoặc không, hàm trả về không.
5.Đối tượng N không được hỗ trợ như một biến.
6.Phát tính hàm này bao gồm trượt.
7.Mô hình giá đóng: Giá trị của hàm đường K hiện tại của tín hiệu được chỉ định sẽ không thay đổi.
Mô hình giá lệnh: Trả về giá của tín hiệu mở mốc nth của giao dịch hiện tại tại đường K hiện tại của tín hiệu được chỉ định.
Ví dụ:
ENTRYSIG_PRICE(3)=3000&&BKVOL>0,SP; // If the opening price of the 3rd fixed opening signal is 3000, and the long position is greater than 0, sell and close the position
Lấy lô tín hiệu của tín hiệu mở vị trí được chỉ định.
Sử dụng:ENTRYSIG_VOL(N);
Nếu không có tín hiệu để mở một vị trí, hàm trả về null.
Nhận xét:
1.Các tín hiệu cho việc mở các vị trí là:BK
, SK
, BPK
, SPK
.
2.Một vị trí được coi là một giao dịch hoàn chỉnh từ thời điểm nó được mở cho đến khi nó được giữ ở mức 0.
3.Nếu số tín hiệu mở trong một giao dịch hoàn chỉnh nhỏ hơn N, hàm trả về null.
4.Khi N là 0 hoặc không, hàm trả về không.
5.Đối tượng N không được hỗ trợ như một biến.
6.Mô hình giá đóng: Giá trị của hàm đường K hiện tại của tín hiệu được chỉ định sẽ không thay đổi.
Mô hình giá lệnh: Tại dòng K hiện tại của tín hiệu được chỉ định, nó trở lại số lô tín hiệu của tín hiệu mở đầu thứ N của giao dịch hiện tại.
Ví dụ:
ENTRYSIG_PRICE(3)=3000&&ENTRYSIG_VOL(3)>2,SP; // If the opening price of the 3rd fixed opening signal is 3000, and the signal lot number of the 3rd fixed opening signal is greater than 2, sell and close the position
Lấy vị trí đường K của tín hiệu đóng đã chỉ định.
Sử dụng:EXITSIG_PLACE(N);
, lấy vị trí của đường K của tín hiệu đóng cửa thứ ba trong giao dịch hoàn chỉnh. Nếu không có tín hiệu đóng cửa, hàm trả về null.
Nhận xét:
1.Các tín hiệu đóng các vị trí là:BP
, SP
, CLOSEOUT
, STOP
.
2.Một vị trí được coi là một giao dịch hoàn chỉnh từ thời điểm nó được mở cho đến khi nó được giữ ở mức 0.
3.Khi số tín hiệu đóng là nhỏ hơn N, hàm trả về null.
4.Vị trí đường K đề cập đến số lượng đường K từ đường K hiện tại đến tín hiệu đóng được chỉ định.
5.Khi N là 0 hoặc không, hàm trả về không.
6.Đối tượng N không được hỗ trợ như một biến.
Ví dụ:
EXITSIG_PLACE(3)=5&&BKVOL<=0,BK; // If the K-line of the third closing signal is 5 K-lines away from the current K-line, and there is no long position, buy to open a position
Lấy giá của tín hiệu vị trí đóng định.
Sử dụng:EXITSIG_PRICE(N);
Nếu không có tín hiệu đóng cửa, hàm trả về null.
Nhận xét:
1.Các tín hiệu đóng các vị trí là:BP
, SP
, CLOSEOUT
, STOP
.
2.Một vị trí được coi là một giao dịch hoàn chỉnh từ thời điểm nó được mở cho đến khi nó được giữ ở mức 0.
3.Khi số tín hiệu đóng trong một giao dịch hoàn chỉnh nhỏ hơn N, hàm trả về null.
4.Khi N là 0 hoặc không, hàm trả về không.
5.Đối tượng N không được hỗ trợ như một biến.
6.Phát tính hàm này bao gồm trượt.
7.Mô hình giá đóng: Giá trị của hàm đường K hiện tại của tín hiệu được chỉ định sẽ không thay đổi.
Mô hình giá lệnh: Trả về giá của tín hiệu mở mốc nth của giao dịch hiện tại tại đường K hiện tại của tín hiệu được chỉ định.
Ví dụ:
EXITSIG_PRICE(3)=3000&&BKVOL>0,SP; // If the closing price of the 3rd fixed closing signal is 3000, and the long position is greater than 0, sell and close the position
Lấy lô tín hiệu của tín hiệu vị trí đóng định.
Sử dụng:EXITSIG_VOL(N)
Lấy kích thước lô tín hiệu của tín hiệu đóng cửa thứ ba trong một giao dịch hoàn chỉnh.
Nhận xét:
1.Các tín hiệu đóng các vị trí là:BP
, SP
, CLOSEOUT
, STOP
.
2.Một vị trí được coi là một giao dịch hoàn chỉnh từ thời điểm nó được mở cho đến khi nó được giữ ở mức 0.
3.Khi số tín hiệu đóng trong một giao dịch hoàn chỉnh nhỏ hơn N, hàm trả về null.
4.Khi N là 0 hoặc không, hàm trả về không.
5.Đối tượng N không được hỗ trợ như một biến.
6.Mô hình giá đóng: Giá trị của hàm đường K hiện tại của tín hiệu được chỉ định sẽ không thay đổi.
Mô hình giá lệnh: Ở dòng K hiện tại của tín hiệu được chỉ định, nó trở lại số lô tín hiệu của tín hiệu đóng cửa thứ nhì của giao dịch hiện tại.
Ví dụ:
EXITSIG_PRICE(3)=3000&&EXITSIG_VOL(3)>2,BK; // If the closing price of the 3rd fixed closing signal is 3000, and the signal lot number of the 3rd fixed closing signal is greater than 2, buy to open the position
Lấy số đơn đặt hàng.
MYVOL take the lot number of orders.
Usage: Take the lot number of orders, it is mostly used for lot calculation when multiple contracts are loaded in the scale in/dump model.
Remark:
Backtesting: Return to the lot size set in the backtesting parameters.
Examples:
// When the order lot size in the loading parameter is set to 3, the order lot size of BK written following is 6
C>O,BK(2*MYVOL);
C<O,SP(BKVOL);
Số tiền có sẵn trong tài khoản.
MONEY funds available in the account.
Usage: MONEY returns to the available funds in the account for calculation of positions, lot sizes, etc.
Calculation methods:
1.The initial value of MONEY in the account is the starting capital set in the margin parameters.
2.The initial value of MONEY in the historical backtesting is the initial capital set in the backtesting parameters.
3.The MONEY value of the current K-line of the position opening signal: available funds before opening a position - margin for holding positions - handling fee, where margin for holding positions = opening price * margin ratio * trading unit * lot size.
4.Money value of K-line not closed after opening = money value of K-line before opening signal + floating profit and loss profit.
5.The MONEY value of the current K-line of the closing signal: available funds before closing the position + profit and loss of closing the position + margin released by closing the position - handling fee, where the margin released by closing the position = opening price * margin ratio * trading unit * lot size.
Remarks:
1.The signal execution method is 'confirm the order after the K-line is completed' or 'XX order and review after the K-line is completed':
a.When the signal to open a position is a K-line, the return value of MONEY is the available funds of the previous K-line - margin for opening a position - handling fee.
b.When the closing signal is a K-line, the return value of MONEY is the available funds of the previous K-line + closing profit and loss + margin released by the position - handling fee.
2.Select the signal execution method as 'send a signal to place an order without reviewing':
a.When the signal to open a position is a K-line, the return value of MONEY is the available funds of the previous K-line - margin for opening a position - handling fee.
b.When the closing signal is a K-line, the return value of MONEY is the available funds of the previous K-line + closing profit and loss + margin released by the position - handling fee.
3.The signal execution method is 'When the K-line is completed to confirm the signal to place an order', the closing profit and loss = (the closing price of the K-line of the closing signal - the opening price) * lot size * trading unit - handling fee.
4.When the signal execution method is 'the signal is placed immediately without review', the closing profit and loss = (the order price of the closing signal - the opening price) * lot size * trading unit - handling fee.
5.After the account is initialized, the return value of MONEY is the funds available in the initialization box.
Examples:
K:=MONEY*0.2/(C*MARGIN*UNIT+FEE); // The number of lots that can be opened with 20% of the account's available funds (this writing method is applicable to contracts that charge a fee based on a fixed number of lots), FEE custom, or calculated
Tài chính tài khoản.
MONEYTOT account Equity.
Usage: MONEYTOT returns to the current account equity, and the model performs position control. It is used for fund management such as order lot size.
Calculation method: MONEYTOT=Account available funds + position margin.
Remarks:
1.The initial value of MONEYTOT in the account is the initial capital set in the margin parameters.
2.The initial value of MONEYTOT in the historical backtesting is the initial capital set in the backtesting parameters.
3.When the account is initialized:
a.The current signal is the opening signal, and the return value of MONEYTOT is the available funds of the account in the initialization box.
b.The current signal is the closing signal, then MONEYTOT returns to the available funds of the account + margin in the initialization box.
4.The signal to open a position is the K-line: MONEYTOT = available funds in the account + margin for holding positions.
5.After opening a position and before closing a position: MONEYTOT returns to the available funds in the current account + margin for holding positions.
6.The current k-line of the closing signal: when the position is 0, MONEYTOT = available funds; when the position is not 0, MONEYTOT = available funds + margin occupied by the position.
Remark:
The available funds in the position list are the available funds including floating profit and loss (= current equity - margin occupied by positions).
Examples:
K:=MONEYTOT*0.2/(C*MARGIN*UNIT+FEE); // The number of lots that can be opened with 20% of the account equity(this writing method is applicable to contracts that charge a fixed lot size), FEE customization, or calculation.
Quay lại số tiền có sẵn trong tài khoản giao dịch, tương đương vớiMONEY
.
Sử dụng:ACCOUNTMONEY
Trả lại tiền có sẵn trong tài khoản giao dịch.
Quay lại vào vốn chủ sở hữu trong tài khoản giao dịch, tương đương vớiMONEYTOT
.
Sử dụng:ACCOUNTMONEYTOT
Trả lại cho vốn chủ sở hữu trong tài khoản giao dịch.
Số lượng tiền xu có sẵn trong tài khoản giao ngay tiền kỹ thuật số.
1.It is used for digital currency spot to obtain the current number of available coins.
Leverage.
Tiền mặt tiền kỹ thuật số
a := MARGIN; // Fixed as value 1
Tiền tương lai tiền kỹ thuật số
Tiền tương lai tiền kỹ thuật số đặt đòn bẩy.
a := MARGIN; // Declare the variable a and assign the current contract leverage to a
Nhận được giá bán củaTICK
Một.
Nhận được giá bán củaTICK
cho hai người.
Nhận được giá bán củaTICK
cho ba người.
Nhận được giá bán củaTICK
cho bốn người.
Nhận được giá bán củaTICK
trong năm năm.
Nhận được khối lượng bán hàng củaTICK
Một.
Nhận được khối lượng bán hàng củaTICK
cho hai người.
Nhận được khối lượng bán hàng củaTICK
cho ba người.
Nhận được khối lượng bán hàng củaTICK
cho bốn người.
Nhận được khối lượng bán hàng củaTICK
trong năm năm.
Nhận giá thầu củaTICK
Một.
Nhận giá thầu củaTICK
cho hai người.
Nhận giá thầu củaTICK
cho ba người.
Nhận giá thầu củaTICK
cho bốn người.
Nhận giá thầu củaTICK
trong năm năm.
Nhận khối lượng giá thầu củaTICK
Một.
Nhận khối lượng giá thầu củaTICK
cho hai người.
Nhận khối lượng giá thầu củaTICK
cho ba người.
Nhận khối lượng giá thầu củaTICK
cho bốn người.
Nhận khối lượng giá thầu củaTICK
trong năm năm.
Nhận được giá mới nhất củaTICK
.
Một thông điệp sai được gửi và chương trình sẽ kết thúc.
EXIT('msg'); // Parameters need to be passed in, string parameters need to be wrapped with '', an error is thrown, the error text is string msg
Log output
INFO(cond, param, ...);
1.cond is a condition variable, output log if true.
2.A condition variable can be followed by multiple variadic parameters.
Example:
INFO(1, C, '<-closing price');
Sử dụng CONTRACT để có được mã hợp đồng trao đổi của bản đồ hợp đồng hiện tại.
INFO(1, CONTRACT);
Sử dụng lệnh DATA để tải dữ liệu.
(*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*)
A:DATA('https://www.fmz.com/upload/asset/32bf73a69fc12d36e76.json');
INFO(1, CONTRACT, A);
C>HV(H, 10),SPK;
C<LV(L, 15),BPK;
AUTOFILTER;
Sử dụng['attribute name']
để lấy giá trị của một thuộc tính trong dữ liệu.https://www.fmz.com/upload/asset/1ef31d778467ed9dd00.json
là các liên kết dữ liệu bên ngoài, nó có thể là một liên kết đến dữ liệu được cung cấp bởi các chương trình dịch vụ khác, hoặc nó có thể là dữ liệu được cung cấp bởi trung tâm dữ liệu của nền tảng giao dịch FMZ Quant, chẳng hạn như phần bình luận trong ví dụ(*Consumption Index: DATA('CPI')[ 'city'];*)
, sử dụng mãCPI
để lấy dữ liệu (đã chưa mở tất cả dữ liệu).
(*backtest
start: 2018-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*)
Consumption index: DATA('https://www.fmz.com/upload/asset/1ef31d778467ed9dd00.json')['city'];
(*Consumption index: DATA('CPI')['city'];*)
Consumption index > HV(Consumption index, 90),BPK;
Consumption index < LV(Consumption index, 90),SPK;
AUTOFILTER;
Điểm giá tối thiểu
Trên sàn giao dịch tương lai BITMEX, điểm giá tối thiểu là 0,5. Trên sàn giao dịch tương lai OKEX, điểm giá tối thiểu là 0,01.
Khi giá của một số hợp đồng tương đối thấp, cần phải chú ý đến việc thiết lập các tham số, chẳng hạn như độ chính xác của giá, độ chính xác của loại giao dịch.
Số lần tối đa của biến
Nó ảnh hưởng đến số lượng biểu đồ K-line BARs theo cùng một cách gọi cácSetMaxBarLen
chức năng trongjavascript
Chiến lược thì có.
Chiến lược MyLanguage, số vị trí được hiển thị trên bảng trong cột trạng thái.
Tất cả là số lượng thực tế của các vị trí nắm giữ.
Phán quyết có điều kiện (không nên viết theo cách này).
IF H > C THEN
BEGIN
X:=10;
END
Ví dụ:
Khi mô hình giá thời gian thực được sử dụng, thanh K-line mới được phát hiện:
VARIABLE:N:0;
IF N <> BARPOS AND ISLASTBAR = 1 THEN
BEGIN
N:=BARPOS;
INFO(1, '123');
END