Com a melhoria contínua das estratégias de negociação quantitativas, os usuários têm requisitos cada vez mais elevados para o impulso em tempo real de mudanças de posição. Por exemplo: registros on-line da Web, aplicativos móveis e WeChat, etc. todos precisam das mudanças nas posições da conta em tempo real, o que requer impulso automático das mudanças enviadas para navegadores e telefones móveis, etc. Por essa razão, este artigo visa FMZ Quant (FMZ.COM) Estratégia Mylanguage para alcançar o empurrão em tempo real de posições para aplicativos móveis e WeChat.
Para ver o código fonte completo no artigo, clique no link:https://www.fmz.com/strategy/305785, e eu sugiro que você escrever o código para praticar, para apenas aprender a partir da leitura do código não é suficiente.
Para demonstrar convenientemente, este artigo se referirá à estratégia de negociação anterior da Williams % R. O endereço do link da estratégia é:https://www.fmz.com/strategy/283024. A lógica da estratégia é composta pelo valor de Williams e a média móvel. Para a estratégia completa e a configuração do backtest, você pode clicar neste link para obtê-lo. O código desta estratégia é mostrado da seguinte forma:
HC := HHV(HIGH, 14) - CLOSE;
HL := HHV(HIGH, 14) - LLV(LOW, 14);
WR := -100 * HC / HL;
MA20 : EMA2(C, 14);
C1 := WR < -60 && C > MA20;
C2 := WR > -15 && C < MA20;
C1, BPK;
C2, SPK;
O Mylanguage no FMZ Quant (FMZ.COMO Mylanguage é uma linguagem de linguagem de programação de programação de programação de programação de programação de programação de programação de programação de programação de programação de programação de programação de programação de programação de programação.
%%
// here we can call any API of FMZ Quant
scope.TEST = function(obj) {
return obj.val * 100;
}
%%
close price:C;
Zoom 100 times of close price:TEST(C);
Zoom 100 times of last close price:TEST(REF(C, 1)); // move the mouse to the backtested K-line, and the variable value will prompt
Como mostrado no código acima, a função de aprimoramento de linguagem permite a programação de Mylanguage e JavaScript ser misturada.https://www.fmz.com/doc/2569#语�%A8%80%E5%A2%9E%E5%BC%BA
Incluindo:
1.Objeto de âmbitoA função anônima referenciada por esta propriedade pode ser chamada na parte de código do Mylanguage.
2.scope.get_locals (nome)A função pode obter as variáveis de Mylanguage, de modo a realizar a interação entre Mylanguage e JavaScript.
Em uma estratégia Mylanguage, a função BKVOL pode obter o sinal de compra Lot, ou seja, a posição longa atual. A função SKVOL pode obter o sinal de venda Lot, ou seja, a posição curta atual. Em seguida, podemos calcular o status de mudança de posição atual subtraindo SKVOL de BKVOL. Como mostrado no código abaixo:
HC := HHV(HIGH, 14) - CLOSE;
HL := HHV(HIGH, 14) - LLV(LOW, 14);
WR := -100 * HC / HL;
MA20 : EMA2(C, 14);
C1 := WR < -60 && C > MA20;
C2 := WR > -15 && C < MA20;
C1, BPK;
C2, SPK;
%%
// adding the following code in any Mylanguage strategy can realize the push of position changes to mobile phone App and WeChat
if (typeof(scope._tmp) !== 'number') {
scope._tmp = 0;
}
var pos = scope.get_locals('BKVOL') - scope.get_locals('SKVOL');
if (pos != scope._tmp) {
scope._tmp = pos;
Log('Push position changes:', scope.symbol, pos, '@');
}
%%
No código acima, colocamos a estratégia de negociação de William W%R
Em seguida, executamos um bot para verificar essa função; criar um bot, selecionar o ponto OKEX e definir o par de moedas para LTC_USDT (futuros de commodities e futuros de criptomoedas também podem usar essa função, e a operação é a mesma).
1. sinal desencadeado, empurrar para registos web 2. sinal desencadeado, empurrar para o aplicativo do telemóvel 3. sinal desencadeado, empurrar para WeChat mensagem empurrar
Acima, usamos uma simples estratégia de negociação Mylanguage William W%R e o módulo de push de mensagens desenvolvido pelo módulo de aprimoramento de linguagem em Mylanguage, a fim de realizar a estratégia para empurrar mudanças de posição para aplicativos móveis e WeChat em tempo real.