On dit souvent que la négociation est un art et que l'art est inspiré. Alors aujourd'hui, je veux partager avec vous comment utiliser la fonctionnalité de lecture quantifiée des données des inventeurs pour trouver votre propre inspiration pour les transactions.
En général, nous parlons d'inspiration quand nous parlons d'un état de créativité instantanée dans le processus de réflexion. Pour les traders, notre hémisphère gauche du cerveau est chargé d'élaborer une série de règles, telles que la stratégie, l'affectation des fonds, la définition des paramètres.
Beaucoup de gens ont entendu parler de la sensation de panier, qui est une sensation de confusion, comme si l'on connaissait ce qui se passe actuellement. Dans le trading, cette intuition similaire au sixième sens, bien que sans raisonnement et analyse logiques, prédit l'évolution future du marché, ce qui incite les traders à prendre des décisions d'achat ou de vente.
À l'extérieur, le discernement est un mystère, un talent mystérieux et invincible, avec lequel on peut s'imposer sur le marché. En fait, le discernement est une synthèse de l'expérience subjective du cerveau sur les transactions, une sorte de préjugé éclairé par des années de lecture.
Bien que, strictement parlant, l'inspiration n'est pas tout à fait égale à l'imagination, je crois qu'après avoir pratiqué le marché des milliers et des centaines de fois, nous avons une meilleure connaissance du marché et que nous avons besoin de nous concentrer sur l'élaboration de stratégies. Donc, si vous voulez acquérir ce talent, si vous voulez développer plus de stratégies de négociation, il n'y a personne d'autre que le maître.
Cependant, les futures et les actions de produits domestiques ne sont échangés que quelques heures par jour, et il est évident qu'il est inutile d'améliorer son expérience de trading à partir de transactions réelles, de former ses propres modèles et règles de trading, et de former ses propres réflexions conditionnelles dans le subconscient. En plus de payer des coûts de temps plus longs, la plupart des traders doivent supporter des coûts de perte de capital.
La fonctionnalité de lecture des données peut être entraînée sans limitation de temps de négociation d'échange, elle prend en charge une variété de contrats à terme sur des produits et de devises numériques, elle peut être reproduite manuellement ou automatiquement, elle peut également définir librement le temps d'arrêt et la vitesse de lecture du marché historique. Par rapport à d'autres logiciels qui utilisent généralement la méthode de lecture des données en ligne K, les inventeurs ont quantifié la méthode de lecture des données au niveau de Tick, qui est très proche de l'environnement de mesure de la lecture de la transaction réelle, reproduisant les données de prix de l'inventaire, ce qui permet aux traders de se retrouver.
Les développeurs ont mis en place un site web quantifié.fmz.comIl y a quatre boîtes d'options et un bouton de sélection, cliquez sur le bouton de sélection pour afficher uniquement les variétés qui supportent la lecture de disque dur, puis sélectionnez la variété à lire en haut à gauche, puis sélectionnez la date de début des données dans les deux boîtes d'options à l'arrière, puis sélectionnez le cycle de temps des données pour la lecture de disque dur, puis cliquez sur le bouton Go à droite pour activer la fonction de lecture de données.
Sous les balises de données, il y a trois blocs; à gauche, l'historique des transactions, qui affiche toutes les commandes passées dans l'ordre chronologique; au milieu, les données de l'inventaire de 20 fichiers de profondeur pour les achats et les ventes; et à droite, la zone de contrôle de la lecture des données, où vous pouvez choisir la lecture manuelle et automatique des données, aussi simple que d'utiliser un lecteur multimédia.
L'indice de position peut faire glisser le marqueur de l'écran vers l'avant et vers l'arrière, ce qui permet de sélectionner rapidement le début de la lecture des données.
Au bas, vous pouvez également contrôler la vitesse de lecture des données en millisecondes, en accélérant ou en ralentissant la lecture des données.
Bien qu'il y ait de nombreux facteurs qui influencent la chute des prix, y compris: l'environnement économique mondial, les politiques macroéconomiques nationales, les politiques industrielles, les relations d'offre et de demande, les événements internationaux, les taux d'intérêt et de change, l'inflation et l'économie, la psychologie du marché, les facteurs inconnus, etc., le prix sur le plateau final est le résultat d'une compétition entre plusieurs parties. Si les acheteurs sont plus nombreux, les prix augmentent; en revanche, si les vendeurs sont plus nombreux, les prix diminuent.
En quantifiant les paires de transactions btc_usdt de l'échange de Binance au cours du dernier mois, nous avons constaté qu'il y avait une nette asymétrie entre le nombre d'ordres de Tick et le nombre d'ordres vacants. Lorsque le marché était en hausse, le nombre d'ordres vacants était nettement supérieur au nombre d'ordres vacants; lorsque le marché était en baisse, le nombre d'ordres vacants était nettement inférieur au nombre d'ordres vacants.
La réponse est oui.
Nous pouvons calculer et comparer le volume des enchères de plusieurs enchères en recueillant des données de Tick en profondeur. Si la différence entre les enchères de plusieurs enchères est importante, il y a une opportunité de vente potentielle. Par exemple, lorsque le volume des enchères de plusieurs enchères est N fois plus grand que le volume des enchères de plusieurs enchères, nous pouvons supposer que la plupart des gens sur le marché regardent plus et que la probabilité d'une hausse des prix à court terme augmente; lorsque le volume des enchères de plusieurs enchères est N fois plus grand que le volume des enchères de plusieurs enchères, nous pouvons supposer que la plupart des gens sur le marché regardent moins et que la probabilité d'une baisse des prix à court terme augmente.
Suivant la logique de la stratégie ci-dessus, commencez à l'implémenter avec le code. Ouvrez le site fmz.com > Connexion > Centre de contrôle > Bibliothèque de stratégies > Créer des stratégies > Cliquez sur le menu glisser-déposer en haut à droite, sélectionnez la langue Python et commencez à écrire la stratégie. Cette stratégie est un enseignement de jeu de guillemets, alors j'ai essayé de simplifier la stratégie.
Première étape: élaborer un cadre stratégique
# 策略主函数
def onTick():
pass
# 程序入口
def main():
while True: # 进入无限循环模式
onTick() # 执行策略主函数
Sleep(1000) # 休眠1秒
Nous devrions écrire les stratégies en majuscules et en minuscules, comme pour un toit. Dans ce cadre, nous avons utilisé deux fonctions: la fonction principale et la fonction onTick. La fonction principale est l'entrée du programme, c'est-à-dire que le programme s'exécute à partir de là, puis passe en mode cyclo-infinité, exécutant à nouveau la fonction onTick.
Deuxième étape: écrire des variables globales
vol_ratio_arr = [] # 多空挂单比率数组
mp = 0 # 虚拟持仓
La raison pour laquelle j'ai défini vol_ratio_arr comme une variable globale est que ma stratégie consiste à collecter des ratios d'un seul élément de données Tick, si nous plaçons la variable vol_ratio_arr dans la fonction onTick, ce qui est manifestement illogique avec le fonctionnement de la boucle, nous avons besoin de changer la valeur de la variable dans le mode de la boucle lorsque certaines conditions sont atteintes. Le moyen le plus logique est de mettre cette variable à l'extérieur de la boucle.
La gestion des positions est très nécessaire car elle est liée à la logique de vente et d'achat, généralement dans le cas où nous effectuons des transactions au comptant, le calcul de la paire de devises détenue est effectué en accédant à un compte. Ici, pour simplifier le code, une variable de possession virtuelle globale est directement définie pour contrôler la logique de vente et d'achat.
Troisième étape: calculer le taux de surcharges actuel
depth = exchange.GetDepth() # 获取深度数据
asks = depth['Asks'] # 获取卖价数组
bids = depth['Bids'] # 获取买价数组
asks_vol = 0 # 所有卖价挂单
bids_vol = 0 # 所有买价挂单
for index, ask in enumerate(asks): # 遍历卖价数组
# 线性计算所有卖价挂单
asks_vol = asks_vol + ask['Amount'] * (20 - index)
for index, bid in enumerate(bids): # 遍历买价数组
# 线性计算所有买价挂单
bids_vol = bids_vol + bid['Amount'] * (20 - index)
bidask_ratio = bids_vol / asks_vol # 计算多空比率
Comme vous le savez, les crypto-monnaies sont généralement des données de 20 degrés de profondeur, alors nous pouvons additionner la quantité de messages en suspens et en blanc pour calculer le rapport entre les messages en suspens et les messages en blanc. Lorsque cette valeur est supérieure à 1, cela signifie que plus de gens regardent plus que ceux qui regardent moins, ce qui signifie que les prix augmenteront dans un court laps de temps; lorsque cette valeur est inférieure à 1, cela signifie que les gens regardent plus que ceux qui regardent plus, ce qui signifie que les prix baisseront dans un court laps de temps.
Cependant, il est nécessaire de faire une distinction: lorsque les listes sont plus proches de la feuille, la volonté de lire plus ou moins est plus forte. Par exemple, le paiement dans une file est certainement plus fort que celui dans une vingtaine.
Quatrième étape: calcul linéaire du taux de polyspace sur une période
global vol_ratio_arr, mp # 引入全局变量
vol_ratio_arr.insert(0, bidask_ratio) # 把多空比率放到全局变量数组里面
if len(vol_ratio_arr) > 20: # 如果数组超过指定长度
vol_ratio_arr.pop() # 删除最旧的元素
all_ratio = 0 # 临时变量,所有多空挂单比率
all_num = 0 # 临时变量,所有线性乘数
for index, vol_ratio in enumerate(vol_ratio_arr): # 变量全局变量数组
num = 20 - index # 线性乘数
all_num = all_num + num # 线性乘数累加
all_ratio = all_ratio + vol_ratio * num # 所有多空挂单比率累加
ratio = all_ratio / all_num # 线性多空挂单比率
On obtient des ratios d'espace-temps en ajoutant plusieurs en-têtes séparés par des en-têtes vides, mais ce n'est que lorsque l'on utilise une seule donnée de Tick, et si l'on utilise une seule donnée de Tick pour décider de l'achat ou de la vente, cela peut ne pas être une option judicieuse, car une seule donnée de Tick n'est pas convaincante dans un marché en évolution instantanée. Nous avons donc besoin de collecter un certain nombre de données de Tick fixes et de calculer une valeur juste en ligne.
Cinquième étape: passer commande
last_ask_price = asks[0]['Price'] # 最新卖一价,用于买入的价格
last_bid_price = bids[0]['Price'] # 最新买一价,用于卖出的价格
if mp == 0 and ratio > buy_threshold: # 如果当前无持币,并且比率大于指定值
exchange.Buy(last_ask_price, 0.01) # 买入
mp = 1 # 设置虚拟持仓的值
if mp == 1 and ratio < sell_threshold: # 如果当前持币,并且比率小于指定值
exchange.Sell(last_bid_price, 0.01) # 卖出
mp = 0 # 重置虚拟持仓的值
Comme il est nécessaire de spécifier un prix lors de la commande, nous pouvons utiliser directement le dernier prix de vente au moment de l'achat; au moment de la vente, nous pouvons utiliser directement le dernier prix d'achat. Enfin, lorsque la transaction est terminée, nous réinitialisons la valeur du stock virtuel.
Si vous êtes un débutant dans la négociation, la rétroaction des données permet d'apprendre à zéro coût les transactions, de réduire le temps de cognition des transactions, les transactions réelles ou simulées prennent généralement des années pour obtenir des résultats initiaux, et des semaines de données peuvent être utilisées pour obtenir les mêmes résultats, sans perdre de temps. Pour les traders avancés, la rétroaction dynamique peut vous aider à analyser vos problèmes, à vérifier et à perfectionner votre stratégie de négociation, à renforcer la confiance des traders dans la stratégie et à générer de nouvelles inspirations stratégiques.
- Je ne sais pas.La fonctionnalité de lecture en disque virtuel est-elle désactivée?
Ce n'est qu'une simple introduction, il y a beaucoup de détails à optimiser, et j'y reviens maintenant, ce qui est parfois un déficit.