Установление соединения с DUKASCOPY с использованием stunnel - PullRequest
0 голосов
/ 03 октября 2018

требуется помощь в установлении соединения с моим брокером DUKASCOPY с использованием Python stunnel и quickfix по протоколу FIX4.4.

Вот мой конфиг stunnel:

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

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

Мой код быстрого исправления cfgfile:

[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> >)

Любая помощь в поиске проблемы здесь будетболее чем приветствуем !!

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Спасибо @Jaspal за размещение ваших вопросов и ответов!Первоначально у меня был тот же вопрос, и я нашел это изображение концептуально полезным (пока игнорируйте брандмауэр), то есть направьте механизм FIX на stunnel на localhost: enter image description here В сторону (это запрос функции, а не вопрос, но может быть решением однажды, скрестив пальцы) есть проблема в github / quickfix для добавления SSL / TLS в python (он уже есть в C ++), из-за которого не требуется stunnel.

0 голосов
/ 04 октября 2018

OK.Поэтому я думаю, что это было неизбежно, что я либо получу некоторую помощь от этого замечательного форума, либо сам пойму это!В данном случае это был последний вариант!

Здесь я ошибался:

Когда вы создаете туннель с stunnel, вы должны настроить свою цель на локальном компьютере на порту, который вы создали.для "принять" в конфигурации Stunnel, а не адрес вашего брокера.Теперь очевидно!Вот как теперь выглядит мой cfg-файл:

SocketConnectPort=9443
SocketConnectHost=localhost
...