(2)Después de que se envía la señal BP, el BARSBP de la línea K devuelve el número de períodos desde la línea K para las posiciones de compra y cierre a la línea K actual. Si se cumple la condición de BARSBP>=1, el valor es HHV(H, BARSBP+1), es decir, el valor máximo de las posiciones de compra y cierre (incluida la línea K actual cuando aparece la señal de cierre) al precio más alto actual. 3.AA:=IFELSE(BARSBP>=1,REF(C,BARSBP),C);//Tome el precio de cierre de la última línea K para comprar y cerrar la posición: (1)Cuando el BARSBP de la línea K actual que envía la señal BP devuelve cero, entonces cuando la línea K no cumple la condición de BARSBP>=1, AA devuelve el precio de cierre de la línea K actual. (2) La K-line BARSBP, después de que se envía la señal BP, vuelve al número de período de la K-line para comprar y cerrar la posición desde la K-line actual, luego AA vuelve a REF ((C, BARSBP), que es el precio de cierre de la K-line de cierre. (3)Por ejemplo: tres líneas K: 1, 2 y 3, la línea K en 1 es la línea K actual de la señal de cierre, luego vuelve al precio de cierre de la línea K actual, y la línea K AA en 2 y 3 vuelve al precio de cierre de la línea K en 1. ¿ Qué pasa?
Devuelve el número de lotes de señal para la N.a señal Sig fija contada desde la línea K actual (las órdenes de retroceso toman el número de lotes de posición abierta).
El uso:REFSIG_VOL(Sig,N);
, determina el tamaño del lote de la nth señal sig fija contando desde la línea K actual. Si no hay señal sig, o si no hay señal sig fija, la función devuelve 0.
Las observaciones:
1.Las señales soportadas por la posición Sig son:BK
, SK
, BP
, SP
, BPK
, SPK
,CLOSEOUT
,STOP
- ¿ Por qué?
2.Si la cuenta regresiva hasta la N.a señal Sig fija está en la línea K actual, entonces la función regresa al lote de señal actual.
4.Cuando N es 0 o cero, la función devuelve 0.
5.El parámetro N admite variables.
Ejemplos:
// 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);
Devuelve el precio de la señal de la señal de signo fija nth desde el comienzo de la línea K actual.
El uso:REFSIG_PRICE(Sig,N);
, determina el precio de la señal de la señal de Sig N-ésima fija desde la línea K actual. Si no hay señal de Sig, o si no hay señal de Sig fija, la función devuelve 0.
Las observaciones:
1.Las señales soportadas por la posición Sig son:BK
, SK
, BP
, SP
, BPK
, SPK
,CLOSEOUT
,STOP
- ¿ Por qué?
2.Si hay una señal Sig fija en la línea K de corriente, cuando la función calcule la señal, se incluye la señal de la línea K de corriente.
3.Cuando N es 0 o cero, la función devuelve cero.
4.El parámetro N admite variables.
Ejemplos:
// 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;
Cuenta el número de señales X en N períodos.
El uso:COUNTSIG(X,N);
Cuenta el número de señales X en N períodos.
X puede serBK
, SK
, SP
, BP
, SPK
, BPK
,CLOSEOUT
,STOP
.
Las observaciones:
1.Durante el período estadístico,
(1) Contiene la línea K actual.
(2) Si N es 0, entonces contar desde el primer valor válido.
(3) Cuando N es un valor válido, pero el número actual de líneas K es menor que N, se cuenta desde la primera hasta el período actual.
(4) El valor de retorno es nulo cuando N es nulo.
(5) N puede ser una variable.
2.Al contar las señales:
(1)El método de ejecución de la señal se selecciona como señal de confirmación después de que se complete la línea K o la revisión después de que se complete la línea K (por ejemplo: escribir CHECKSIG(SIG,
Ejemplos:
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 la posición de la línea K de la señal de posición de apertura especificada.
El uso:ENTRYSIG_PLACE(N);
Si no hay señal para abrir una posición, la función devuelve nulo.
Las observaciones:
1.Las señales para la apertura de posiciones son:BK
, SK
, BPK
, SPK
- ¿ Por qué?
2.Una posición se considera completada desde el momento en que se abre hasta que se mantiene a 0.
3.Si el número de señales abiertas en una operación completa es inferior a N, la función devuelve cero.
4.La posición de la línea K es el número que separa la línea K corriente de la línea K en la que se encuentra la señal de apertura especificada.
5.Cuando N es 0 o cero, la función devuelve cero.
6.No se admite el parámetro N como variable.
Ejemplos:
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
Tome el precio de la señal de posición abierta especificada.
El uso:ENTRYSIG_PRICE(N);
Si no hay señal para abrir una posición, la función devuelve nulo.
Las observaciones:
1.Las señales para la apertura de posiciones son:BK
, SK
, BPK
, SPK
- ¿ Por qué?
2.Una posición se considera completada desde el momento en que se abre hasta que se mantiene a 0.
3.Si el número de señales abiertas en una operación completa es inferior a N, la función devuelve cero.
4.Cuando N es 0 o cero, la función devuelve cero.
5.El parámetro N no se admite como variable.
6.El cálculo de esta función incluye el deslizamiento.
7.Modelo de precio de cierre: el valor de la función de línea K actual de la señal especificada no cambiará.
Modelo de precio de orden: devolución al precio de la enésima señal de apertura de la operación actual en la línea K actual de la señal especificada.
Ejemplos:
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 el lote de señal de la señal de apertura de posición especificada.
El uso:ENTRYSIG_VOL(N);
Si no hay señal para abrir una posición, la función devuelve nulo.
Las observaciones:
1.Las señales para la apertura de posiciones son:BK
, SK
, BPK
, SPK
- ¿ Por qué?
2.Una posición se considera completada desde el momento en que se abre hasta que se mantiene a 0.
3.Si el número de señales abiertas en una operación completa es inferior a N, la función devuelve cero.
4.Cuando N es 0 o cero, la función devuelve cero.
5.El parámetro N no se admite como variable.
6.Modelo de precio de cierre: el valor de la función de línea K actual de la señal especificada no cambiará.
Modelo de precio de la orden: en la línea K actual de la señal especificada, vuelve al número de lote de la señal de la N-a señal de apertura de la operación actual.
Ejemplos:
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
Tome la posición de la línea K de la señal de cierre especificada.
El uso:EXITSIG_PLACE(N);
, toma la posición de la línea K de la señal de cierre N en una operación completa. Si no hay señal de cierre, la función devuelve nulo.
Las observaciones:
1.Las señales para el cierre de posiciones son:BP
, SP
, CLOSEOUT
, STOP
- ¿ Por qué?
2.Una posición se considera completada desde el momento en que se abre hasta que se mantiene a 0.
3.Cuando el número de señales de cierre es inferior a N, la función devuelve cero.
4.La posición de la línea K se refiere al número de líneas K desde la línea K actual hasta la señal de cierre designada.
5.Cuando N es 0 o cero, la función devuelve cero.
6.No se admite el parámetro N como variable.
Ejemplos:
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
Tome el precio de la señal de posición de cierre especificada.
El uso:EXITSIG_PRICE(N);
Si no hay señal de cierre, la función devuelve nulo.
Las observaciones:
1.Las señales para el cierre de posiciones son:BP
, SP
, CLOSEOUT
, STOP
- ¿ Por qué?
2.Una posición se considera completada desde el momento en que se abre hasta que se mantiene a 0.
3.Cuando el número de señales de cierre en una operación completa es inferior a N, la función devuelve cero.
4.Cuando N es 0 o cero, la función devuelve cero.
5.El parámetro N no se admite como variable.
6.El cálculo de esta función incluye el deslizamiento.
7.Modelo de precio de cierre: el valor de la función de línea K actual de la señal especificada no cambiará.
Modelo de precio de orden: devolución al precio de la enésima señal de apertura de la operación actual en la línea K actual de la señal especificada.
Ejemplos:
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
Tome el lote de señal de la señal de posición de cierre especificada.
El uso:EXITSIG_VOL(N)
Si no hay una señal de posición cerrada, la función devuelve nulo.
Las observaciones:
1.Las señales para el cierre de posiciones son:BP
, SP
, CLOSEOUT
, STOP
- ¿ Por qué?
2.Una posición se considera completada desde el momento en que se abre hasta que se mantiene a 0.
3.Cuando el número de señales de cierre en una operación completa es inferior a N, la función devuelve cero.
4.Cuando N es 0 o cero, la función devuelve cero.
5.El parámetro N no se admite como variable.
6.Modelo de precio de cierre: el valor de la función de la línea K actual de la señal especificada no cambiará.
Modelo de precio de la orden: en la línea K actual de la señal especificada, vuelve al número de lote de la señal de la N.a señal de cierre de la operación actual.
Ejemplos:
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
Toma el número de 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);
Fondos disponibles en la cuenta.
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
Cuenta de capital.
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 a los fondos disponibles en la cuenta de negociación, equivalente aMONEY
.
El uso:ACCOUNTMONEY
Regreso a los fondos disponibles en la cuenta de negociación.
Retorno al capital propio de la cuenta de negociación, equivalente aMONEYTOT
.
El uso:ACCOUNTMONEYTOT
Regresos a las acciones de la cuenta de negociación.
El número de monedas disponibles en la cuenta spot de moneda digital.
1.It is used for digital currency spot to obtain the current number of available coins.
Leverage.
Dinero digital al contado
a := MARGIN; // Fixed as value 1
Futuros de moneda digital
Los futuros de divisas digitales establecen apalancamiento.
a := MARGIN; // Declare the variable a and assign the current contract leverage to a
Obtener el precio de venta deTICK
Por un lado.
Obtener el precio de venta deTICK
para dos.
Obtener el precio de venta deTICK
para tres.
Obtener el precio de venta deTICK
para cuatro.
Obtener el precio de venta deTICK
para cinco.
Obtener el volumen de ventas deTICK
Por un lado.
Obtener el volumen de ventas deTICK
para dos.
Obtener el volumen de ventas deTICK
para tres.
Obtener el volumen de ventas deTICK
para cuatro.
Obtener el volumen de ventas deTICK
para cinco.
Obtener el precio de oferta deTICK
Por un lado.
Obtener el precio de oferta deTICK
para dos.
Obtener el precio de oferta deTICK
para tres.
Obtener el precio de oferta deTICK
para cuatro.
Obtener el precio de oferta deTICK
para cinco.
Obtener el volumen de oferta deTICK
Por un lado.
Obtener el volumen de oferta deTICK
para dos.
Obtener el volumen de oferta deTICK
para tres.
Obtener el volumen de oferta deTICK
para cuatro.
Obtener el volumen de oferta deTICK
para cinco.
Obtener el último precio deTICK
.
Se lanza un mensaje de error y el programa se apaga.
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
Producción de registro
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');
Utilice CONTRACT para obtener el código del contrato de intercambio de la asignación del contrato actualmente establecida.
INFO(1, CONTRACT);
Utilice el comando DATA para cargar datos.
(*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;
Utilización['attribute name']
para tomar el valor de un atributo en los datos.https://www.fmz.com/upload/asset/1ef31d778467ed9dd00.json
puede ser un enlace a datos proporcionados por otros programas de servicio, o puede ser datos proporcionados por el centro de datos de la plataforma de negociación FMZ Quant, como la parte de los comentarios en el ejemplo(*Consumption Index: DATA('CPI')[ 'city'];*)
, usa el códigoCPI
para obtener datos (todavía no se han abierto todos los datos).
(*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;
Puntos mínimos de precio
En la bolsa de futuros BITMEX, los puntos mínimos de precio son 0,5. En la bolsa de futuros OKEX, los puntos mínimos de precio son 0,01.
Cuando el precio de algunos contratos es relativamente bajo, es necesario prestar atención a si la fijación de parámetros, como la precisión de la moneda de fijación de precios, la precisión de la variedad de negociación son apropiados.
Número máximo de períodos de la variable
Afecta el número de gráfico K-línea BARs de la misma manera que llamando a laSetMaxBarLen
La función en eljavascript
La estrategia sí.
Estrategia MyLanguage, el número de posiciones que se muestran en la tabla en la columna de estado.
Todos son el número real de posiciones mantenidas.
Sentencia condicional (no se recomienda escribir de esta manera).
IF H > C THEN
BEGIN
X:=10;
END
Ejemplo:
Cuando se utiliza el modelo de precios en tiempo real, se detecta la nueva barra de la línea K:
VARIABLE:N:0;
IF N <> BARPOS AND ISLASTBAR = 1 THEN
BEGIN
N:=BARPOS;
INFO(1, '123');
END