Topics
Forum Topics not found
Replies
#EOL
27 Dec 2017, 14:34
With OrderMassStatusRequest you can receive only those orders that yet to be executed: LIMIT and STOP with OrdStatus NEW (39=0)
Meanwhile, a single opened position could be result of executing thousands orders and with current Spotware FIX implementation there is no way to receive any of them, unles you know each one's ClOrdID.
Could you please clarify what you want to do, maybe there is an easier workaround
@#EOL
#EOL
27 Dec 2017, 12:41
You can assume that within a single X-message you will receive quotes related to the only one symbol and sort them out by tag 55 (Symbol)
And I agree with you, it's kind of odd to require MDReqID to be specified and never return it back.
You can send a dozen of Maket Data Requests with a unique MDReqID each but for the same symbol, and and you will receive the same amount of quotes as you would get sending the only one Maket Data Request
@#EOL
#EOL
21 Dec 2017, 17:34
Take a look into section "6.3. Market Data Request" of the spec
It seems, you can subscribe for full refresh (type W) only for spots (top of the book)
For full book only incremental refresh is supported. With the first response message you should receive initial full book snapshot and with the next ones you should receive incremental refreshes.
Here is the same example in FIX parcer: https://goo.gl/QxPbqR
Just after subscription server responds with a set of quotes with IDs, stored in tag 278 (MDEntryID). All they are new (MDUpdateAction tag 279 is 0) and should be stored somehow in your application
Next message contains some new quotes (tag 279 is 0) and MDEntryIDs of previous quotes that are no longer valid (tag 279 is 2). So you should add new quotes and delete outdated quotes from your application
@#EOL
#EOL
15 Nov 2017, 12:50
since cTrader is ClickOnce based the path will change
so I would suggest another way:
1. Locate the shortcut of the cTrader instance you want to run (for public demo it sould on your desctop and start menu %appdata%\Microsoft\Windows\Start Menu\Programs\Spotware cTrader)
2. Open the shortcut in notepad by drag-and-drop to opened notepad window
3. Copy the URL (for public demo it will be http://spotware.ctrader.com/xTrader.application)
4. Open command line and run
"C:\Program Files\internet explorer\iexplore.exe" http://spotware.ctrader.com/xTrader.application
or
start iexplore http://spotware.ctrader.com/xTrader.application
This will run ClickOnce application as you open it through the shortcut
@#EOL
#EOL
07 Aug 2017, 15:23
well... test it, this is the only way :)
But keep in mind that according to the latest Spotware's FIX API specification whatever value you put in TimeInForce, it will be ignored and redefined according to Spotware's order flow: IOC for market orders, GTC for pendings without expiration timestamp, GTD for pendings with expiration timestamp
@#EOL
#EOL
07 Aug 2017, 11:14
RE:
michael00 said:
EOL about your kind of order, is that a pending order or the execution is immediate like in a Market order ?
Theoretically it is a pending order, but if requested price already satisfies market it will be sent for execution immediate. Otherwise it will be stored for pending execusion and will be expired at specified expiration time.
By setting expiration timestamp close to sending timestamp you give the server no choice other than execute an order immediate or cancel it.
Of cause if Spotware support IOC/FOK for limit orders it would be much easier to maintain this
@#EOL
#EOL
14 Jun 2017, 11:20
Hi sand,
You should interpret positions like a way to aggregate orders volume. Every order has a position, there are no standalone orders, they are just assigned to another position you can find in PosID in {OrdStatus=NEW, ExecType=NEW} execution report.
I think theoretically your problem could be solved on your side but it needs some development from Spotware. Spotware should add somehow open position volume in {OrdStatus=FILLED, ExecType=TRADE} execution report and extend Order Mass Status Request (MsgType(35)=AF) to have a possibility to filter by PosID.
So, in case you received some filled execution report with zero open position volume, you request all the pending orders left assigned to this position and cancel them one by one.
Similar flow to amend volume of artificial stoploss and take profit: receive filled execution report with non-zero open position volume, request pending orders for the position, cancel and put new ones if the volume is different
@#EOL
#EOL
06 Jun 2017, 12:09
RE: RE:
j.tarno said:
That is from cTrader FIX Engine documentation. Does it meant the description is wrong?
Instead of FOK or IOC I could use 126 ExpireTime. Using this tag - is the order pulled when the server time is bigger than time in tag 126?
the description is correct.
If you want to send a market order (tag 40 = 1) you should specify IOC time in force (tag 59 = 3). Both tags are required.
If you want to send stop order or limit order (tag 40 = 3 or tag 40 = 2) you should specify GTC time in force (tag 59 = 1).
If you want to send stop order or limit order with expiration (tag 40 = 3 or tag 40 = 2) you should specify GTD time in force (tag 59 = 6) and expiration timestamp of some moment in the future in ExpireTime (tag 126).
@#EOL
#EOL
01 Jun 2017, 15:54
( Updated at: 21 Dec 2023, 09:20 )
RE:
#EOL said:
There are no such order types like FOK or IOC. This is Time In Force (tag 59).
The types (tag 40) are Market, Limit, Stop, etc.
As you can see in 4.4.4, currently supported values for Time In Force are IOC, GTC and GTD with the following restrictions:
@#EOL
#EOL
01 Jun 2017, 15:52
There are no such order types like FOK or IOC. This is Time In Force (tag 59).
The types (tag 40) are Market, Limit, Stop, etc.
As you can see in 4.4.4, currently supported values for Time In Force are IOC, GTC and GTD with the following restrictions:
<style type="text/css"> .tg {border-collapse:collapse;border-spacing:0;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;} .tg .tg-72gw{background-color:#9a0000;vertical-align:top} .tg .tg-qpvr{background-color:#009901;vertical-align:top} </style> <table class="tg"> <tr> <td class="tg"></td> <td class="tg">IOC</td> <td class="tg">GTC</td> <td class="tg">GTD</td> </tr> <tr> <td class="tg">Market</td> <td class="tg-qpvr"></td> <td class="tg-72gw"></td> <td class="tg-72gw"></td> </tr> <tr> <td class="tg">Stop</td> <td class="tg-72gw"></td> <td class="tg-qpvr"></td> <td class="tg-qpvr"></td> </tr> <tr> <td class="tg">Limit</td> <td class="tg-72gw"></td> <td class="tg-qpvr"></td> <td class="tg-qpvr"></td> </tr>
@#EOL
#EOL
31 May 2017, 10:06
( Updated at: 21 Dec 2023, 09:20 )
Well... It has nothing with FIX protocol but anyway
As far as I see, "(PUBLIC BETA)" in the header means that you downloaded cAlgo that connects to Spotware's public demo server, while you should download cAlgo, branded and configured for your broker. Just contact your broker for download link or go to cTrader/cTrader Web and find it by yourself under Links->cAlgo
@#EOL
#EOL
12 Jan 2018, 15:11
you can use Request For Positions (MsgType(35)=AN) (section 5.4.9 in the spec)
@#EOL