https://github.com/jameskbowler/fxcpy

fxcp的Python项目详细描述


fxcpy

fxcpy是forexconnect api的开源python实现 fxcm提供的sdk。完整的文件可以找到 `here<;http://fxcodebase.com/bin/forexconnect/1.4.1/help/cpluplus/web content.html index.html>;`

当前功能

  • 交易表 -fxcpy支持内存中的所有交易表 交易服务器自动更新的快速访问。
    • accountstable -包含帐户余额等数据, 已用利润、每日净利润、总净利润等。
    • 可提供 -所有仪器属性,如符号、活动 出价/要价、点数、合同货币等…
    • orderstable -保存订单属性,直到它们被执行。
    • tradestable 一旦执行订单,就插入交易 并用各种属性进行跟踪。
    • closedtradestable -包含 当前交易日。
    • 摘要表 -包含每个 打开位置的仪表。
    • 消息稳定 -处理交易发送的消息 服务器,如追加保证金通知。
  • 交易 -fxcpy非常灵活,有许多执行选项 不同类型的订单。
    • oco(一个取消另一个)
    • OTO(一个触发另一个)
    • otoco(一个触发oco)
    • 限制,输入限制,尾随输入限制
    • 开盘/收盘,市场范围
    • 打开/关闭限制,限制范围
    • 停止,进入停止,尾随停止
    • 净订单
    • 订单克隆
  • 数据 -fxcpy支持直播和历史价格 数据

要求

  • ubuntu 16.04
  • 提升1.65.1
  • cmake 3.9.6
  • ForexconnectAPI 1.4.1(含)

安装

安装此api的很大一部分与boost&cmake有关, 因此, install_script.sh 包括 还有这个API。目前支持Ubuntu16.04,没有计划 以支持Windows操作系统。不过,将增加支持 很快就会有其他Linux版本。

请熟悉安装过程并删除任何 系统中已安装的元素。如果boost 1.65.1或更高 使用与通常不同的路径安装 /usr:/usr/local…等,编辑 cmakelists.txt文件位于 /cpp 目录中。

首先下载此存储库。

git clone https://github.com/JamesKBowler/fxcpy.git

切换到 fxcpy/ 目录。

cd fxcpy/

一旦对脚本满意,请执行以下操作。

chmod +x install_script.sh && sudo ./install_script.sh

脚本将向/etc/environment文件中添加一个环境变量。 但是,在您的机器 重新启动或注销并重新登录。

要了解有关环境变量的更多信息,请阅读 `这个<;https://askubuntu.com/questions/866161/setting-path-variable-in-etc-environment-vs-profile?utm_medium=有机物&u;utm_source=google_rich_qa&u;utm_campaign=google_rich_qa>;``uu 关于askubuntu的问题。

exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/fxcpy/cpp/lib

安装后,您的系统将有两个模块 forexconnect 以及fxcpy。哦,如果还没有安装熊猫的话。

forexconnect模块是一个c++包装器,而fxcpy模块是python 实施。在实际的交易环境中使用这个api之前,我 强烈建议 首先在免费开放的演示帐户上测试 在 `fxcm<;https://www.fxcm.com/uk/forex trading demo/>;`

进行外汇管理的交易 电台<;https://www.fxcm.com/uk/platforms/trading station/download/>;`\uu 同时开盘看交易同时执行是个好主意。

基本用法

我们不会讨论存储密码和 简单,创建一个setting.py文件来保存您的fxcm用户、密码, 环境和URL信息。

例如。

# /fxcpy/fxcpy/settings.pyUSER="DEM12345"PASS="123456"URL="http://www.fxcorporate.com/Hosts.jsp"ENV="demo"# or "real"

要开始创建会话,请登录您的fxcm帐户

fromfxcpy.session_handlerimportSessionHandlerfromfxcpy.settingsimportUSER,PASS,URL,ENVsession_handler=SessionHandler(USER,PASS,URL,ENV,load_tables=True)

