(2)После отправки сигнала BP K-линия BARSBP возвращает количество периодов от K-линии для покупки и закрытия позиций к текущей K-линии. Если условие BARSBP>=1 выполнено, значение составляет HHV(H, BARSBP+1), то есть максимальное значение покупательных и закрывающих позиций (включая текущую K-линию при появлении сигнала закрытия) к текущей самой высокой цене. 3.AA:=IFELSE(BARSBP>=1,REF(C,BARSBP),C);//Взять цену закрытия последней линии K для покупки и закрытия позиции: (1)Когда BARSBP текущей K-линии, отправляющей сигнал BP, возвращает null, то когда K-линия не отвечает условию BARSBP>=1, AA возвращается к цене закрытия текущей K-линии. (2) После отправки сигнала BP K-линия BARSBP возвращается к номеру периода K-линии для покупки и закрытия позиции с текущей K-линии, затем AA возвращается к REF ((C, BARSBP), что является ценой закрытия закрывающейся K-линии. (3)Например: три линии K: 1, 2 и 3, линия K в 1 - это текущая линия K сигнала закрытия, затем возвращается к цене закрытия текущей линии K, а линия K AA в 2 и 3 возвращает цену закрытия линии K в 1. ` `
Возвращает количество лотов сигнала для N-го фиксированного Sig-сигнала, отсчитанного от текущей K-линии (обратные заказы принимают количество лотов открытых позиций).
Использование:REFSIG_VOL(Sig,N);
, определить размер лота nth фиксированного сигнала Sig, подсчитывая с текущей K-линии. Если нет сигнала Sig, или если нет фиксированного сигнала Sig, функция возвращает 0.
Примечания:
1.Сигналы, поддерживаемые позицией Sig:BK
, SK
, BP
, SP
, BPK
, SPK
,CLOSEOUT
,STOP
- Да.
2.Если отсчет до N-го фиксированного сигнала Sig находится на текущей K-линии, то функция возвращается к текущей партии сигнала.
4.Когда N равен 0 или нулю, функция возвращает 0.
5.Параметр N поддерживает переменные.
Примеры:
// 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);
Возвращается к цене сигнала N-го фиксированного Sig-сигнала с начала текущей линии K.
Использование:REFSIG_PRICE(Sig,N);
, определить цену сигнала на нв фиксированном сигнале Sig из текущей линии K. Если нет сигнала Sig, или если нет фиксированного сигнала Sig, функция возвращает 0.
Примечания:
1.Сигналы, поддерживаемые позицией Sig:BK
, SK
, BP
, SP
, BPK
, SPK
,CLOSEOUT
,STOP
- Да.
2.Если на текущей K-линии есть фиксированный Sig-сигнал, то при вычислении сигнала функцией включается сигнал текущей K-линии.
3.Когда N равен 0 или нулю, функция возвращает нуль.
4.Параметр N поддерживает переменные.
Примеры:
// 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;
Подсчитайте количество сигналов X в N периодов.
Использование:COUNTSIG(X,N);
Подсчитайте количество сигналов X в N периодов.
X может бытьBK
, SK
, SP
, BP
, SPK
, BPK
,CLOSEOUT
,STOP
.
Примечания:
1.В течение статистического периода
(1) Содержит текущую K-линию.
(2) Если N равна 0, то начинайте от первого действительного значения.
(3) Когда N является действительным значением, но текущее число K-линий меньше N, считать от первой до текущего периода.
(4)Вернутое значение равно нулю, когда N равно нулю.
(5) N может быть переменной.
2.При подсчете сигналов:
(1)Метод исполнения сигнала выбирается в качестве подтверждающего сигнала после завершения K-линии или проверки после завершения K-линии (например: запишите CHECKSIG(SIG,
Примеры:
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
Принять положение K-линии указанного сигнала открытия положения.
Использование:ENTRYSIG_PLACE(N);
Если нет сигнала для открытия позиции, функция возвращает null.
Примечания:
1.Сигналы для открытия позиций:BK
, SK
, BPK
, SPK
- Да.
2.Позиция считается завершенной с момента ее открытия и до момента ее хранения на уровне 0.
3.Если количество открытых сигналов в полной сделке меньше N, функция возвращает null.
4.Положение линии K - это число от текущей линии K до линии K, где расположен указанный сигнал открытия.
5.Когда N равен 0 или нулю, функция возвращает нуль.
6.Параметр N не поддерживается в качестве переменной.
Примеры:
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
Возьмите цену указанного сигнала открытой позиции.
Использование:ENTRYSIG_PRICE(N);
Если нет сигнала для открытия позиции, функция возвращает null.
Примечания:
1.Сигналы для открытия позиций:BK
, SK
, BPK
, SPK
- Да.
2.Позиция считается завершенной с момента ее открытия и до момента ее хранения на уровне 0.
3.Если количество открытых сигналов в полной сделке меньше N, функция возвращает null.
4.Когда N равен 0 или нулю, функция возвращает нуль.
5.Параметр N не поддерживается в качестве переменной.
6.Расчет этой функции включает скольжение.
7.Модель ценового закрытия: значение текущей функции K-линии указанного сигнала не изменится.
Модель цены заказа: возвращение к цене N-го открытия сигнала текущей торговли на текущей линии K указанного сигнала.
Примеры:
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
Возьмите сигнальный пакет указанного сигнала открытия позиции.
Использование:ENTRYSIG_VOL(N);
Если нет сигнала для открытия позиции, функция возвращает null.
Примечания:
1.Сигналы для открытия позиций:BK
, SK
, BPK
, SPK
- Да.
2.Позиция считается завершенной с момента ее открытия и до момента ее хранения на уровне 0.
3.Если количество открытых сигналов в полной сделке меньше N, функция возвращает null.
4.Когда N равен 0 или нулю, функция возвращает нуль.
5.Параметр N не поддерживается в качестве переменной.
6.Модель ценового закрытия: значение текущей функции K-линии указанного сигнала не изменится.
Модель цены заказа: на текущей K-линии указанного сигнала он возвращается к номеру лота сигнала N-го открытого сигнала текущей торговли.
Примеры:
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
Примите положение линии K указанного закрытия.
Использование:EXITSIG_PLACE(N);
Если нет сигнала закрытия, функция возвращает null.
Примечания:
1.Сигналы для закрытия позиций:BP
, SP
, CLOSEOUT
, STOP
- Да.
2.Позиция считается завершенной с момента ее открытия и до момента ее хранения на уровне 0.
3.Когда количество сигналов закрытия меньше N, функция возвращает нуль.
4.Положение K-линии относится к числу K-линий от текущей K-линии до обозначенного закрывающего сигнала.
5.Когда N равен 0 или нулю, функция возвращает нуль.
6.Параметр N не поддерживается в качестве переменной.
Примеры:
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
Возьмите цену указанного сигнала закрытия позиции.
Использование:EXITSIG_PRICE(N);
Если нет сигнала закрытия, функция возвращает нуль.
Примечания:
1.Сигналы для закрытия позиций:BP
, SP
, CLOSEOUT
, STOP
- Да.
2.Позиция считается завершенной с момента ее открытия и до момента ее хранения на уровне 0.
3.Когда количество сигналов закрытия в полной торговле меньше N, функция возвращает нуль.
4.Когда N равен 0 или нулю, функция возвращает нуль.
5.Параметр N не поддерживается в качестве переменной.
6.Расчет этой функции включает скольжение.
7.Модель ценового закрытия: значение текущей функции K-линии указанного сигнала не изменится.
Модель цены заказа: возвращение к цене N-го открытия сигнала текущей торговли на текущей линии K указанного сигнала.
Примеры:
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
Возьмите сигнал партии указанного сигнала закрытия позиции.
Использование:EXITSIG_VOL(N)
Если нет сигнала закрытия позиции, функция возвращает null.
Примечания:
1.Сигналы для закрытия позиций:BP
, SP
, CLOSEOUT
, STOP
- Да.
2.Позиция считается завершенной с момента ее открытия и до момента ее хранения на уровне 0.
3.Когда количество сигналов закрытия в полной торговле меньше N, функция возвращает нуль.
4.Когда N равен 0 или нулю, функция возвращает нуль.
5.Параметр N не поддерживается в качестве переменной.
6.Модель ценового закрытия: значение текущей функции K-линии указанного сигнала не изменится.
Модель цены заказа: при текущей K-линии указанного сигнала он возвращается к номеру лота сигнала N-го заключительного сигнала текущей торговли.
Примеры:
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
Возьми номер заказа.
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);
Средства, имеющиеся на счете.
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
Собственный счет.
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.
Возврат средств, имеющихся на торговом счете, эквивалентMONEY
.
Использование:ACCOUNTMONEY
Возвращается к имеющимся средствам на торговом счете.
Возврат к собственному капиталу на торговом счете, эквивалентныйMONEYTOT
.
Использование:ACCOUNTMONEYTOT
Возвращается в собственный капитал на торговом счете.
Количество монет, доступных на спотовом счете цифровой валюты.
1.It is used for digital currency spot to obtain the current number of available coins.
Leverage.
Спотная цифровая валюта
a := MARGIN; // Fixed as value 1
Фьючерсы на цифровую валюту
Фьючерсы на цифровую валюту устанавливают рычаг кредитования.
a := MARGIN; // Declare the variable a and assign the current contract leverage to a
Получить цену продажиTICK
Во-первых.
Получить цену продажиTICK
Для двоих.
Получить цену продажиTICK
За три.
Получить цену продажиTICK
За четыре.
Получить цену продажиTICK
За пять.
Получить объем продажTICK
Во-первых.
Получить объем продажTICK
Для двоих.
Получить объем продажTICK
За три.
Получить объем продажTICK
За четыре.
Получить объем продажTICK
За пять.
Получить цену предложенияTICK
Во-первых.
Получить цену предложенияTICK
Для двоих.
Получить цену предложенияTICK
За три.
Получить цену предложенияTICK
За четыре.
Получить цену предложенияTICK
За пять.
Получить объем предложенияTICK
Во-первых.
Получить объем предложенияTICK
Для двоих.
Получить объем предложенияTICK
За три.
Получить объем предложенияTICK
За четыре.
Получить объем предложенияTICK
За пять.
Получите последнюю цену наTICK
.
Выбрасывается сообщение об ошибке и программа выходит.
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
Выпуск журнала
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');
Используйте CONTRACT, чтобы получить код обменного контракта на текущем настройке контракта.
INFO(1, CONTRACT);
Используйте команду DATA для загрузки данных.
(*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;
Использование['attribute name']
чтобы взять значение атрибута в данных.https://www.fmz.com/upload/asset/1ef31d778467ed9dd00.json
является внешние ссылки данных, это может быть ссылка на данные, предоставленные другими сервисными программами, или это может быть данные, предоставленные центром данных торговой платформы FMZ Quant, такие как часть комментариев в примере(*Consumption Index: DATA('CPI')[ 'city'];*)
, используйте кодCPI
чтобы получить данные (данные еще не все открыты).
(*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;
Минимальные цены
На бирже фьючерсов BITMEX минимальные цены составляют 0,5. На бирже фьючерсов OKEX минимальные цены составляют 0,01.
Когда цена некоторых контрактов относительно низкая, необходимо обратить внимание на то, уместно ли устанавливать такие параметры, как точность ценообразования валюты, точность торгового совокупности.
Максимальное количество периодов переменной
Это влияет на количество диаграммы K-линии BARs таким же образом, что звонкиSetMaxBarLen
Функция вjavascript
Стратегия имеет значение.
Стратегия MyLanguage, количество позиций, отображаемых в таблице в столбце состояния.
Все это фактическое количество позиций.
Условное решение (не рекомендуется писать таким образом).
IF H > C THEN
BEGIN
X:=10;
END
Пример:
При использовании модели цены в режиме реального времени обнаруживается новая строка K-линии:
VARIABLE:N:0;
IF N <> BARPOS AND ISLASTBAR = 1 THEN
BEGIN
N:=BARPOS;
INFO(1, '123');
END