Stratégie de négociation quantitative pour l'analyse de la dynamique des prix en Python

Auteur:La bonté, Créé: 2019-08-09 15:49:06, mis à jour: 2023-10-20 20:13:38

img

Résumé de la stratégie de négociation de la dynamique des prix

La stratégie de trading dynamique consiste à analyser la différence entre les forces de l'offre et les forces de l'offre, en analysant les relations entre les prix d'ouverture, les prix les plus élevés et les prix les plus bas au cours d'une certaine période, ce qui permet de comprendre indirectement la distribution des forces des deux côtés de l'offre sur le marché actuel.

L'analyse de la dynamique des prix a de nombreuses applications dans les listes manuelles traditionnelles, en particulier pour déterminer les tendances unilatérales de la journée.

Cette stratégie est utilisée pour développer un programme d'automatisation des transactions instantanées de la monnaie numérique sur le réseau Token.

Formule de calcul de la dynamique des prix

AR = la somme de toutes les N jours (High-Open) et de toutes les N jours (Open-Low) * 100

Voici quelques-unes:

  • N: fenêtre statistique pour le cycle de temps de jour, généralement par défaut 30 jours, car un mois a environ 30 jours de jour de transaction (transaction de crypto-monnaie 24/7, peut-être un peu plus conservateur)

  • High: le prix le plus élevé d'une journée

  • Ouvert: le prix d'ouverture du jour

  • Low: le prix le plus bas pour une journée

Comment utiliser la dynamique des prix

La dynamique des prix sur une période de temps réagit à la position du prix d'ouverture entre le prix le plus élevé et le prix le plus bas, qui est la base sur laquelle nous jugeons la force de traction des deux côtés.

  • Supposons que cette valeur soit d'environ 100, plus de 100 et la force multi-tête commence à augmenter, moins de 100 et la force vide commence à s'accumuler.
  • L'augmentation de la valeur d'AR indique que le marché est actif, populaire et en plein essor, mais trop élevée indique que le prix est entré dans la zone d'achat excessif, et doit être sélectionné pour le moment de l'équilibre.
  • Une baisse de la valeur de l'AR indique une récession du marché, une forte dynamique de l'air et nécessite des efforts supplémentaires. Une baisse excessive suggère que le prix pourrait être tombé dans la zone de survente, ce qui peut être considéré comme une survente.

Remarque: les chiffres ci-dessus sont des valeurs par défaut et ne sont pas des constants de vérité. Dans le processus de négociation réelle, nous devons ajuster l'intervalle en fonction des changements de marché.

Stratégie de négociation quantitative de la dynamique des prix avec Python

La vieille règle, c'est que nous ouvrons et que nous ne faisons rien.FMZ.COMLes utilisateurs peuvent se connecter à leur compte, cliquer sur le centre de contrôle, déployer des hôtes et des robots.

Pour savoir comment déployer des hôtes et des robots, veuillez vous référer à mon précédent article:https://www.fmz.com/bbs-topic/4140

Les lecteurs qui souhaitent acheter leur propre hôte de déploiement de serveur en nuage peuvent consulter cet article:https://www.fmz.com/bbs-topic/2848

Ensuite, nous cliquons sur la bibliothèque de stratégies dans le menu de gauche et cliquons sur Créer une nouvelle stratégie.

Dans le coin supérieur droit de la page de stratégie de programmation, n'oubliez pas de choisir Python, comme ci-dessous:

img

Ensuite, nous avons écrit le code Python dans la page d'édition du code, le code ci-dessous, avec des annotations très détaillées par ligne, que les lecteurs peuvent comprendre et réaliser lentement. Plus important encore, bien que cette stratégie soit écrite sur la base des transactions instantanées, l'extensibilité du code ci-dessous est également prise en compte pour les transactions à terme. Les lecteurs intéressés peuvent essayer de réécrire le code ci-dessous pour les transactions à terme.

Nous avons commencé à mettre en œuvre cette stratégie en utilisant le bitcoin en espèces du réseau Token comme marque de trading:

