En la carga de los recursos... Cargando...

FMZ lanza el motor de búsqueda nativo Python

El autor:Los inventores cuantifican - sueños pequeños, Creado: 2018-04-13 09:48:31, Actualizado: 2019-08-19 16:30:05

FMZ lanza el motor de búsqueda nativo Python

FMZ backtest engine paquete de Python El motor de repetición de FMZ Python soporte para python2 y python3, soporte para Windows, Linux, Mac Soporte para python2 y python3, soporte para sistemas Windows, Linux, Apple Mac OS

instalar

Instalaciones En la barra de comandos, escriba el siguiente comando:

pip install https://github.com/fmzquant/backtest_python/archive/master.zip
  • No hay que olvidarlo. Cuando se instala un sistema Apple Mac, si hay limitaciones de seguridad, se requiere agregar el comando sudo antes de la orden pip, y se requiere la entrada del código del sistema antes de que se ejecute la orden de instalación completa.

Un ejemplo simple.

Un ejemplo simple

'''backtest
start: 2018-02-19 00:00:00
end: 2018-03-22 12:00:00
period: 15m
exchanges: [{"eid":"OKEX","currency":"LTC_BTC","balance":3,"stocks":0}]
'''
from fmz import *
task = VCtx(__doc__) # initialize backtest engine from __doc__
print exchange.GetAccount()
print exchange.GetTicker()
print task.Join() # print backtest result

The config string can be generated automatically by saving the backtest configuration in the strategy edit page. La config string puede ser generada automáticamente al guardar la configuración de la prueba de retroceso en la página de edición de la estrategia. Se puede generar automáticamente la configuración de la secuencia de configuración mediante la conservación de la configuración de revisión en la interfaz de edición de la política

meta

Documentación

Documentación de API: (es decir, documentación para llamar a funciones como GetAccount en el ejemplo)

El código de Python es una simple anotación:

