
Les stratégies de trading quantitatives s’améliorant sans cesse, les utilisateurs ont de plus en plus d’exigences en matière de notifications push en temps réel des changements de position. Par exemple, les journaux Web en ligne, les applications mobiles, WeChat, etc. doivent tous transmettre de manière proactive les changements de position des comptes à la plateforme en temps réel. Navigateurs, téléphones portables, etc. À cette fin, cet article utilise la stratégie My Language d’Inventor Quantitative (FMZ.COM) pour réaliser la transmission en temps réel des positions vers les applications mobiles et WeChat.
Veuillez cliquer sur https://www.fmz.com/strategy/305785 pour accéder au code source complet de cet article. Je vous suggère d’essayer un peu de code.
Pour des raisons de démonstration, cet article fera référence à la stratégie de trading précédente de William W%R. L’adresse du lien de la stratégie est : https://www.fmz.com/strategy/283024. La logique de la stratégie est composée de la valeur William et du mouvement moyenne. La stratégie complète et la configuration du test de retour, vous pouvez cliquer sur ce lien pour l’obtenir, ci-dessous le code de cette stratégie :
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;
Le langage My de FMZ.COM est une encapsulation supplémentaire du langage JavaScript, qui est conçu pour aider les débutants quantitatifs à mieux démarrer. Mon langage a les caractéristiques d’une syntaxe concise et peut gérer une logique de stratégie simple, mais il n’est pas adapté à certaines logiques complexes La stratégie sera étendue. À cette fin, l’inventeur Quantized a lancé des fonctions d’amélioration du langage basées sur le langage My. Comme le montre l’exemple de code suivant :
%%
// 这里面可以调用发明者量化的任何API
scope.TEST = function(obj) {
return obj.val * 100;
}
%%
收盘价:C;
收盘价放大100倍:TEST(C);
上一个收盘价放大100倍:TEST(REF(C, 1)); // 鼠标移动到回测的K线上就会提示变量值
Comme le montre le code ci-dessus, la fonction d’amélioration du langage permet une programmation mixte de My language et du langage JavaScript. Pour des explications spécifiques, veuillez vous référer au lien du document : https://www.fmz.com/doc/2569#%E8%AF %AD%E8 %A8%80%E5%A2%9E%E5%BC%BA
dans:
1. Objet de portée Objet de portée, vous pouvez ajouter des propriétés et attribuer des fonctions anonymes aux propriétés. Dans la partie code de la langue Mai, vous pouvez appeler la fonction anonyme référencée par cet attribut.
2、scope.get_locals(‘name’) Cette fonction peut obtenir les variables du langage My, réalisant ainsi l’interaction entre le langage My et le langage JavaScript.
Dans la stratégie My language, la fonction BKVOL peut obtenir le nombre de lots de signaux d’achat, c’est-à-dire la position longue actuelle. La fonction SKVOL peut obtenir le nombre de lots de signaux de vente, c’est-à-dire la position courte actuelle. Nous pouvons ensuite calculer l’état de changement de position actuel en soustrayant SKVOL de BKVOL. Comme indiqué dans le code suivant :
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, '@');
}
%%
Dans le code ci-dessus, nous avons regroupé la stratégie de trading de William W%R et la fonction push de changement de position, afin d’obtenir une synchronisation en temps réel des ordres de stratégie de trading et des changements de position, et de les pousser vers l’application mobile et WeChat.
Ensuite, nous exécutons une transaction en temps réel pour vérifier cette fonction. Lors de la création d’une transaction en temps réel, sélectionnez OKEX spot et définissez la paire de devises sur LTC_USDT (les contrats à terme sur matières premières et les contrats à terme sur devises numériques peuvent également utiliser cette fonction, et le fonctionnement est similaire )
1. Déclencheur de signal, journal côté Web
2. Déclencheur de signal, envoi de message d’application mobile
3. Déclencheur de signal, push d’informations WeChat

Ci-dessus, nous utilisons une stratégie de trading simple My Language William W%R, combinée au module de transmission de messages développé par le module d’amélioration de la langue dans My Language, pour obtenir une transmission en temps réel des changements de position vers les applications mobiles et WeChat. Ce code de module peut être attaché à n’importe quelle stratégie My Language pour transmettre les changements de position aux applications mobiles et à WeChat, et lancer une variété de types de push pour différents scénarios afin de répondre à vos besoins de push personnalisés.