import types # 导入Types模块库,这是为了应对代码中将要用到的各种数据类型
def main(): # 主函数,策略逻辑从这里开始
    IDLE = 0 # 用来标记持仓状态,可以理解为0即为空闲状态,也就是空仓状态
    LONG = 1 # 多头持仓
    SHORT = 2 # 空头持仓,注意,此策略应用于现货市场,所以不存在空头开仓或者持仓情况,这里这样写,是为了方便理解策略和以后的扩展(如扩展到期货市场)
    state = IDLE # 标记持仓状态的变量
    while True: # 进入循环
        r = exchange.GetRecords() #GetRecords是发明者量化平台的官方API,详细用法请参见:https://www.fmz.com/api
        if len(r) <= 1: # 判断K线是否大于一根,也就是当前是否为开盘状态,否则可能会进入死循环,这里也方便读者进行扩展,大一些的K线周期趋势状态更稳定。
           Log("bar的数量不足, 等待下一根bar...") # 输出日志
           continue # Python循环控制语句,继续下边的循环内容

        # 开始进行价格动量的量化分析
        ar = sum(r.High - r.Open) / sum(r.Open - r.Low) * 100 # 计算公式

        account = _C(exchange.GetAccount) # 获取账户信息,_C同样为发明者量化平台的官方API,用法请参见:https://www.fmz.com/api

        if ar < 95 and (state == IDLE or state == SHORT) :  # AR值小于超卖线且账户拥有资金,则全仓买入
           
           if account["Balance"] > 50:
                exchange.Buy(-1, account["Balance"] * 0.9) # 市价单全仓买入
                state = LONG # 改变持仓状态为LONG
                  
        elif ar > 80 and (state == IDLE or state == LONG):  # AR值大于超买线且账户有持仓,则全仓卖出
            
           if account["Stocks"] > 0.01:
                exchange.Sell(-1, account["Stocks"] * 0.9) # 市价单全仓卖出
                state = SHORT # 改变持仓状态为SHORT
                      
        LogStatus(_D(), exchange.GetAccount() , state) # 更新日志信息

Retour sur la stratégie

Après avoir écrit une stratégie, la première chose que nous devons faire est de la revoir et de voir comment elle se comporte dans les données historiques, mais s'il vous plaît, les lecteurs, notez que le résultat de la reprise n'est pas équivalent à des prédictions futures, la reprise ne peut être utilisée que comme une information de référence pour considérer l'efficacité de notre stratégie. Une fois que le marché a changé et que la stratégie a commencé à faire de gros pertes, nous devrions trouver le problème en temps opportun, puis changer la stratégie pour l'adapter au nouvel environnement du marché, comme le seuil mentionné ci-dessus.

Cliquez sur la page d'édition de la stratégie pour effectuer une vérification analogique. Sur la page de vérification, les paramètres peuvent être ajustés en fonction des besoins, pour effectuer un débogage facile et rapide, en particulier pour les stratégies complexes en logique et avec de nombreux paramètres, sans avoir à revenir au code source et à modifier une fois par an.

Nous avons sélectionné le dernier mois, cliquez sur l'indicateur d'ajout de la bourse au lieu de l'indicateur de transaction BTC.

img

Voir les résultats

img

Comme vous pouvez le voir, cette stratégie s'est bien déroulée dans les retours de ce mois-ci.

Les avantages et les inconvénients d'une stratégie de dynamique des prix

  • Les avantages

L'avantage de la dynamique des prix par rapport à d'autres indicateurs techniques traditionnels est qu'elle n'utilise pas un prix d'ouverture ou de clôture unique, mais introduit des prix les plus élevés et les prix les plus bas. Une comparaison dynamique est effectuée avec les fluctuations des prix au cours de la journée, ce qui rend l'information du marché plus complète, plus réactive et plus macro.

  • Les défauts

L'utilisation indépendante de la valeur de la dynamique des prix pour déterminer si les prix sont trop élevés ou trop bas, pour juger si les prix sont trop élevés ou trop bas, est susceptible d'être dévalué trop tôt dans une tendance majeure ou trop tôt dans une tendance majeure. Dans l'ensemble, cette stratégie reste une stratégie d'efficacité de choc.

Le seuil de la stratégie doit également être déterminé en fonction des caractéristiques de l'indicateur de négociation. Les fluctuations des prix du marché de la monnaie numérique sont relativement importantes et le volume des transactions est énorme, en particulier sur les devises traditionnelles telles que le bitcoin, et il n'y a pas de limite de chute. Le seuil est donc plus élevé que le marché boursier traditionnel, la ligne 80 de vente supérieure est généralement difficile à toucher et génère moins de signaux d'achat; tandis que la ligne 170 de vente supérieure est souvent sous le seuil et les signaux de vente sont fréquemment déclenchés.

Par conséquent, il n'y a jamais eu de stratégie de trading sacrée dans ce marché, qui puisse gagner de l'argent pour toujours sans répéter, sans démarrer. Nous sommes autant de traders quantifiés que de traders subjectifs, qui finissent par avoir le même sort, qui doivent être adaptés en fonction des changements du marché, en fonction des circonstances, en fonction de tout ce qui change, et qui doivent être ajustés en temps opportun lorsqu'une stratégie n'est pas efficace.

Les amis qui ont des problèmes peuvent venir.https://www.fmz.com/bbsSi vous avez des commentaires, que ce soit sur la stratégie ou la technologie de la plate-forme, les spécialistes de la plate-forme d'inventeur de quantification sont toujours là pour vous répondre.


Relationnée

Plus de

- Je vous en prie.Merci beaucoup!