使用Python与FXCM Broker实现算法交易?详细指南

2021年11月11日18:01:21 发表评论 945 次浏览

Python如何实现交易操作?了解如何使用 Python 中的 fxcmpy API 来通过演示 FXCM(经纪商)账户执行交易操作,并了解如何使用止盈和止损进行风险管理。

在以前的教程中,我们了解了蜡烛价格格式(OHLC),以及学习使用许多技术指标使用stockstats库在Python。

Python FXCM Broker实现算法交易:在本教程中,我们将学习如何使用Python 中的fxcmpy包装器通过在模拟账户(虚拟货币)上使用 FXCM 经纪商来执行交易操作。

对于本教程,你需要安装:

pip install fxcmpy python-socketio

在福汇交易平台开设模拟账户

在你喜欢的浏览器上,前往福汇交易站,然后点击“免费模拟”,如下图所示,创建一个免费模拟账户:

使用Python与FXCM Broker实现算法交易?详细指南一旦你注册了一个模拟账户,下一步就是生成一个“访问令牌”,我们稍后将在我们的 Python 代码中使用它:

使用Python与FXCM Broker实现算法交易?详细指南使用 fxcmpy 连接至 FXCM

Python如何实现交易操作?首先从fxcmpy包中导入 fxcmpy 类:

from fxcmpy import fxcmpy

Python交易操作示例:然后你应该创建该类的实例,同时指定访问令牌和服务器类型(在我们的示例中为demo)。然后调用该方法connect()建立连接,你可以使用is_connected()返回布尔值(TrueFalse)的方法检查连接是否已建立。

之后,如果你想关闭连接,请考虑使用close()方法。

注意:最好将所有fxcmpy操作包装在try/except/块中,以防 API 连接因某种原因丢失(在大多数情况下,这是一个 HTTP 异常错误,套接字将返回None)。

# generate this once you create your demo account
# this is fake token, just for demonstration
ACCESS_TOKEN = "8438834e8edaff70ca3db0088a8d6c5c37f51279"

try:
    fxcm_con = fxcmpy(access_token=ACCESS_TOKEN, server="demo")
    print("Is connected:", fxcm_con.is_connected())
except Exception as e:
    print(e)

     基本交易操作

在股票市场中,价格通常以 OHLC 格式(开盘价、最高价、最低价、收盘价)显示,该格式绘制为烛台图(查看本教程了解 更多详情)。

使用Python与FXCM Broker实现算法交易?详细指南

我们区分两种类型的交易操作,多头(买入)空头(卖出)

多头操作在此公式下工作:收益/损失 = Close_Price - Open_Price

空头操作在此公式下工作:收益/损失 = - ( Close_Price - Open_Price )

从这两个公式我们得出结论:

  • 当趋势为正/看涨(向上)时使用多头(买入)交易操作,因为在这种情况下Close_Price > Open_Price,因此操作将赚钱(在相反的情况下亏损)。
  • 当趋势为负/看跌(向下)时使用空头(卖出)交易操作,因为在这种情况下Close_Price < Open_Price并且因此操作将赚钱(在相反的情况下亏损)。 

使用Python与FXCM Broker实现算法交易?详细指南

Python FXCM Broker实现算法交易:在多头或空头操作之间进行选择完全取决于你的财务策略的准确程度,因为使用技术指标找到好的交易时机,这就是优秀的金融分析师或我们所说的Quants 的定义

要在fxcmpy 中打开多头(买入)/空头(卖出)交易,我们使用open_trade()操作并将值分配给以下属性:

  • symbol:在我们的案例中,我们想要交易的股票将是“US30”(道琼斯市场指数)。
  • is_buy:True如果我们想要一个长操作,False如果我们想要一个短操作。
  • amount: 正整数值,金额越大,盈亏越大(风险越高)。
fxcm_con.open_trade(symbol="US30",amount=1,is_buy=True,time_in_force="GTC",order_type="AtMarket")

trade_id 如果我们想关闭交易,trade_ids 每个头寸都被分配了一个我们将使用的。要获得所有打开的位置,我们使用的方法get_open_trade_ids()和关闭位置的close_trade()方法,通过指定trade_id amount

trade_id = fxcm_con.get_open_trade_ids()[0]
fxcm_con.close_trade(trade_id=trade_id,amount=1)

你可以查看交易站以查看你的已开仓和已平仓头寸。

使用止盈和止损进行风险管理

在上一节中,我们学习了如何为给定的交易品种(在本例中为US30 )打开买入/卖出操作 。但是,在这种情况下,我们需要 手动使用该方法关闭这些订单 close_trade()

Python如何实现交易操作?如果市场变得过于波动(突然向上/向下),这种策略可能有风险,可能会导致高收益,但也有可能导致高损失。

出于这个原因,有时建议使用获利止损来管理风险。

  • 获利:需要达到的收益量,以便经纪人自动关闭订单。
  • 止损:如果达到,经纪人将自动关闭订单的有限损失金额。

Python交易操作示例:在fxcmpy 中,我们可以通过在open_trade()方法中指定两个属性来实现。

fxcm_con.open_trade(symbol="US30",amount=1,is_buy=True,time_in_force="GTC",order_type="AtMarket",is_in_pips=True,limit=15,stop=-50)

注意:PIP或 Percentage In Points,是代表最小价格变动的单位。

limit属性是stop止盈金额的正整数值,而止损金额是负整数值。

最后,关闭连接:

fxcm_con.close()

结论:

在本Python FXCM Broker实现算法交易教程中,你学习了:

  • 多头(买入)和空头(卖出)操作之间的区别。
  • 如何使用fxcmpy打开简单订单。
  • 如何通过使用fxcmpy添加 TakeProfit/StopLoss 属性来管理订单中的风险。

更详细的可以查看fxcmpy API的官方文档

如果你想要深入了解算法交易的更多细节,我建议你 学习使用 Python 学习算法交易课程,这是 Investopedia 推荐的,请查看!

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: