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.git0
等等..
使用tradingcommands类执行交易非常简单。
git clone https://github.com/JamesKBowler/fxcpy.git1
接下来,对欧元/美元进行5次做空交易,止损和跌停 通过一个API调用订购。
本例将止损15点以上,限价30点 低于当前价格。
git clone https://github.com/JamesKBowler/fxcpy.git2
有关更多示例,请查看 /tests 目录。
使用 ordermoitor进行交易执行监控 类,由 TableListener更新。
git clone https://github.com/JamesKBowler/fxcpy.git3
每个 trade\u id 都有自己的监视类,每个 附加到初始交易的订单,方便地包装在 字典。
git clone https://github.com/JamesKBowler/fxcpy.git4
以当前市场价格平仓,平仓 tradestable类的属性。
git clone https://github.com/JamesKBowler/fxcpy.git5
价格历史记录
fxcm有大量的免费数据,marketdata类将提供 访问这些数据。
注:- fxcm服务器在一个api中返回的数据永远不会超过300条。 调用.< /LI>
- 所有日期时间存储在UTC中,类型为OLE Automation,用于 实例 float(0.0)=datetime(1899,12,30) ,查看 /utils 目录。
git clone https://github.com/JamesKBowler/fxcpy.git6
生成器返回结构化numpy数组。
git clone https://github.com/JamesKBowler/fxcpy.git7
制图
有关完整的示例,请参见 /tests 目录。
git clone https://github.com/JamesKBowler/fxcpy.git8 < div >
alt标记
开发
有很多测试要完成,我正在慢慢地进行 在我的业余时间。
请随时就任何改进提供建议。