'''backtest
start: 2018-02-19 00:00:00
end: 2018-03-22 12:00:00
period: 15m
exchanges: [{"eid":"OKEX","currency":"LTC_BTC","balance":3,"stocks":0}]
'''
from fmz import *                                                  # 引用 发明者量化 库
task = VCtx(__doc__) # initialize backtest engine from __doc__     # 调用 VCtx 函数 根据 __doc__初始化。
print exchange.GetAccount()                                        # 测试 GetAccount 函数,并打印 回测系统测试交易所账户信息
print exchange.GetTicker()                                         # 测试 GetTicker 函数,并打印 回测系统 行情信息
print task.Join() # print backtest result                          # 调用 初始化后的 task 对象 显示回测结果
  • - ¿Por qué no?

    是两个下划线。__doc__用来访问模块,类声明或者函数的声明中第一个未被赋值的字符串,
    可以是被""" ""","" "",' ',括起来的,作用就是把 代码中 '''backtest   ...  ''' 的回测配置信息  传入 VCtx 类构造函数构造对象。
    
  • En la parte de abajo de la página, el código de prueba está modificado para ver cómo se llama la función Log, GetTicker.

    # coding=UTF-8
    
    '''backtest
    start: 2018-02-19 00:00:00
    end: 2018-03-22 12:00:00
    period: 15m
    exchanges: [{"eid":"OKEX","currency":"LTC_BTC","balance":3,"stocks":0}]
    '''
    
    from fmz import *                                                # 引用 发明者量化 库
    task = VCtx(__doc__) # initialize backtest engine from __doc__     # 调用 VCtx 函数 根据 __doc__初始化。
    print exchange.GetAccount()                                        # 测试 GetAccount 函数,并打印 回测系统测试交易所账户信息
    Log("\n 调用Log")
    Log("调用 exchange.GetTicker() : ", exchange.GetTicker())
    print task.Join() # print backtest result                          # 调用 初始化后的 task 对象 显示回测结果
    
    • El código de salida de print exchange.GetAccount ((() muestra lo siguiente:
    {'Balance': 3.0, 'Stocks': 0.0, 'FrozenBalance': 0.0, 'FrozenStocks': 0.0}
    
    • Log (("\nLog de llamada") 、 Log (("Log de llamada exchange.GetTicker (()) ":), exchange.GetTicker (())

    El contenido de la salida se encuentra en la estructura de datos de salida de print task.Join:

    {
        "Chart": {
     	   "Cfg": "",
     	   "Datas": []
        },
        "Elapsed": 42000000,
        "Finished": true,
        "Indicators": {},
        "LoadBytes": 441845,
        "LoadElapsed": 24000000,
        "LogsCount": 2,
        "Profit": 0.0,
        "ProfitLogs": [],
        "Progress": 100.0,
        "RuntimeLogs": [                                                  # 调用输出内容在此处
     	   [1, 1518969600200, 5, "", 0, 0.0, 0.0, "\n 调用Log", "", ""],
     	   [2, 1518969600400, 5, "", 0, 0.0, 0.0, "调用 exchange.GetTicker() :  {'Sell': 0.02113476, 'Volume': 519.6953, 'Buy': 0.02113474, 'Last': 0.02113475, 'High': 0.02113476, 'Time': 1518969600000L, 'Low': 0.02113474}", "", ""]
        ],
        "Snapshort": [{
     	   "Balance": 3.0,
     	   "BaseCurrency": "LTC",
     	   "Commission": 0.0,
     	   "FrozenBalance": 0.0,
     	   "FrozenStocks": 0.0,
     	   "Id": "OKEX",
     	   "QuoteCurrency": "BTC",
     	   "Stocks": 0.0,
     	   "Symbols": {
     		   "LTC_BTC_OKEX": {
     			   "Last": 0.01893785
     		   }
     	   },
     	   "TradeStatus": {}
        }],
        "Status": "",
        "Task": {
     	   "Args": null,
     	   "Exchanges": [{
     		   "Balance": 3,
     		   "BaseCurrency": "LTC",
     		   "BasePeriod": 300000,
     		   "BasePrecision": 4,
     		   "DepthDeep": 5,
     		   "FaultTolerant": 0,
     		   "FeeDenominator": 5,
     		   "FeeMaker": 75,
     		   "FeeMin": 0,
     		   "FeeTaker": 80,
     		   "Id": "OKEX",
     		   "Label": "OKEX",
     		   "PriceTick": 1e-08,
     		   "QuoteCurrency": "BTC",
     		   "QuotePrecision": 8,
     		   "SlipPoint": 0,
     		   "Stocks": 0
     	   }],
     	   "Options": {
     		   "DataServer": "q.botvs.net",
     		   "MaxChartLogs": 800,
     		   "MaxProfitLogs": 800,
     		   "MaxRuntimeLogs": 800,
     		   "NetDelay": 200,
     		   "Period": 900000,
     		   "RetFlags": 189,
     		   "SnapshortPeriod": 300000,
     		   "TimeBegin": 1518969600,
     		   "TimeEnd": 1521691200,
     		   "UpdatePeriod": 5000
     	   }
        },
        "TaskStatus": 1,
        "Time": 1521691200000
    }
    
  • Cómo usar una política para hacer una revisión en el motor de revisión local

# !/usr/local/bin/python
# -*- coding: UTF-8 -*-
'''backtest
start: 2018-02-19 00:00:00
end: 2018-03-22 12:00:00
period: 15m
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD","balance":10000,"stocks":3}]
'''
import sys
sys.path.append("/usr/local/lib/python2.7/site-packages")    # 测试时添加了路径,如不需要可以删除

from fmz import *
import math
import talib

task = VCtx(__doc__) # initialize backtest engine from __doc__

# ------------------------------ 策略部分开始 --------------------------
print exchange.GetAccount()     # 调用一些接口,打印其返回值。
print exchange.GetTicker()

def adjustFloat(v):             # 策略中自定义的函数
    v = math.floor(v * 1000)
    return v / 1000

def onTick(e):
    Log("onTick")
    # ....

#
# ...
# 
# 此处省略 自定义函数实现等代码。

def main():
    InitAccount = GetAccount()
    
    while True:
        onTick(exchange)
        Sleep(1000)
# ------------------------------ 策略部分结束 --------------------------

try:
    main()                     # 回测结束时会 raise EOFError() 抛出异常,来停止回测的循环。所以要对这个异常处理,在检测到抛出的异常后调用 task.Join() 打印回测结果。
except:
    print task.Join()          # print backtest result  , 打印回测结果。

Más.

¿Qué quieres decir?/Users/taoxing/opt/anaconda3/envs/ai4f/lib/python 3.8/site-packages/flask_sqlalchemy/__init__.py:793: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS añade un importante sobrecargo y será desactivado por defecto en el futuro. Warnings.warn ((FSADeprecationWarning)) (en inglés) (en inglés) Traceback (última llamada más reciente): File "/Users/taoxing/Desktop/quant/trading_api_study/fmz/fmz_extend_api_demo/app.py", línea 152, en db.create_all ()) El archivo "/Users/taoxing/opt/anaconda3/envs/ai4f/lib/python3.8/site-packages/flask_sqlalchemy/__init__.py", línea 963, se encuentra en create_all Self._execute_for_all_tables (app, bind, 'create_all') El ejecutivo puede ejecutar todas las tablas El archivo "/Users/taoxing/opt/anaconda3/envs/ai4f/lib/python3.8/site-packages/flask_sqlalchemy/__init__.py", línea 955, en _execute_for_all_tables, está disponible en el siguiente formato: Op (bind=self.get_engine) (app, bind), **extra) El archivo "/Users/taoxing/opt/anaconda3/envs/ai4f/lib/python3.8/site-packages/flask_sqlalchemy/__init__.py", línea 896, en el motor de get_engine En el caso de los motores de alta velocidad, los motores de alta velocidad son los más potentes. El archivo "/Users/taoxing/opt/anaconda3/envs/ai4f/lib/python3.8/site-packages/flask_sqlalchemy/__init__.py", línea 556, en el motor de get_engine ¿Qué es lo que está pasando? El archivo "/Users/taoxing/opt/anaconda3/envs/ai4f/lib/python3.8/site-packages/flask_sqlalchemy/__init__.py", línea 861, en el que se aplica el controlador de seguridad info.database = os.path.join ((app.root_path, info.database) es el código de acceso de la base de datos de la aplicación. AtributeError: no se puede establecer un atributo ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

el guanyuwanglei 我想运行实盘机器人,添加Wex.app交易所相当于实盘模拟交易是吧?谢谢

el guanyuwanglei¿Qué configuraciones se pueden optimizar para obtener más datos de disco real? /upload/asset/105f604eaceb0d3928a90.png /upload/asset/1066714d9a32c82eab7f1.png

el guanyuwangleiHola, quiero usar el par de transacciones de tokens instantáneos husd/usdt, y probé con exchange.IO (("currency", "HUSD_USDT"), exchange.IO (("currency", "HUSD/USDT"), exchange.IO (("currency", "HUSDUSDT"), no se ejecuta la salida o el fracaso de la suscripción de variedad, ¿cuál es la ortografía correcta?

Un buen modelo todos los días.No entiendo los resultados de esta prueba, ¿cómo puedo visualizarlos?

el guanyuwangleiPor favor, en Windows, Exchange no puede resolverlo, gracias

¿Qué quieres decir?Si el sistema de retrospección de transacciones que soporta actualmente es relativamente pequeño, ¿permite este proyecto de código abierto a sus desarrolladores añadir algunos pares de transacciones?

1058715329¿Cuándo se puede apoyar la optimización de parámetros locales?

Un poco de conocimiento@ChiloChilo Dream. Gracias. ¿Tienes un modelo de python 3? He descargado la biblioteca de fmz, pero cuando lo usé, me dieron un error y no pude encontrar el paquete.

Es cierto.¿Cómo configurar el modo Tick? Por defecto parece que se usa el Tick de nivel analógico, cómo cambiar al Tick de nivel real

el chino¿Dónde debería estar la función principal de una política en este ejemplo?

el chino¿Puedo volver a evaluar sólo con BTC?

- ¿ Qué quieres decir?¿Se debe escribir como print (exchange.GetTicker))) en Python 3?

yxybyqEn la plataforma no hay problemas, el redireccionamiento local es frecuente.

el liputEn fmz, se escribe la función principal, se ve que la mayoría de las políticas se escriben a sí mismas mientras True, y luego se llaman a la política de forma recurrente. Pero cuando se utiliza el motor de recuperación nativo de Python, mientras True siempre permite que el programa se ejecute, no puede detenerse en el tiempo de inicio y final especificado por __doc__ y dar la salida de Log. ¿Qué se debe hacer? Además, en otras plataformas de cuantificación, veo que generalmente solo se escriben funciones especificadas por el desarrollador y luego son devueltas por la plataforma. fmz permite escribir directamente la entrada principal, ¿hay alguna ventaja o consideración de diseño o arquitectura?

el liputLa variable de entrada interactiva en el código, ¿cómo se escribe en _doc__ o se introduce como un parámetro?

el liputEl código ha cambiado a fmz, el ejemplo de código en la documentación debe cambiar el nombre del paquete.

Sí SíEn el main (()) es normal. ¿Por qué el intercambio de llamadas en clase da un error? File "D:/workspace/strategy/strategy_001.py", línea 101, en el área de trabajo principal La cuenta = self._exchange.GetAccount (()) File "C:\Users\User\AppData\Local\Programs\Python\Python36-32\lib\site-packages\botvs.py", línea 716, en GetAccount El nombre de la aplicación está disponible en el archivo "C:\Users\User\AppData\Local\Programs\Python\Python36-32\lib\site-packages\botvs.py", línea 716, en GetAccount EOF (en inglés) File "C:\Users\User\AppData\Local\Programs\Python\Python36-32\lib\site-packages\botvs.py", línea 569, en EOF ¿Qué es lo que está pasando?

el topscien¿Cuál es la función de esta cosa?

- ¿ Qué pasa?No entiendo muy bien cómo usarlo, ¿este retorno local también necesita comunicarse con la plataforma botvs? ¿Qué política de retorno está configurada?

Los inventores cuantifican - sueños pequeñosPrueba con el último paquete fmz.

Los inventores cuantifican - sueños pequeñosEl administrador es gratuito, pero el despliegue de un solo botón es el alquiler automático de servidores de Ali Cloud, que cuesta el costo del servidor.

el guanyuwangleiEsto significa que el administrador paga y el robot puede elegir entre probar WexApp o optar por transacciones en vivo en una bolsa real, ¿verdad?

Los inventores cuantifican - sueños pequeñosUn hoste de implementación, que se implementa en un servidor de la nube Ali, es de pago y se cobrará del saldo de su cuenta. El bot se ejecuta solo para operar el disco de wexApp, el bot no tiene cargo y no tiene relación con el costo de un servidor de implementación.

el guanyuwangleiEs decir, con un solo botón, puedes desplegar un servidor, elegir WexApp, un robot y una plataforma analógica, y probar el efecto de la simulación, ¿verdad?

Los inventores cuantifican - sueños pequeñosEl servidor de alquiler que se despliega es otro cargo adicional. No tiene nada que ver con el costo del disco real del robot, el uso del disco de WexApp solo dice que el robot funciona de forma gratuita (el robot de moneda digital se cobrará si se agrega cualquier objeto de un disco de intercambio no WexApp).

el guanyuwanglei¿Un administrador de alquiler de teclas, sin cargo para el uso del intercambio de wexApp? /upload/asset/1066e4b56fa103356dbc1.png

Los inventores cuantifican - sueños pequeñosWexApp es el disco de FMZ y es gratuito.

Los inventores cuantifican - sueños pequeñosNo es muy amable.

Los inventores cuantifican - sueños pequeñosLa cantidad de datos de retraso a nivel de disco real es relativamente grande, y la configuración en el gráfico ya es óptima.

el guanyuwangleiEn cambio, para el período de tiempo más reciente, el par de transacciones está bien, exchange.SetCurrency (("BTC_USDT") puede ser real, muchas gracias.

Los inventores cuantifican - sueños pequeñosSi no lo haces, entonces no puedes tener más tiempo.

el guanyuwanglei/upload/asset/1063627010637fee333ad.png /upload/asset/1063627010637fee333ad.png /upload/asset/1063627010637fee333ad.png /upload/asset/1063627010637fee333ad.png /upload/asset/1063627010637fee333ad.png Esta es la configuración de exchange.SetCurrency (BTC_USDT) en el código. Sin embargo, la sugerencia general de la variedad de la suscripción fracasa BTC_USDT_OKEX o nada se muestra, se retira directamente

el guanyuwangleiGracias.

Los inventores cuantifican - sueños pequeñosEn el disco físico, la redimensión en línea de la plataforma y el motor de redimensión local utilizan datos de los centros de datos de FMZ, que ofrecen un número limitado de pares de transacciones, no todos los pares de transacciones.

el guanyuwanglei¿Puede un verdadero negocio obtener ese negocio?

Los inventores cuantifican - sueños pequeñosEl sistema de retrospección no tiene datos de este par de transacciones por el momento.

Los inventores cuantifican - sueños pequeñosLos resultados de la retrospección son en forma de datos, y si desea visualizarlos, debe escribir su propio código para analizarlos. Si no, puede usar un sistema de retrospección en línea.

el guanyuwangleiA5: = MA ((C,5); A10: = MA (C,10); Ángulo: IF (CROSS) (A5, A10), ATAN (A5/REF) (A5, 1) -1) * 100) - ATAN (A10/REF) (A10, 1) -1) * 100),0) * 180/3.1416; Si encontramos esta fórmula, no sabemos cómo se realiza REF.

Los inventores cuantifican - sueños pequeñosEsto se calcula en función de las necesidades, en la estrategia, y la fórmula se puede buscar en Baidu.

el guanyuwangleiPor favor, ¿cómo se calcula el ángulo de Macd de la horquilla de oro \ horquilla muerta, hay alguna fórmula para calcular?

el guanyuwangleiPor favor, import statsmodels no funciona en el editor de políticas, ¿dónde puedo importar una biblioteca de terceros?

Los inventores cuantifican - sueños pequeñosEsta es la hora de inicio de la línea K fija, y si se necesita una línea K diaria que comience desde cero, se puede calcular con una síntesis de línea K de una hora.

el guanyuwanglei¿La hora de cierre en el código y la hora de cierre en la retrospección son las 8:00 a.m. hora de Beijing? Si la hora de cierre no es las 8:00 am, por favor pregunte cómo se establece, gracias /upload/asset/1067eabe09e92d1610d71.png

Los inventores cuantifican - sueños pequeñosEn la Plaza de las Estrategias puedes encontrar algunos ejemplos de estrategias, y si las entiendes, puedes empezar a escribir algunas estrategias sencillas.

el guanyuwangleiPor favor, he terminado de leer el material básico, las instrucciones de uso de FMZ y la documentación API, ¿debo leer ese conocimiento después?

Los inventores cuantifican - sueños pequeñosNo es muy amable.

el guanyuwangleiGracias.

Los inventores cuantifican - sueños pequeñosEsto se puede ejecutar directamente en la línea de comandos.

el guanyuwangleiEste código es necesario para ejecutarlo en un archivo.py, que requiere la importación de ccxt, de lo contrario, el exchange no puede reconocerlo. En Python Consle, el editor puede funcionar correctamente.

Los inventores cuantifican - sueños pequeñosNo sirve, un programa Python normal puede correr. Mi código es el que ejecuta directamente el comando.

el guanyuwanglei/upload/asset/106d6ff1919bdac419875.png /upload/asset/106d6ff1919bdac419875.png /upload/asset/106d6ff1919bdac419875.png ¿Cómo es posible que el intercambio de importación de ccxt, fmz, use ccxt? ¿No lo ves?

Los inventores cuantifican - sueños pequeñosLa gente está muy preocupada por la salud de los niños. El nombre del archivo es testBackTest ¿Por qué no lo haces? Desde fmz import * ¿Qué es lo que está pasando? ¿Qué está pasando? Start: 2018-02-19 00:00:00 El juego está en línea. end: 2018-03-22 12:00:00 Periodo: 15 m En la actualidad, la mayoría de los intercambios de Bitcoin se encuentran en el mercado de divisas. ¿Qué es esto? #createbacktest Print ((exchange.GetAccount)) (en inglés) En el caso de los usuarios de los servicios de correo electrónico, los usuarios de los servicios de correo electrónico pueden enviar mensajes de correo electrónico a los usuarios de los servicios de correo electrónico. ¿Por qué no lo haces? /upload/asset/16bea6055e58a9ef7d5c.png /upload/asset/16bea6055e58a9ef7d5c.png /upload/asset/16bea6055e58a9ef7d5c.png /upload/asset/16bea6055e58a9ef7d5c.png /upload/asset/16bea6055e58a9ef7d5c.png /upload/asset/16bea6055e58a9ef7d5c.png

Los inventores cuantifican - sueños pequeñosEn la actualización de la última versión de fmz python, que acabo de descargar para probar.

el guanyuwanglei/upload/asset/1068d63bc6203599fc1c8.png /upload/asset/1068d63bc6203599fc1c8.png /upload/asset/1068d63bc6203599fc1c8.png /upload/asset/1068d63bc6203599fc1c8.png Modificó la inicialización, pero no se puede reconocer el intercambio o el registro

Los inventores cuantifican - sueños pequeños¿Por qué no lo haces? Desde fmz import * ¿Qué es lo que está pasando? ¿Qué está pasando? Start: 2018-02-19 00:00:00 El juego está en línea. end: 2018-03-22 12:00:00 Periodo: 15 m En la actualidad, la mayoría de los intercambios de Bitcoin se encuentran en el mercado de divisas. ¿Qué es esto? # Crear un entorno de retrospección ¿Por qué no lo haces? Si se inicializa de esta manera, es como si se configurara el intercambio, el par de transacciones, etc. en la revisión en línea.

el guanyuwangleiEn la actualidad, el sitio web de la compañía es el más visitado por los visitantes. No se puede reconocer el intercambio, ya está instalado el paquete fmz en Python.

Los inventores cuantifican - sueños pequeñosEn la página web de la organización, se puede ver una imagen de los informes de error.

Los inventores cuantifican - sueños pequeñosPor el momento, no es posible, ya que los datos de retrospección se obtienen de FMZ. Sin embargo, el código es de código abierto y puede modificarse y reemplazar la fuente de datos a voluntad.

Los inventores cuantifican - sueños pequeños¿Por qué no lo haces? /* prueba de respaldo Inicio: 2019-09-21 End: 2019-10-20 Período: 1h En la actualidad, la mayoría de los intercambios de Bitcoin se encuentran en el extranjero, y el resto de los intercambios se encuentran en el extranjero. Modo: 1 ¿Qué es eso? ¿Por qué no lo haces? Con la configuración de la configuración de la configuración, la configuración de la configuración de la configuración de la configuración de la configuración de la configuración de la configuración de la configuración de la configuración de la configuración de la configuración de la configuración de la configuración.

En el futuro¿Cuál es el problema?

el chujiuSí, es cierto.

el xenuroLa cima

Los inventores cuantifican - sueños pequeñosBueno, este registro no tiene soporte por el momento.

Un poco de conocimientoEstá bien, gracias.

Los inventores cuantifican - sueños pequeñosEncontramos el problema y lo estamos tratando.

Un poco de conocimientoSí, con mac os 10.14.4

Los inventores cuantifican - sueños pequeños¿Su sistema operativo es Mac OSX?

Un poco de conocimientoEstoy usando conda para administrar la versión de python, y confirmo que he descargado la versión de python de fmz, que también está disponible localmente.

Los inventores cuantifican - sueños pequeñosSi tienes varias versiones de Python, comprueba dónde está instalado el paquete.

Los inventores cuantifican - sueños pequeñosLa publicación se ha actualizado, puedes ver el ejemplo al final de la publicación.

Los inventores cuantifican - sueños pequeñosLa función main está bien escrita, directamente llamada y listo.

el chino https://github.com/fmzquant/backtest_python/issues/4,看看这个有没有帮助

Los inventores cuantifican - sueños pequeñosLa información errónea, más concretamente, se puede ver en la imagen de abajo.

el chinoEs decir, el código de ejemplo se convierte en BTC_USDT y se equivoca.

Los inventores cuantifican - sueños pequeñosLa pregunta es qué tipo de bolsa se ha elegido para evaluar.

Los inventores cuantifican - sueños pequeñosPara ver más concretamente, la notificación de error es la ubicación incorrecta.

Los inventores cuantifican - sueños pequeñosFMZ utiliza una arquitectura de consulta, lo que permite un mayor control de los procesos y una mayor flexibilidad en la redacción de políticas.

Los inventores cuantifican - sueños pequeños'' 'Backtest' es el nombre de una de las pruebas. Inicio: 2018-02-19 00:00:00 end: 2018-03-22 12:00:00 Periodo: 15 m En la actualidad, la mayoría de los intercambios de Bitcoin se encuentran en el mercado de divisas. ¿Qué es eso? Estas son:

Los inventores cuantifican - sueños pequeñosEn la página de Facebook de la organización, se puede leer:

Los inventores cuantifican - sueños pequeñosEl archivo comienza a cargar Esta configuración de cuenta simulada, si está escrita en la clase, no puede cargarse.

Sí SíLa configuración debería ser la correcta. ¿Por qué no se puede escribir una referencia de clase?

Sí Sí¿Qué es lo que está sucediendo? Hay una referencia normal en la función global principal. Pero en la clase, cometió un error. '' 'Backtest' es el nombre de una de las pruebas. Inicio: 2018-02-19 00:00:00 end: 2018-03-22 12:00:00 Periodo: 15 m En la actualidad, la mayoría de los intercambios de Bitcoin se encuentran en el mercado de divisas. ¿Qué es eso? Desde botvs import * Task = VCtx ((__doc__) # Initialize backtest engine from __doc__ El motor de pruebas de seguridad de __doc__ se inicializa en el motor de pruebas de seguridad de __doc__

Los inventores cuantifican - sueños pequeños¿Por qué no lo haces? Def GetAccount ((sólo): r = _ACCOUNT (en inglés) ret = self.lib.api_Exchange_GetAccount ((self.ctx, self.idx, ctypes.byref)) Si ret == API_ERR_SUCCESS: Si ret == API_ERR_SUCCESS: Si ret es el nombre de la página en la que aparece el nombre de la página return r.toObj también Ello no es lo que se espera de nosotros. No hay respuesta EOF (en inglés) ¿Por qué no lo haces? Mirando el siguiente código, parece que api_Exchange_GetAccount es una interfaz de una DLL, en la que tienes un mensaje de error que muestra que no se ha devuelto ni se ha hecho ni se ha devuelto, y luego ejecutas EOF. ¿Tienes configurado los datos de la cuenta de repetición cuando usas el motor de repetición?

Los inventores cuantifican - sueños pequeñosEn este caso, el objetivo es empaquetar el sistema de repetición en una librería de Python, para que el Python local realice la política de repetición.

Los inventores cuantifican - sueños pequeñosHay comunicaciones, cuando se reanuda se solicita datos, pero se ejecuta en un sistema de reanudo localmente. ¿Por qué no lo haces? '' 'Backtest' es el nombre de una de las pruebas. Inicio: 2018-02-19 00:00:00 end: 2018-03-22 12:00:00 Periodo: 15 m En la actualidad, la mayoría de los intercambios de Bitcoin se encuentran en el mercado de divisas. ¿Qué es eso? Desde botvs import * Task = VCtx ((__doc__) # Initialize backtest engine from __doc__ El motor de pruebas de seguridad de __doc__ se inicializa en el motor de pruebas de seguridad de __doc__ Print exchange.GetAccount (en inglés) En el caso de las personas que no están en contacto con el usuario, no se puede hacer uso de la aplicación. En este caso, el resultado de la prueba de impresión es el siguiente: ¿Por qué no lo haces? Este fragmento de código es similar a una política en la que el sistema de revisión se envuelve en una biblioteca, prueba y llama a las funciones del sistema de revisión al ejecutarse. El '' 'backtest...'''' es el parámetro de repetición que se puede generar en la página de repetición de la política de BotVS.