(2) Após o envio do sinal BP, o BARSBP da linha K retorna ao número de períodos desde a linha K para compras e fechamentos de posições até a linha K atual. Se a condição de BARSBP>=1 estiver satisfeita, o valor é HHV(H, BARSBP+1), ou seja, o valor máximo das posições de compra e fechamento (incluindo a linha K atual quando o sinal de fechamento aparece) ao preço mais alto atual. 3.AA:=IFELSE(BARSBP>=1,REF(C,BARSBP),C);//Tome o preço de fechamento da última linha K para comprar e fechar a posição: (1)Quando o BARSBP da linha K atual que envia o sinal BP retorna nulo, então quando a linha K não atende à condição de BARSBP>=1, AA retorna ao preço de fechamento da linha K atual. (2) A linha K BARSBP após o envio do sinal BP retorna para o número de período da linha K para comprar e fechar a posição da linha K atual, em seguida, AA retorna para REF ((C, BARSBP), que é o preço de fechamento da linha K de fechamento. (3)Por exemplo: três linhas K: 1, 2 e 3, a linha K em 1 é a linha K corrente do sinal de fechamento, depois retorna ao preço de fechamento da linha K corrente, e a linha K AA em 2 e 3 retorna ao preço de fechamento da linha K em 1. Não, não.
Retorna o número de lotes de sinal para o n.o sinal Sig fixo contado a partir da linha K atual (ordens backhand tomam o número de lotes de posição aberta).
Utilização:REFSIG_VOL(Sig,N);
, determine o tamanho do lote do nth sinal de sig fixa contando a partir da linha K atual.
Observações:
1.Os sinais suportados pela posição Sig são:BK
, SK
, BP
, SP
, BPK
, SPK
,CLOSEOUT
,STOP
- Não.
2.Se a contagem regressiva para o n.o sinal Sig fixo estiver na linha K corrente, a função retorna ao lote de sinal corrente.
4.Quando N é igual a 0 ou nulo, a função retorna 0.
5.O parâmetro N suporta variáveis.
Exemplos:
// 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);
Retorna ao preço do sinal do n.o sinal Sig fixo a partir do início da linha K atual.
Utilização:REFSIG_PRICE(Sig,N);
Se não houver sinal Sig, ou se não houver sinal Sig fixo, a função retorna 0.
Observações:
1.Os sinais suportados pela posição Sig são:BK
, SK
, BP
, SP
, BPK
, SPK
,CLOSEOUT
,STOP
- Não.
2.Se houver um sinal Sig fixo na linha K de corrente, quando a função calcula o sinal, o sinal da linha K de corrente é incluído.
3.Quando N é 0 ou nulo, a função retorna nulo.
4.O parâmetro N suporta variáveis.
Exemplos:
// 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;
Contar o número de sinais X em N períodos.
Utilização:COUNTSIG(X,N);
Contar o número de sinais X em N períodos.
X pode serBK
, SK
, SP
, BP
, SPK
, BPK
,CLOSEOUT
,STOP
.
Observações:
1.Durante o período estatístico,
(1) Contém a linha K corrente.
(2) Se N for 0, contar a partir do primeiro valor válido.
(3) Quando N é um valor válido, mas o número atual de linhas K é inferior a N, contar do primeiro até ao período atual.
(4) O valor de retorno é nulo quando N é nulo.
(5) N pode ser uma variável.
2.Ao contar sinais:
(1)O método de execução do sinal é selecionado como sinal de confirmação após a conclusão da linha K ou a revisão após a conclusão da linha K (por exemplo: escrever CHECKSIG(SIG,
Exemplos:
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
Tomar a posição da linha K do sinal de posição de abertura especificado.
Utilização:ENTRYSIG_PLACE(N);
Se não houver sinal para abrir uma posição, a função retorna nulo.
Observações:
1.Os sinais para a abertura de posições são:BK
, SK
, BPK
, SPK
- Não.
2.Uma posição é considerada como uma transacção completa a partir do momento em que é aberta até ser mantida a um valor igual a 0.
3.Se o número de sinais abertos num negócio completo for inferior a N, a função devolve nulo.
4.A posição da linha K é o número entre a linha K corrente e a linha K onde se encontra o sinal de abertura especificado.
5.Quando N é 0 ou nulo, a função retorna nulo.
6.O parâmetro N não é suportado como variável.
Exemplos:
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
Tomar o preço do sinal de posição aberta especificado.
Utilização:ENTRYSIG_PRICE(N);
Se não houver sinal para abrir uma posição, a função retorna nulo.
Observações:
1.Os sinais para a abertura de posições são:BK
, SK
, BPK
, SPK
- Não.
2.Uma posição é considerada como uma transacção completa a partir do momento em que é aberta até ser mantida a um valor igual a 0.
3.Se o número de sinais abertos num negócio completo for inferior a N, a função devolve nulo.
4.Quando N é 0 ou nulo, a função retorna nulo.
5.O parâmetro N não é suportado como variável.
6.O cálculo desta função inclui o deslizamento.
7.Modelo de preço de fechamento: o valor da função corrente da linha K do sinal especificado não será alterado.
Modelo de preço de comando: Retorno ao preço do n.o sinal de abertura da negociação corrente na linha K corrente do sinal especificado.
Exemplos:
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
Tomar o lote de sinal do sinal de abertura da posição especificada.
Utilização:ENTRYSIG_VOL(N);
Se não houver sinal para abrir uma posição, a função retorna nulo.
Observações:
1.Os sinais para a abertura de posições são:BK
, SK
, BPK
, SPK
- Não.
2.Uma posição é considerada completada a partir do momento em que é aberta até ser mantida a um valor igual a 0.
3.Se o número de sinais abertos num negócio completo for inferior a N, a função devolve nulo.
4.Quando N é 0 ou nulo, a função retorna nulo.
5.O parâmetro N não é suportado como variável.
6.Modelo de preço de encerramento: o valor da função corrente da linha K do sinal especificado não será alterado.
Modelo de preço de comando: na linha K atual do sinal especificado, ele retorna ao número do lote de sinal do n.o sinal de abertura da negociação atual.
Exemplos:
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
Tomar a posição da linha K do sinal de fechamento especificado.
Utilização:EXITSIG_PLACE(N);
Se não houver sinal de fechamento, a função retorna nulo.
Observações:
1.Os sinais para o encerramento das posições são:BP
, SP
, CLOSEOUT
, STOP
- Não.
2.Uma posição é considerada como uma transacção completa a partir do momento em que é aberta até ser mantida a um valor igual a 0.
3.Quando o número de sinais de fechamento for inferior a N, a função devolve nulo.
4.A posição da linha K refere-se ao número de linhas K entre a linha K corrente e o sinal de encerramento designado.
5.Quando N é 0 ou nulo, a função retorna nulo.
6.O parâmetro N não é suportado como variável.
Exemplos:
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
Tomar o preço do sinal de posição de fechamento especificado.
Utilização:EXITSIG_PRICE(N);
Se não houver sinal de fechamento, a função retorna nulo.
Observações:
1.Os sinais para o encerramento das posições são:BP
, SP
, CLOSEOUT
, STOP
- Não.
2.Uma posição é considerada como uma transacção completa a partir do momento em que é aberta até ser mantida a um valor igual a 0.
3.Quando o número de sinais de encerramento numa negociação completa for inferior a N, a função retorna nulo.
4.Quando N é 0 ou nulo, a função retorna nulo.
5.O parâmetro N não é suportado como variável.
6.O cálculo desta função inclui o deslizamento.
7.Modelo de preço de fechamento: o valor da função corrente da linha K do sinal especificado não será alterado.
Modelo de preço de comando: Retorno ao preço do n.o sinal de abertura da negociação corrente na linha K corrente do sinal especificado.
Exemplos:
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
Tomar o lote de sinal do sinal de posição de fechamento especificado.
Utilização:EXITSIG_VOL(N)
Se não houver sinal de posição fechada, a função retorna nulo.
Observações:
1.Os sinais para o encerramento das posições são:BP
, SP
, CLOSEOUT
, STOP
- Não.
2.Uma posição é considerada como uma transacção completa a partir do momento em que é aberta até ser mantida a um valor igual a 0.
3.Quando o número de sinais de encerramento numa negociação completa for inferior a N, a função retorna nulo.
4.Quando N é 0 ou nulo, a função retorna nulo.
5.O parâmetro N não é suportado como variável.
6.Modelo de preço de fechamento: o valor da função corrente da linha K do sinal especificado não será alterado.
Modelo de preço de comando: na linha K atual do sinal especificado, ele retorna ao número do lote de sinal do n.o sinal de encerramento da negociação atual.
Exemplos:
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
Leva o número do lote de pedidos.
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);
Fundos disponíveis na conta.
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
Conta de património.
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.
Retorno dos fundos disponíveis na conta de negociação, equivalente aMONEY
.
Utilização:ACCOUNTMONEY
Retorna aos fundos disponíveis na conta de negociação.
Retorno ao capital próprio na conta de negociação, equivalente aMONEYTOT
.
Utilização:ACCOUNTMONEYTOT
Retorna ao capital da conta de negociação.
Número de moedas disponíveis na conta spot de moeda digital.
1.It is used for digital currency spot to obtain the current number of available coins.
Leverage.
Valor spot de moeda digital
a := MARGIN; // Fixed as value 1
Futuros de moeda digital
Futuros de moeda digital definem alavancagem.
a := MARGIN; // Declare the variable a and assign the current contract leverage to a
Obter o preço de venda deTICK
Por um lado.
Obter o preço de venda deTICK
para dois.
Obter o preço de venda deTICK
para três.
Obter o preço de venda deTICK
para quatro.
Obter o preço de venda deTICK
por cinco.
Obter o volume de vendas deTICK
Por um lado.
Obter o volume de vendas deTICK
para dois.
Obter o volume de vendas deTICK
para três.
Obter o volume de vendas deTICK
para quatro.
Obter o volume de vendas deTICK
por cinco.
Obter o preço de oferta deTICK
Por um lado.
Obter o preço de oferta deTICK
para dois.
Obter o preço de oferta deTICK
para três.
Obter o preço de oferta deTICK
para quatro.
Obter o preço de oferta deTICK
por cinco.
Obter o volume de oferta deTICK
Por um lado.
Obter o volume de oferta deTICK
para dois.
Obter o volume de oferta deTICK
para três.
Obter o volume de oferta deTICK
para quatro.
Obter o volume de oferta deTICK
por cinco.
Obter o preço mais recente deTICK
.
Um texto de erro é lançado e o programa sai.
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
Output de log
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');
Use CONTRACT para obter o código do contrato de troca do mapeamento do contrato atualmente definido.
INFO(1, CONTRACT);
Use o comando DATA para carregar dados.
(*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;
Utilização['attribute name']
para tomar o valor de um atributo nos dados.https://www.fmz.com/upload/asset/1ef31d778467ed9dd00.json
são os links de dados externos, pode ser um link para dados fornecidos por outros programas de serviço, ou pode ser dados fornecidos pelo centro de dados da plataforma de negociação FMZ Quant, como a parte dos comentários no exemplo(*Consumption Index: DATA('CPI')[ 'city'];*)
, use o códigoCPI
para obter dados (ainda não foram abertos todos os dados).
(*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;
Pontos mínimos de preço
Na bolsa de futuros BITMEX, os pontos mínimos de preço são 0,5. Na bolsa de futuros OKEX, os pontos mínimos de preço são 0,01.
Quando o preço de alguns contratos é relativamente baixo, é necessário prestar atenção à adequação da fixação de parâmetros, tais como a precisão das moedas de preços e a precisão da variedade de negociação.
Número máximo de períodos da variável
Ele afeta o número de gráfico K-line BARs da mesma forma que chamando oSetMaxBarLen
função najavascript
A estratégia faz.
Estratégia MyLanguage, o número de posições exibidas na tabela na coluna de estado.
Todos são o número real de posições detidas.
Julgamento condicional (não é recomendado escrever desta forma).
IF H > C THEN
BEGIN
X:=10;
END
Exemplo:
Quando o modelo de preços em tempo real é utilizado, a nova barra de linha K é detectada:
VARIABLE:N:0;
IF N <> BARPOS AND ISLASTBAR = 1 THEN
BEGIN
N:=BARPOS;
INFO(1, '123');
END