python - 使用 stunnel 建立与 DUKASCOPY 的连接

标签 python quickfix fix-protocol stunnel

寻求一些帮助,以通过 FIX4.4 协议(protocol)使用 stunnel 和 quickfix python 与我的经纪人 DUKASCOPY 建立连接。

这是我的 channel 配置:

client = yes
cert = /etc/stunnel/stunnel.pem

[OKSERVER]
accept = 9443
connect = demo-api.dukascopy.com:10443

我的 quickfix cfg 文件:

[DEFAULT]
ConnectionType=initiator
LogonTimeout=30
ReconnectInterval=30
ResetOnLogon=Y
FileLogPath=./Logs/

[SESSION]
BeginString=FIX.4.4
SenderCompID=SENDER_ID # replaced with anonymous value for this post
TargetCompID=TARGET_ID # replaced with anonymous value for this post
StartTime=00:00:00
EndTime=00:00:00
HeartBtInt=30
CheckLatency=N
MaxLatency=240
SocketConnectPort=10443
SocketConnectHost=demo-api.dukascopy.com
UseDataDictionary=Y
DataDictionary=/home/jaspal/qfsample/quickfix/spec/FIX44.xml
FileStorePath=./Sessions/

当我尝试登录时,我得到:

20181002-22:26:23.972817000 : Created session
20181002-22:26:23.978505000 : Connecting to demo-api.dukascopy.com on port 10443 (Source :0)
20181002-22:26:24.023770000 : Initiated logon request
20181002-22:26:24.065703000 : Socket Error: Connection reset by peer.
20181002-22:26:24.065799000 : Disconnecting

我可以确认我正在监听传入端口:

~/qfsample/quickfix-python-sample$ netstat -an | grep 9443
    tcp        0      0 0.0.0.0:9443            0.0.0.0:*               LISTEN

我还在我的路由器上配置了 9443 端口转发到客户端机器。

这是我从应用程序收到的消息:

onCreate(self=<__main__.Application; proxy of <Swig Object of type 'FIX::Application *' at 0x7f87db719030> >, sessionID=<quickfix.SessionID; proxy of <Swig Object of type 'FIX::SessionID *' at 0x7f87db6674e0> >)
toAdmin(self=<__main__.Application; proxy of <Swig Object of type 'FIX::Application *' at 0x7f87db719030> >, sessionID=<quickfix.Message; proxy of <Swig Object of type 'FIX::Message *' at 0x7f87db667e70> >, message=<quickfix.SessionID; proxy of <Swig Object of type 'FIX::SessionID *' at 0x7f87db667d20> >)

我们非常欢迎在此处找到问题的任何帮助!!

最佳答案

好的。所以我想我不可避免地会从这个伟大的论坛获得一些帮助或自己解决!在这种情况下是后者!

这里是我出错的地方:

当您使用 stunnel 创建隧道时,您必须将目标设置为您在 stunnel 配置中为“接受”创建的端口上的本地计算机,而不是您的代理地址。现在很明显!这是我的 cfg 文件现在的样子:

SocketConnectPort=9443
SocketConnectHost=localhost

关于python - 使用 stunnel 建立与 DUKASCOPY 的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52617392/

相关文章:

c# - 快速修复/n 错误 : MsgSeqNum too high

java - 在 Eclipse 中快速修复 JSP?

java - 当实现 FAST 协议(protocol)(来自 FIX)时,我什么时候应该重置模板解析器?

python - 我如何访问 QuickFix 的通用组 API?

python - Flask 提交表单时返回 'Method not allowed'

python - 字典操作顺序

python - GraphViz,找到两个节点之间的最短路径

Python:根据特定列拆分数据集

java - QuickFIX - 从不同算法(来源)接收和发送订单

java - QuickFIX/J 启动器 - 在登录时设置用户名和密码