futures io is the largest futures trading community on the planet, with over 90,000 members. At futures io, our goal has always been and always will be to create a friendly, positive, forward-thinking community where members can openly share and discuss everything the world of trading has to offer. The community is one of the friendliest you will find on any subject, with members going out of their way to help others. Some of the primary differences between futures io and other trading sites revolve around the standards of our community. Those standards include a code of conduct for our members, as well as extremely high standards that govern which partners we do business with, and which products or services we recommend to our members.

At futures io, our focus is on quality education. No hype, gimmicks, or secret sauce. The truth is: trading is hard. To succeed, you need to surround yourself with the right support system, educational content, and trading mentors Ė all of which you can find on futures io, utilizing our social trading environment.

With futures io, you can find honest trading reviews on brokers, trading rooms, indicator packages, trading strategies, and much more. Our trading review process is highly moderated to ensure that only genuine users are allowed, so you donít need to worry about fake reviews.

We are fundamentally different than most other trading sites:

We are here to help. Just let us know what you need.

We work extremely hard to keep things positive in our community.

We do not tolerate rude behavior, trolling, or vendors advertising in posts.

We firmly believe in and encourage sharing. The holy grail is within you, we can help you find it.

We expect our members to participate and become a part of the community. Help yourself by helping others.

You'll need to register in order to view the content of the threads and start contributing to our community. It's free and simple.

So, Im stuck...just not sure what to change here...thanks for any advice

I have some time this week, I'll take a look at this. I've been on vacation, so sorry for the delay have not been responding to much on here. Going to attempt to recreate exactly what you have going on and we can go from there. Being that you use the acceptor and initiator I'll have to set that up as I only use it as an initiator in my solution. Shooting to have you some answers by Thursday with my current schedule.

I am able to connect via quickfix python and see heartbeats but I do not see any actual execution messages coming through the "fromApp" method and don't see any errors thrown. Do you have any suggestions as to why that might be the case?

acceptor
def genOrderID(self):
self.orderID = self.orderID+1
return str(self.orderID)
def genExecID(self):
self.execID = self.execID+1
return str(self.execID)
all looks good:
1
Putin Order
Creating the following order:
Sent the following message: FIX.4.2:BANZAI->FIXSIM
Received the following message: 8=FIX.4.29=21435=834=449=FIXSIM52=20150904-16:59:59.97856=BANZAI6=21911=214=1000000000017=220=031=21932=1000000000037=238=1000000000039=254=155=VOD.L60=20150904-16:59:59.97675=20150904-16:59:59.976150=2151=010=039
2
Putin Order
Creating the following order:
Sent the following message: FIX.4.2:BANZAI->FIXSIM
Received the following message: 8=FIX.4.29=21435=834=549=FIXSIM52=20150904-17:00:00.79556=BANZAI6=21911=314=1000000000017=320=031=21932=1000000000037=338=1000000000039=254=255=VOD.L60=20150904-17:00:00.79375=20150904-17:00:00.793150=2151=010=210

1. To easily install Quickfix i.e. "import quickfix as fix" and i had no issues to get it to work. I used wheels *.whl, Unofficial Windows Binaries for Python Extension Packages. I did not use pip install.

2. I read and read and found QuickFIX/n - Configuration very useful. Most people will use FIX to send orders and listen to get fills in my idea. Therefore, you are the Initiator i.e. the client and not the acceptor. Yet, it is very useful to start learning both acceptor (server) and initiator and how the two talk to each other.

3. Branzol's attachment is perfect to understand it. At first, it seems, whjat? i have no idea what is happening but basically in this case you are both acceptor and initiator. Play around with it and read the C++ errors to get Transaction date in right format, ClOrdIds as strings, etc. How the code is written comes from QuickFIX Documentation and examples on sending new orders, cancels, and how to listen to acks.

4. Hardest part in my opinion will be config files and that is just trial and error but again loads of examples.

I have some time this week, I'll take a look at this. I've been on vacation, so sorry for the delay have not been responding to much on here. Going to attempt to recreate exactly what you have going on and we can go from there. Being that you use the acceptor and initiator I'll have to set that up as I only use it as an initiator in my solution. Shooting to have you some answers by Thursday with my current schedule.

Hi Branzol,

Brand new to this, earlier you said that initiator is us, and acceptor is the exchange, so by running acceptor, we are just simulating the fix server right?

I am using pycharm, anyone know how to run a .py with an argument in pycharm?

thank you for this - finally figured out that if i have a FIX access, i should be using this code instead of the zip file.

When i run the code below, the log file just showed "Created Session" and nothing else, and nothing written in the Message log file. I have seen what it is supposed to contain in the zip file program that you very kindly attached a couple of posts down.

Did i miss anything? I have looked at the settings.cfg and linked to the correct xml file.

Thank you in advance!

Branzol

After searching what now feels like the entire web for a proper example, I was able to find a handful of examples that did not work and were riddle with errors. I tore a few of them apart, and would love to give credit to the original creators, but at this point I don't know what came from what.

The basic code I'm posting below will make a connection, and give you a option to place an order. You can switch out the order message for any type of FIX compliant message. At that point just take a FIX message format, and send the message in that manner. I've tried the Market-Data requests and they are working now. When I finish my final code of allowing you to enter a symbol list, and start streaming data to a database. And external input from my other scripts for automated ordering and closing of orders I'll post that.

I just wanted to ensure anyone else who's having issues with QuickFIX and Python has a good starting point.

Thank you to you all for the improvements and especially to Branzol for posting up the zip files which i'm working my way through now.

I managed to establish a fix connection many a year ago with a broking house which was super useful, but now i'm trying to make my simple webserver online respond to basic client pricing requests all using python. Nothing too time sensitive. I thought fix was a good way to go but now i'm not too sure! I'm pondering if i should just go back to POST on HTTP!

Anyway i've got this example running under a virtualenv (installed QuickFix using PIP seems okay)
I start the session with the acceptor.py and that works fine.
Next i try $python initiator.py initiatorsettings.cfg but i get the following back...

Runtime error: Unable to create, bind, or listen to port 9911

Excuse my low level of programming as i'm poor hack at best. Any suggestions or help would be greatly appreciated...
Thank you and best of luck to you all in the future.