监视会话状态通过 sessionMonitoring类,位于 sessionhandler中

status=session_handler.session_monitoring.get_status()

要获取fxcm所有优惠的信息,请获取 优惠表 从会话处理程序中初始化

offers_table=session_handler.get_offers_table()

forexconnect api没有内置函数来使用 仪表符号,因此我们必须始终传递唯一的报价。 当然,可以构建这样的功能。然而,这将涉及 每次调用时在表中的每一行上循环。

所有优惠属性都可以通过 优惠表 这样访问。

offer=offers_table.get_offer_ids()offer={'AUD/CAD':'16','AUD/CHF':'39','AUD/JPY':'17','AUD/NZD':'28','AUD/USD':'6','AUS200':'1001','Bund':'3001','CAD/CHF':'90','CAD/JPY':'18','CHF/JPY':'12','CHN50':'1020','Copper':'1016','ESP35':'1002','EUR/AUD':'14','EUR/USD':'1',.....}offers_table.get_contract_currency(offer['EUR/USD'])

所有其他表都以相同的方式访问。

git clone https://github.com/JamesKBowler/fxcpy.git
0

等等..

使用tradingcommands类执行交易非常简单。

git clone https://github.com/JamesKBowler/fxcpy.git
1

接下来,对欧元/美元进行5次做空交易,止损和跌停 通过一个API调用订购。

本例将止损15点以上,限价30点 低于当前价格。

git clone https://github.com/JamesKBowler/fxcpy.git
2

有关更多示例,请查看 /tests 目录。

使用 ordermoitor进行交易执行监控 类,由 TableListener更新。

git clone https://github.com/JamesKBowler/fxcpy.git
3

每个 trade\u id 都有自己的监视类,每个 附加到初始交易的订单,方便地包装在 字典。

git clone https://github.com/JamesKBowler/fxcpy.git
4

以当前市场价格平仓,平仓 tradestable类的属性。

git clone https://github.com/JamesKBowler/fxcpy.git
5

价格历史记录

fxcm有大量的免费数据,marketdata类将提供 访问这些数据。

注:

  • fxcm服务器在一个api中返回的数据永远不会超过300条。 调用.< /LI>
  • 所有日期时间存储在UTC中,类型为OLE Automation,用于 实例 float(0.0)=datetime(1899,12,30) ,查看 /utils 目录。
git clone https://github.com/JamesKBowler/fxcpy.git
6

生成器返回结构化numpy数组。

git clone https://github.com/JamesKBowler/fxcpy.git
7

制图

有关完整的示例,请参见 /tests 目录。

git clone https://github.com/JamesKBowler/fxcpy.git
8 < div > alt tag

alt标记

开发

有很多测试要完成,我正在慢慢地进行 在我的业余时间。

请随时就任何改进提供建议。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用C在任何情况下检索Java安装目录#   javascript ClassNotFoundException在NativeScript中使用。扩展()   如何将Hadoop路径对象转换为Java文件对象   JavaJersey 2.22:我应该在哪里定义REST资源的位置?   java复制数组并使用printall()方法将1添加到其大小,以返回新数组中的所有int   在Java代码中使用JMeter JDBC连接   Java8流。findFirst()仅在排序后才有意义?   用于授权的Java swagger注释   java如何执行未使用execmavenplugin调用的“Premain”方法   java请求错误,状态:0弹出a4j:支持   Java JUnit、接口、类标题   java需要正则表达式来匹配字符串   java Springboot Wildfly 10部署错误jdk。找不到不支持的模块   java notifyDataSetChanged()不起作用   java搜索将对象之间的双向链接转换为JSON格式的正确方法   java在json中使用多个不同的嵌套对象来改进   java JPA:将LocalDateTime属性与生成器进行比较。currentTimestamp()   java在遗留应用程序中查找硬编码字符串