我已经在Excel VBA中创建了代码,它通过dde链接收集数据并根据一些规则执行它们.不久,这个Excel VBA代码将向我发送有关我正在跟踪的买入或卖出股票的消息.
现在,我想通过使用修复协议来执行这些消息.是否可以使用Excel VBA创建连接到Web服务的修复协议引擎,并使您能够执行来自Excel VBA的操作?
谢谢你的帮助.
在 FIX 中,安全定义请求(MsgType=c)和安全列表请求(MsgType=x)有什么区别
QuickFixJ 出现问题。问题是我无法正确发送登录消息。此外,我很难理解如何设置消息流。我并不是要执行交易,只是检索市场数据。
错误:
20140123-22:55:56: No responder, not sending message:  
这是我的所有详细信息:
传入:猫传入/*
8=FIXT.1.19=11035=A34=149=REDACTED-MD52=20140123-22:55:56.37256=NDXMD98=0108=30141=Y553=REDACTED100554=REDACTED1137=910=231?220140123-22:55:56.470
传出:
20140123-22:55:50: Session FIXT.1.1:REDACTED-MD->NDXMD schedule is weekly, SUN 00:00:00-UTC - FRI 00:00:00-UTC
20140123-22:55:50: Created session: FIXT.1.1:REDACTED-MD->NDXMD
20140123-22:55:53: Initiated logon request
20140123-22:55:56: No responder, not sending message: 8=FIXT.1.19=11035=A34=149=REDACTED-MD52=20140123-22:55:56.37256=NDXMD98=0108=30141=Y553=REDACTED100554=REDACTED1137=910=231
8=FIXT.1.19=8135=A34=149=REDACTED-MD52=20140123-22:55:52.64356=NDXMD98=0108=30141=Y1137=910=114
8=FIXT.1.19=8335=549=NDXMD56=REDACTED-MD52=20140123-22:55:53.75134=158=Missing field. Type 55310=054
8=FIXT.1.19=11035=A34=149=REDACTED-MD52=20140123-22:55:56.37256=NDXMD98=0108=30141=Y553=REDACTED100554=REDACTED1137=910=231
我的标准输出是:J
an 23, 2014 10:55:37 PM REDACTED.REDACTEDMain main
INFO: REDACTED startup
Jan 23, 2014 10:55:49 PM quickfix.SessionSchedule <init>
INFO: [FIXT.1.1:REDACTEDB-MD->NDXMD] weekly, SUN 00:00:00-UTC - FRI 00:00:00-UTC
Successfully called onCreate for sessionId : FIXT.1.1:REDACTEDB-MD->NDXMD
Jan 23, …我在下面的此链接上使用交易客户应用程序在我的VPS服务器和代理服务器之一之间建立连接。
http://www.quickfixn.org/tutorial/example-applications。
经过一个星期的挣扎,我终于可以轻松地建立与代理服务器的连接。
但是,当我运行交易客户应用程序时,在登录阶段出现以下错误:
Unable to write data to the transport connection: An existing connection was forcibly   closed by the remote host
at QuickFix.SocketInitiatorThread.ReadSome(Byte[] buffer, Int32 timeoutMilliseconds) 
in ... SoecketInitiatorThread.cs:line 170 ......
at QuickFix.SocketInitiatorThread.Read() in ... SoecketInitiatorThread.cs:line 80
......
贸易客户应用程序一直在重复登录尝试,但是,它始终仅获得相同的错误消息。
当然,对于像我这样的新手使用此QuickFix / n引擎,我真的无法弄清楚出了什么问题。我可以想到的一个可能的调查领域是,我对隧道程序(https://www.stunnel.org)也很陌生,因此我的隧道证书可能无效。我只是按照网站上的指示使用代理的ip地址配置pem证书,但是我不确定它的用途是100%。
这是我放在“ stunnel.conf”文件中的内容:
[FIXORDER]
client = yes
accept = external ip of VPS : port   eg.(10.160.103.65:22)
connect = broker ip address :port  eg.(102.12.124.9:444)
这是来自Stunnel程序的已记录消息的一些记录:
2014.11.26 17:23:44 LOG5[3348]: Connection reset: 0 byte(s) sent to SSL, 0 …我已将我的用户名和密码放在 FIX 配置文件中。所以我必须认为我应该能够从一些内部变量中获取用户名和密码,比如 session 变量或 SessionSetting 变量或 session.SessionDataDictionary 或其他一些变量。但是,我没有找到任何直接的解决方案来从内部变量中获取用户名和密码。
[SESSION]
BeginString=FIX.4.4
SenderCompID= xxxxx
Username= xxxx
Password= xxxx
从逻辑上讲,这可能是非常可行的。但是,没有人建议这样做,或者我没有看到有人在谷歌上这样做。我从谷歌找到的唯一代码是这个。
String username = sessionSettings.getString(sessionId, "Username"); //only works for Java version of QuickFix
然而,以上代码仅适用于 Java 版本的 QuickFix,并且此方法在 QuickFix 的 DotNet 版本(即 QuickFix/n)中不可用
getString(sessionId, "Username"); 
我希望使用 QuickFix/n 为 FIX 4.4 实现类似的结果。如果有人熟悉 QuickFix,这可能是一项非常简单的任务。我将非常感谢您的提示或建议。我不介意你对 Java 或 C++ 版本有什么想法,因为它们都非常相似。我只需要知道这个用户名和密码存储在哪个变量中,以及如何使用 Csharp 代码获取它。
提前致谢。
我可以通过运行来获得标签之间的空格:
tail -f filename | tr '\001' ' '
但我希望尾部输出有|分隔符,即
35 = d | 49 =发件人| 56 =收件人
谁知道怎么样?谢谢
我正在编写一个基于Quickfix/N的 FIX 引擎,它监听交易执行(ExecutionReport)并将其保存到数据库中。
如果接收到的消息中不存在该值,则从 API 请求字段值会引发 FieldNotFoundException。例如,如果帐户不存在,则调用executionReport.Account 将引发异常。
由于某些字段是可选的,因此我必须在获取字段值之前明确检查该字段值是否存在。我对此有两种可能性:
可能性一:
executionReport.IsSetAccount() ? executionReport.Account : null;
可能性2:
  try
        {
            return executionReport.Account.getValue();
        }
        catch (Exception e)
        {
            return null;
        }
第一个选项很干净,但我发现它真的很重,第二个选项可以概括为辅助函数,但它违背了 API 哲学,我感觉我做错了什么。
那么我的问题是:
或者我对协议/API的理解完全错误?我感觉我没有以正确的方式解决这个问题。
多谢
寻找一些帮助,通过 FIX4.4 协议使用 stunnel 和 quickfix python 与我的经纪人 DUKASCOPY 建立连接。
这是我的 stunnel 配置:
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 …我们之前正在使用修复,但客户说实施 OUCH 来进行交易,因为这样更快。我在网上查了一下,消息看起来很相似。它如何获得速度优势。请给我一些示例消息
我在Apache Camel 2.17.0 中使用QuickFIX/J版本 1.6.4并且我收到会话消息。这不是错误,但在我的情况下,它会导致无意的Logoff。Disconnecting: Encountered END_OF_STREAM
什么情况会导致此消息,我如何分析我的案例中的哪种情况是原因?