installation and deployment of this api : IQFeed.CSharpApiClient with Python
Budget: $30 – $250 USD
installation of the dependencies need it by this application api and the deployment on 2 computers , the developer github page have all the files and explanation about to installation and deploy the api using python .this the script from the developer page :
assembly_path = r"C:\Users\user\Downloads\dll"
import os
import sys
sys.path.append(assembly_path)
# Reference IQFeed.CSharpApiClient DLL
import clr
clr.AddReference("IQFeed.CSharpApiClient")
from IQFeed.CSharpApiClient import IQFeedLauncher
from IQFeed.CSharpApiClient.Lookup import LookupClientFactory
# historical messages depedency
from IQFeed.CSharpApiClient.Lookup.Historical.Messages import TickMessage
#level1 dependencies
from IQFeed.CSharpApiClient.Streaming.Level1 import Level1ClientFactory
#level 2 dependencies
from IQFeed.CSharpApiClient.Streaming.Level2 import Level2ClientFactory
import time
# Step 1 - Run IQConnect launcher
#add the
IQFeedLauncher.Start("401779", "Claribelp1110", "FRANCISCO_HEREDIA_50031")
# Prompt user for data type to stream
data_type = input("Which data type would you like to stream? (level1/level2/historical): ")
# Level 1 data
if data_type == "level1":
# Subscribe to level 1 data for a symbol
# Create Level1 client
level1Client = Level1ClientFactory.CreateNew()
# Level 1 handler function
def level1UpdateSummaryHandler(msg):
print(msg)
# Subscribe to Summary/Update events
level1Client.Summary += level1UpdateSummaryHandler
level1Client.Update += level1UpdateSummaryHandler
# Connect
level1Client.Connect()
# Request streaming
level1Client.ReqWatch("AAPL")
# Wait 30 seconds
time.sleep(30)
# Level 2 data
elif data_type == "level2":
# Subscribe to level 2 data for a symbol
# Create Level2 client
level2Client = Level2ClientFactory.CreateNew()
# Level 2 handler function
def level2UpdateSummaryHandler(msg):
print(msg)
# Subscribe to Summary/Update events
level2Client.System += level2UpdateSummaryHandler
level2Client.Error += level2UpdateSummaryHandler
level2Client.Summary += level2UpdateSummaryHandler
level2Client.Update += level2UpdateSummaryHandler
# Connect
level2Client.Connect()
# Request streaming
level2Client.ReqWatch("AAPL")
# Wait 30 seconds
time.sleep(30)
###developer github page : https://github.com/mathpaquette/IQFeed.CSharpApiClient/blob/master/docs/USING-WITH-PYTHON.md
# Historical data
elif data_type == "historical":
# Retrieve historical data for a symbol
# Create Lookup client
lookupClient = LookupClientFactory.CreateNew()
# Connect
lookupClient.Connect()
# Save ticks to disk
ticksFilename = lookupClient.Historical.File.GetHistoryTickDatapoints("AAPL", 100)
# Move tmp filename
dstTicksFilename = "ticks.csv"
os.replace(ticksFilename, dstTicksFilename)
# Read ticks from disk
ticksFromFile = TickMessage.ParseFromFile(dstTicksFilename)
for tick in ticksFromFile:
print(tick)
# Invalid data type
else:
print("Invalid data type selected.")
assembly_path = r"C:\Users\user\Downloads\dll"
import os
import sys
sys.path.append(assembly_path)
# Reference IQFeed.CSharpApiClient DLL
import clr
clr.AddReference("IQFeed.CSharpApiClient")
from IQFeed.CSharpApiClient import IQFeedLauncher
from IQFeed.CSharpApiClient.Lookup import LookupClientFactory
# historical messages depedency
from IQFeed.CSharpApiClient.Lookup.Historical.Messages import TickMessage
#level1 dependencies
from IQFeed.CSharpApiClient.Streaming.Level1 import Level1ClientFactory
#level 2 dependencies
from IQFeed.CSharpApiClient.Streaming.Level2 import Level2ClientFactory
import time
# Step 1 - Run IQConnect launcher
#add the
IQFeedLauncher.Start("401779", "Claribelp1110", "FRANCISCO_HEREDIA_50031")
# Prompt user for data type to stream
data_type = input("Which data type would you like to stream? (level1/level2/historical): ")
# Level 1 data
if data_type == "level1":
# Subscribe to level 1 data for a symbol
# Create Level1 client
level1Client = Level1ClientFactory.CreateNew()
# Level 1 handler function
def level1UpdateSummaryHandler(msg):
print(msg)
# Subscribe to Summary/Update events
level1Client.Summary += level1UpdateSummaryHandler
level1Client.Update += level1UpdateSummaryHandler
# Connect
level1Client.Connect()
# Request streaming
level1Client.ReqWatch("AAPL")
# Wait 30 seconds
time.sleep(30)
# Level 2 data
elif data_type == "level2":
# Subscribe to level 2 data for a symbol
# Create Level2 client
level2Client = Level2ClientFactory.CreateNew()
# Level 2 handler function
def level2UpdateSummaryHandler(msg):
print(msg)
# Subscribe to Summary/Update events
level2Client.System += level2UpdateSummaryHandler
level2Client.Error += level2UpdateSummaryHandler
level2Client.Summary += level2UpdateSummaryHandler
level2Client.Update += level2UpdateSummaryHandler
# Connect
level2Client.Connect()
# Request streaming
level2Client.ReqWatch("AAPL")
# Wait 30 seconds
time.sleep(30)
###developer github page : https://github.com/mathpaquette/IQFeed.CSharpApiClient/blob/master/docs/USING-WITH-PYTHON.md
# Historical data
elif data_type == "historical":
# Retrieve historical data for a symbol
# Create Lookup client
lookupClient = LookupClientFactory.CreateNew()
# Connect
lookupClient.Connect()
# Save ticks to disk
ticksFilename = lookupClient.Historical.File.GetHistoryTickDatapoints("AAPL", 100)
# Move tmp filename
dstTicksFilename = "ticks.csv"
os.replace(ticksFilename, dstTicksFilename)
# Read ticks from disk
ticksFromFile = TickMessage.ParseFromFile(dstTicksFilename)
for tick in ticksFromFile:
print(tick)
# Invalid data type
else:
print("Invalid data type selected.")