Avec l'amélioration constante de la stratégie de transaction quantifiée, les utilisateurs ont de plus en plus besoin d'une diffusion en temps réel des changements de position, par exemple: les journaux Web en ligne, les applications mobiles, WeChat, etc. nécessitent de transmettre en temps réel, de manière proactive, les changements de position des comptes au navigateur, au téléphone, etc. Cet article est donc pour les inventeurs quantifiés.FMZ.COMMon langage est une stratégie qui permet de diffuser des positions en temps réel 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;
Les inventeurs ont quantifiéFMZ.COMLe langage My est un enveloppe supplémentaire du langage JavaScript, conçu pour aider les débutants à mieux introduire la quantification. Le langage My a des caractéristiques de syntaxe concise et peut faire face à des stratégies simples, mais peut être difficile face à des stratégies complexes.
%%
// 这里面可以调用发明者量化的任何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#语言增强
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.