avatar of 发明者量化-小小梦 发明者量化-小小梦
focar em Mensagem privada
4
focar em
1271
Seguidores

Minha estratégia de linguagem envia mudanças de posição para aplicativos móveis e WeChat em tempo real

Criado em: 2021-08-10 17:06:46, atualizado em: 2023-09-20 11:10:28
comments   0
hits   1741

Minha estratégia de linguagem envia mudanças de posição para aplicativos móveis e WeChat em tempo real

I. Resumo

À medida que as estratégias de negociação quantitativa continuam a melhorar, os usuários têm requisitos cada vez maiores para notificações push em tempo real de mudanças de posição. Por exemplo, weblogs online, aplicativos móveis, WeChat, etc., todos precisam transmitir proativamente mudanças nas posições da conta para a plataforma em tempo real. Navegadores, celulares, etc. Para esse propósito, este artigo usa a estratégia My Language do Inventor Quantitative (FMZ.COM) para realizar o envio de posições em tempo real para aplicativos móveis e WeChat.

Clique em https://www.fmz.com/strategy/305785 para o código-fonte completo deste artigo. Sugiro que você tente algum código.

2. Estratégia de negociação de demonstração

Para fins de demonstração, este artigo se referirá à estratégia de negociação anterior William W%R. O endereço do link da estratégia é: https://www.fmz.com/strategy/283024. A lógica da estratégia é composta de valor William e movimento média. A estratégia completa e a configuração do teste de retorno, você pode clicar neste link para obtê-la, abaixo está o código para esta estratégia:

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;

3. Meu aprimoramento de idioma

A linguagem My do FMZ.COM é um encapsulamento adicional da linguagem JavaScript, que foi projetada para ajudar iniciantes quantitativos a começar melhor. Minha linguagem tem as características de sintaxe concisa e pode lidar com alguma lógica de estratégia simples, mas não é adequada para algumas complexas A estratégia será ampliada. Para isso, o inventor Quantized lançou funções de aprimoramento de linguagem baseadas no My language. Conforme mostrado no exemplo de código a seguir:

%%
// 这里面可以调用发明者量化的任何API 
scope.TEST = function(obj) {
    return obj.val * 100;
}
%% 
收盘价:C;
收盘价放大100倍:TEST(C);
上一个收盘价放大100倍:TEST(REF(C, 1)); // 鼠标移动到回测的K线上就会提示变量值

Conforme mostrado no código acima, a função de aprimoramento de linguagem permite programação mista de My language e JavaScript language. Para explicações específicas, consulte o link do documento: https://www.fmz.com/doc/2569#%E8%AF %AD%E8 %A8%80%E5%A2%9E%E5%BC%BA

em:

1. Objeto de escopo Objeto de escopo, você pode adicionar propriedades e atribuir funções anônimas às propriedades. Na parte do código do idioma Mai, você pode chamar a função anônima referenciada por este atributo.

2、scope.get_locals(‘name’) Esta função pode obter as variáveis ​​da linguagem My, realizando assim a interação entre a linguagem My e a linguagem JavaScript.

4. Mudanças de posição de pressão

Na estratégia Minha linguagem, a função BKVOL pode obter o número de lotes de sinais de compra, ou seja, a posição longa atual. A função SKVOL pode obter o número de lotes de sinais de venda, ou seja, a posição curta atual. Então podemos calcular o status atual da mudança de posição subtraindo SKVOL de BKVOL. Conforme mostrado no código a seguir:

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;

%%
// 下面代码附加到任何My语言策略最后都可以实现仓位变化推送到手机App与微信
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('通知仓位变化:', scope.symbol, pos, '@');
}
%%

No código acima, colocamos a estratégia de negociação de William W%R e a função de envio de mudança de posição juntas, de modo a obter a sincronização em tempo real da ordem de negociação da estratégia de negociação e das mudanças de posição, e enviá-las para o aplicativo móvel e o WeChat.

5. Teste em tempo real

Em seguida, executamos uma transação em tempo real para verificar esta função. Ao criar uma transação em tempo real, selecione OKEX spot e defina o par de moedas como LTC_USDT (futuros de commodities e futuros de moeda digital também podem usar esta função, e a operação é semelhante )

1. Gatilho de sinal, log do lado da web Minha estratégia de linguagem envia mudanças de posição para aplicativos móveis e WeChat em tempo real 2. Gatilho de sinal, envio de mensagem de aplicativo móvel Minha estratégia de linguagem envia mudanças de posição para aplicativos móveis e WeChat em tempo real 3. Gatilho de sinal, envio de informações do WeChat Minha estratégia de linguagem envia mudanças de posição para aplicativos móveis e WeChat em tempo real

VI. Conclusão

Acima, usamos uma estratégia de negociação simples do My Language William W%R, combinada com o módulo de envio de mensagens desenvolvido pelo módulo de aprimoramento de linguagem no My Language, para obter envio em tempo real de alterações de posição para aplicativos móveis e WeChat. Este código de módulo pode ser anexado a qualquer estratégia do My Language para enviar alterações de posição para aplicativos móveis e WeChat, além de iniciar uma variedade de tipos de envio para diferentes cenários para atender às suas necessidades personalizadas.