2.7.1 Système Windows 32 bits Environnement Python 2.7 Installation de la base de données talib

Auteur:Le petit rêve, Créé: 2017-02-11 18:01:05, Mis à jour: 2019-08-01 09:20:22

Système Windows 32 bits Environnement Python 2.7 Installation de la base de données talib


L'inventeur quantifie la plate-forme en utilisant Python pour écrire des stratégies qui ne rapportent pas d'erreurs si elles sont calculées à l'aide d'une bibliothèque de TA réécrite.

Par exemple, une stratégie de retouche (qu'il s'agisse d'un serveur public ou d'un hébergeur, il n'y a pas de problème).

import types
def main():
    STATE_IDLE = -1
    state = STATE_IDLE
    initAccount = ext.GetAccount()
    while True:
        if state == STATE_IDLE :
            n = ext.Cross(FastPeriod,SlowPeriod) # 指标交叉函数
            if abs(n) >= EnterPeriod :
                opAmount = _N(initAccount.Stocks * PositionRatio,3)
                Dict = ext.Buy(opAmount) if n > 0 else ext.Sell(opAmount)
                if Dict :
                    opAmount = Dict['amount']
                    state = PD_LONG if n > 0 else PD_SHORT
                    Log("开仓详情",Dict,"交叉周期",n)
        else:
            n = ext.Cross(ExitFastPeriod,ExitSlowPeriod) # 指标交叉函数
            if abs(n) >= ExitPeriod and ((state == PD_LONG and n < 0) or (state == PD_SHORT and n > 0)) :
                nowAccount = ext.GetAccount()
                Dict2 = ext.Sell(nowAccount.Stocks - initAccount.Stocks) if state == PD_LONG else ext.Buy(initAccount.Stocks - nowAccount.Stocks)
                state = STATE_IDLE
                nowAccount = ext.GetAccount()
                LogProfit(nowAccount.Balance - initAccount.Balance,'钱:',nowAccount.Balance,'币:',nowAccount.Stocks,'平仓详情:',Dict2,'交叉周期:',n)
        Sleep(Interval * 1000)


Le nom de la politique est: Politique de ligne droite (version python), avec le modèle: bibliothèque de négociation de devises numériques instantanées en version python

Il est possible de le copier et de l'obtenir directement sur la place des stratégies.

Cette stratégie n'utilise aucune fonction d'indicateur, mais utilise la fonction d'exportation ext.Cross de la bibliothèque de classes de transactions de crypto-monnaie instantanée de la version Python de ce modèle, appelée dans la fonction d'exportationTA.MADans le même temps, il y a un problème avec le fait que les utilisateurs utilisent la bibliothèque TA.

Si le code est modifié.

import types
import talib  # 改动  引用 talib 库
def main():
    STATE_IDLE = -1
    state = STATE_IDLE
    initAccount = ext.GetAccount()
    while True:
        records = exchange.GetRecords()
        ma = talib.MA(records.Close)       # 改动 ,调用 talib 库的 MA 函数 即 均线指标计算
        LogStatus("均值" + str(ma))
        if state == STATE_IDLE :
            n = ext.Cross(FastPeriod,SlowPeriod) # 指标交叉函数
            if abs(n) >= EnterPeriod :
                opAmount = _N(initAccount.Stocks * PositionRatio,3)
                Dict = ext.Buy(opAmount) if n > 0 else ext.Sell(opAmount)
                if Dict :
                    opAmount = Dict['amount']
                    state = PD_LONG if n > 0 else PD_SHORT
                    Log("开仓详情",Dict,"交叉周期",n)
        else:
            n = ext.Cross(ExitFastPeriod,ExitSlowPeriod) # 指标交叉函数
            if abs(n) >= ExitPeriod and ((state == PD_LONG and n < 0) or (state == PD_SHORT and n > 0)) :
                nowAccount = ext.GetAccount()
                Dict2 = ext.Sell(nowAccount.Stocks - initAccount.Stocks) if state == PD_LONG else ext.Buy(initAccount.Stocks - nowAccount.Stocks)
                state = STATE_IDLE
                nowAccount = ext.GetAccount()
                LogProfit(nowAccount.Balance - initAccount.Balance,'钱:',nowAccount.Balance,'币:',nowAccount.Stocks,'平仓详情:',Dict2,'交叉周期:',n)
        Sleep(Interval * 1000)


Appeler dans la stratégietalib.MASi vous utilisez votre propre vérification de l'hôte ou une stratégie de fonctionnement de disque dur, vous obtenez les erreurs suivantes:

img

Les utilisateurs peuvent se rendre compte que j'utilise un serveur public pour vérifier si c'est correct! C'est vrai! car talib library est déjà installé sur le serveur public.

Pour les environnements Python de votre hôte, il vous suffit d'installer talib manuellement. La démonstration suivante montre comment installer la bibliothèque talib dans un environnement Python 2.7 sous Windows XP (c'est-à-dire Windows 32 bits). Il y a beaucoup de méthodes en ligne, mais une méthode plus simple est utilisée ici.

  • 1, prête à télécharger et installer Python 2.7 (win32)

    img

    Notez que Python 2.7 version win32 est le téléchargement du package d'installation.

    Remarque lors de l'installation: sélectionnez l'option Configuration automatique des variables d'environnement, le composant pip est installé par défaut.

    img

  • 2°, roue d'installation

    img

    Voici les informations à rechercher sur le net:

python wheel怎么安装?
小灰机289 | 浏览 14404 次
推荐于2016-01-19 03:17:24 最佳答案
你装了pip吗,建议先装pip,后面安装各种python库就很方便了。
打开命令行窗口,输入下面的命令:
pip install wheel
这时pip会自动在网络上下载安装wheel。
安装完成后可以敲下面的命令查看是否安装成功:
pip freeze
  • 3, télécharger talib et installer

    Pour télécharger:http://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib

    Pour trouver la version et le système de talib, voir:

    img

    Une fois le téléchargement terminé, l'installation se fait comme indiqué ci-dessous:

    img

  • 4, j'ai pensé que c'était OK, mais j'ai reçu un message d'erreur en testant import talib indiquant que je ne pouvais pas trouver numpy, et que je devais installer cette bibliothèque également.

    img

    Télécharger numpy Pour télécharger:http://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib

    img

    Installation:

    img

  • 5 et essayez.

    img

    Dans l'inventeur quantifier, essayez de la stratégie en utilisant talib indicateur fonction

    Il est possible d'afficher la sortie de LogStatus.

    img

  • Le package d'installation utilisé dans le processus ci-dessus est le suivant, que j'ai transmis au groupe QQ. Les utilisateurs peuvent également le télécharger eux-mêmes à l'adresse du tutoriel.

    img

    Après compression

    img


Plus de

- Je vous en prie.Merci!