在Python中,破解通达信接口的列表推导式是一种简洁的语法,可以快速生成一个新的列表。列表推导式的基本语法如下:
复制代码复制代码复制代码[expressionforiteminiterableifcondition]
其中,expression表示要生成新列表中的每个元素的表达式;item表示可迭代对象中的每个元素;iterable表示可迭代对象,如列表、元组、字符串等;condition表示可选的条件,只有满足条件的元素才会被加入新列表中。
下面是一些使用列表推导式来挖掘股票数据接口的例子:
# 生成一个包含1到10的平方数的列表 squares = [x**2 for x in range(1, 11)] print(squares) # 生成一个包含字符串长度大于3的字符串列表 words = ["apple", "banana", "orange", "pear"] long_words = [word for word in words if len(word) > 3] print(long_words)
但是,在量化交易接口函查询数据之后,默认都是非空,如果允许空,则使用Nullable(Int32)的字段类型声明。例如将amount和volume设置为Int64,防止数据超范围。再加上ENGINE是表引擎,默认使用MergeTree,这里使用ReplacingMergeTree是为了防止重复值。同时也要注意 ORDER BY表示对某些数据进行排序,比如这里对股票代码和日期进行排序,ORDER BY的列也会被数据接口函数设置为索引,通过搜索功能快速的输入自己的策略,执行自动交易。执行文档示例:MetaTradeAPI (metatradeapi) - Gitee.com
使用流程示例:
将 MetaTrade.dll, MetaTrade.lic, MetaTrade.ini 三个文件放到应用程序同级目录
-
- 调用 LoadLibrary 加载 MetaTrade.dll 实例
- 调用 GetProcAddress 获取 API 函数地址
- 调用 Init 接口进行 API 初始化
- 调用 Logon 接口登录券商账户并获得与之对应的 ClientId, 一个应用程序实例可以同时登录多个账户
- 通过 ClientId 调用其它 API 接口进行查询或委托下单
- 调用 Logoff 接口登出券商账户
- 调用 Deinit 接口进行 API 清理
- 调用 FreeLibrary 卸载 MetaTrade.dll 实例
注: API 具有自动断线重连功能, 应用程序只需进行简单的错误处理即可除 Init/Deinit/Logon 外的其它接口都是线程安全。