My Environment
- Windows 11 Pro, version 10.0.22621
- Julia 1.8.5
- Visual Studio Code, version 1.77.3
Background
I am trying to convert a program that is very important to our organization. The program runs on Window 11, and it uses C# and SQL Server to process high speed transactions from the major stock exchanges.
We subscribe to a streaming data feed from IQFeed.net. This company provides language support for C++, C# and Python. I may be the first to try Julia.
IQFeed.net provides an App that is launched with command-line arguments. A TCP client then runs for 6.5 of the market hours. We connect to this client and start the data stream that consist of ASCI text records (about 80 characters). We parse the text and update a SQL Server database at the rate of about an average of 400 record/second. This rate varies. High burst rates may reach twice that amount.
On Windows, the Task Manager starts the program just before the market opens. The following image shows the Launcher App. The progress bar shows my commend line arguments are being processed, and the status window (red line) shows that no errors have occurred:
My Problem
So, I thought this would be easy to do in Julia. The following Julia code is one of many tries to start the IQFeed Launcher.
using InteractiveUtils
try
iqconnect_path = raw"C:\Program Files\DTN\IQFeed\IQConnect.exe"
arg1 = raw"-product CYPRESS_Point"
arg2 = raw"-version 1.0"
arg3 = raw"-login 123456"
arg4 = raw"-password Foobar"
arg5 = raw"-autoconnect"
args = ["arg1", "arg2", "arg3", "arg4", "arg5"]
open(`$iqconnect_path $args`)
catch err
@error "Error starting iqconnect: $err"
end
When this Julia script runs in the REPL, the IQFeed Launcher appears, but it hangs. Without any error message. The picture below shows my problem.
As you can see, the Launcher does not like the arguments.
I have also tried other scripts, but without success. Here is what I have also tried:
run(`iqconnect arg1 arg2 arg3 arg4 arg5 true`)
run(`iqconnect "-product CYPRESS_Point -login 123456 -password Foobar -autoconnect"`)
run(`iqconnect -product CYPRESS_Point-login 123456 -password Foobar -autoconnect`)
My question is: “How can I debug the open (or run) command?”
Any suggestions will be greatly appreciated.
Charles Brauer
CBrauer@CypressPoint.com