Avec l'amélioration constante des stratégies de transaction quantifiées, les utilisateurs ont de plus en plus besoin d'une diffusion en temps réel des changements de stock, par exemple: les journaux Web en ligne, les applications mobiles, WeChat, etc., qui nécessitent de transmettre en temps réel les changements de stock dans le compte, de manière proactive au navigateur, au téléphone, etc. Pour cela, cet article s'adresse aux inventeurs d'une stratégie de langage quantifiée (FMZ.COM) My, pour réaliser la diffusion en temps réel des positions sur les applications mobiles et WeChat.
Le code source complet de cet article est disponible ici.https://www.fmz.com/strategy/305785Nous vous recommandons de commencer à taper du code à la main.
Pour faciliter la démonstration, cet article renvoie à la stratégie de trading précédente de William W%R, dont l'adresse de lien est:https://www.fmz.com/strategy/283024La logique de la stratégie est composée de valeurs de William et d'une ligne moyenne, une stratégie complète et une configuration de retouche sont disponibles en cliquant sur ce lien pour obtenir le code de la 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;
FMZ.COM est un enveloppe supplémentaire du langage JavaScript, conçu pour aider les débutants à mieux se familiariser avec la quantification.
%%
// 这里面可以调用发明者量化的任何API
scope.TEST = function(obj) {
return obj.val * 100;
}
%%
收盘价:C;
收盘价放大100倍:TEST(C);
上一个收盘价放大100倍:TEST(REF(C, 1)); // 鼠标移动到回测的K线上就会提示变量值
Comme indiqué dans le code ci-dessus, les fonctions d'amélioration de la langue permettent à My Language de programmer en combinaison avec JavaScript.https://www.fmz.com/doc/2569#%E8%AF%AD%E8%A8%80%E5%A2%9E%E5%BC%BA
Parmi eux:
Objet de portée 1.L'objet scope peut ajouter des attributs et attribuer une fonction anonyme à l'attribut. Dans la partie du code de Mac, vous pouvez appeler la fonction anonyme à laquelle cette propriété est référencée.
2、scope.get_locals ((
Dans la stratégie de mon langage, la fonction BKVOL obtient le nombre de signaux d'achat ou de vente, c'est-à-dire la position en cours à plusieurs têtes. La fonction SKVOL obtient le nombre de signaux d'achat ou de vente, c'est-à-dire la position en cours à vide.
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 combiné la stratégie de trading de William W%R et la fonctionnalité de changement de position de push pour que la stratégie de trading soit synchronisée en temps réel avec les changements de position et poussée vers l'application mobile et WeChat.
Ensuite, nous avons exécuté une vérification en direct de cette fonction, créant une sélection en direct en direct de la plate-forme OKEX, la paire de devises est définie comme LTC_USDT (les futures sur les produits et les futures sur les monnaies numériques peuvent également utiliser cette fonction, fonctionnant de la même manière)
1, le signal est déclenché, les journaux Web Deuxièmement, le signal est déclenché et l'application mobile est lancée. 3 - Le signal est déclenché et les messages WeChat sont envoyés.
Ci-dessus, nous utilisons une stratégie de transaction simple de MyLanguage William W%R, en collaboration avec le module de poussée de message développé par le module d'amélioration de la langue dans MyLanguage, afin de réaliser une stratégie de poussée en temps réel des changements de position vers les applications mobiles et WeChat. Le code du module peut être ajouté à n'importe quelle stratégie de MyLanguage pour réaliser des changements de position vers les applications mobiles et WeChat, et pour lancer plusieurs types de poussée pour différents scénarios, pour répondre à vos besoins de poussée personnalisés.