Support Board
Date/Time: Fri, 29 Nov 2024 08:40:53 +0000
[Programming Help] - Connect Sierra Chart’s to a Custom/Internal DTC Protocol Server
View Count: 902
[2023-02-24 00:08:56] |
eeTrader - Posts: 12 |
Is it possible to connect Sierra Charting Client (SC) to a Custom/Internal DTC Protocol Server that uses messages defined on https://www.dtcprotocol.org/ site? I would like to create a custom/internal in-house DTC Protocol Server (market and historical) and connect Sierra Charts (SC) to this custom in-house DTC Protocol Server to feed the chart transaction data via defined DTC messages (i.e. s_HistoricalPriceDataTickRecordResponse, s_MarketDataUpdateTradeWithUnbundledIndicator2, etc.). Initially I’ll want to feed SC with in-house transactional data for learning, development and testing via the Custom/Internal In-House DTC Protocol Server. This phase would ideally be 100% offline only using locally stored trade event data during development and testing. Why: 1) I would like to do custom complex data aggregation, filtering and data smoothing and feed the results into SC to view results via DTC Messages as defined @ https://www.dtcprotocol.org/. 2) Such would also support needed learning of this space to develop a more complicated solution space for future projects. I can see how to connect an in-house application to the DTC Protocol server using the directions found at: https://www.sierrachart.com/index.php?page=doc/DTCServer.php, but I am unable to find directions on how to redirect SC to a Custom/Internal DTC Protocol Server. I reviewed the SC properties under Global Setting->Sierra Chart Server Settings, but none of the tabs in this form appear to support connecting SC connecting to a Custom In-House DTC Protocol Server that leverages the messages defined on https://www.dtcprotocol.org/. I also investigated the setting at File->Data/Trade Service Settings, and while there looks like there could be a way here to accomplish the above objective, but I’m unable to find needed documentation to support needed configuration changes. Data/Trade Service Settings I did note that there is a server option labeled “DTC Service” but it also notes that it is not enable with this package. Is there a way get enabled and documentation on to set up if this is what is needed? If this is possible, can you please help me know what I am missing? Is there a better way to use an external application to stream data into SC? Thanks. |
[2023-02-24 13:18:08] |
eeTrader - Posts: 12 |
Came across the following link: Using DTC Server for Data and Trading in Another Sierra Chart Instance In using this information I set the Global Setting->Sierra Chart Server Settings to be the values on my in-house DTC Protocol Server and then went to File->New Instance which was able to do handshake (DTC::ENCODING_REQUEST) and Logon (DTC::LOGON_REQUEST + DTC::LOGON_RESPONSE) and process a DTC::HEARTBEAT message. In doing code debugging on my C++ solution it would be nice if the heartbeat message requirement could be disabled during development. Is this possible (disable heartbeat for session between Sierra Chart Application Client and WIP Custom DTC Protocol Server under development)? |
[2023-02-24 14:02:29] |
eeTrader - Posts: 12 |
In debugging disconnect issues by SC Client, I noted that the main SC App is listening on the same ports as my in-house - DTC Server. :-( Results of netstat -aon: Proto Local Address Foreign Address State PID Notes...
TCP 0.0.0.0:1234 0.0.0.0:0 LISTENING 5600 -- Main SC Market Data Server TCP 0.0.0.0:4321 0.0.0.0:0 LISTENING 5600 -- Main SC History Data Server TCP 127.0.0.1:1234 0.0.0.0:0 LISTENING 35788 -- My DTC History Data Server TCP 127.0.0.1:4321 0.0.0.0:0 LISTENING 30644 -- My DTC Market Data Server While my network expertise is limited, it seems multiple processes listening on the same ports will cause issues. Is there a way to configure the Main SC App to connect to a DTC Protocol Server by defining the IP Address (127.0.0.1) and relevant history and market data ports without using the new instance approach noted in prior message? Or, am I not correctly setting configurations for the new instance approach? |
[2023-02-24 14:44:11] |
eeTrader - Posts: 12 |
Solution Simple: Adjust understanding that Global Setting->Sierra Chart Server Settings applies to main SC App and just don't open a new instance. :-) Next step: debug why SC Client is not sending data request to In-House DTC Protocol server and both are just waiting on the other to trigger an event. Once the SC client is logged in and it has a symbol defined in a chart book would not the next step be of the client be to send the server the following requests: DTC::HISTORICAL_PRICE_DATA_REQUEST to the history port; and, DTC::MARKET_DATA_REQUEST to market port? Network traffic analysis and custom DTC protocol server log suggests this is not taking place as expected. Any suggestions? |
[2023-02-24 15:10:01] |
Sierra_Chart Engineering - Posts: 17225 |
It depends upon what the symbol is and how the market data request is being directed: Once the SC client is logged in and it has a symbol defined in a chart book would not the next step be of the client be to send the server the following requests: DTC::HISTORICAL_PRICE_DATA_REQUEST to the history port; and, DTC::MARKET_DATA_REQUEST to market port? In this installation of Sierra Chart is Global Settings >> Data/Trade Service Settings >> Current Selected Service set to DTC Service? And what is the symbol? Sierra Chart Support - Engineering Level Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy: https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation For the most reliable, advanced, and zero cost futures order routing, use the Teton service: Sierra Chart Teton Futures Order Routing Date Time Of Last Edit: 2023-02-24 15:10:25
|
[2023-02-24 15:24:02] |
eeTrader - Posts: 12 |
Thaks SC for your response. The test market symbol is: SPH23-CME. I am not stuck on this one and can use another if helpful. Suggestions? Regarding In this installation of Sierra Chart is Global Settings >> Data/Trade Service Settings >> Current Selected Service set to DTC Service
Current setting is DTC - Sub Instance [trading]. See attached screen shot. Can't change to the value stated b/c it is read-only here. How do i change the value to DTC Service? Can you please help me understand what you mean by: how the market data request is being directed
I lack the needed context to understand... :-) A possible issue seems to be with the current licensing or configuration? Software version: 2480 64-bit | 2023-02-24 14:45:24.349
Primary Thread ID: 9484 | 2023-02-24 14:45:24.349 Usage end date: 2023-03-10 | 2023-02-24 14:45:24.349 Enabled for: Advanced Features 2. | 2023-02-24 14:45:24.349 Triggering next historical data download in queue. | 2023-02-24 08:03:33.681 Notice: Not connected to Live trading account to receive CME realtime futures data at non-professional fees. | 2023-02-24 08:03:33.681 No download requests in the queue to start downloads for. | 2023-02-24 08:03:33.681 One of the above lines states Not connected to Live trading account . Is this a requirement? If so, it does not makes sense when streaming locally stored/generated market data.s_LogonResponse object data setting sent back to client. Are such not valid? DTC::s_LogonResponse logonP;
logonP.Result = DTC::LogonStatusEnum::LOGON_SUCCESS; logonP.SetResultText(""); //Clear default text... logonP.SetSymbolExchangeDelimiter("-"); SetHeartbeat(logonQ.HeartbeatIntervalInSeconds); //Currently implimented set to yes/true: logonP.HistoricalPriceDataSupported = 1; logonP.MarketDataSupported = 1; //Future Items Pending Implimention set to no/false: logonP.MarketDepthUpdatesBestBidAndAsk = 0; logonP.TradingIsSupported = 0; logonP.OCOOrdersSupported = 0; logonP.OrderCancelReplaceSupported = 0; logonP.SecurityDefinitionsSupported = 0; logonP.ResubscribeWhenMarketDataFeedAvailable = 0; logonP.MarketDepthIsSupported = 0; logonP.OneHistoricalPriceDataRequestPerConnection = 0; logonP.BracketOrdersSupported = 0; logonP.Unused_1 = 0; logonP.UsesMultiplePositionsPerSymbolAndTradeAccount = 0; Is the login response causing the client some concern? My hope is to implement items in phases. Date Time Of Last Edit: 2023-02-24 15:31:10
|
scScreenCapture001.PNG / V - Attached On 2023-02-24 15:30:45 UTC - Size: 27.71 KB - 88 views |
[2023-02-24 15:40:15] |
eeTrader - Posts: 12 |
Here are screenshots of: Sierra Chart Server Settings-General Sierra Chart Server Settings-DTC Protocol Server if helpful. |
Sierra Chart Server Settings-DTC Protocol Server.PNG / V - Attached On 2023-02-24 15:39:33 UTC - Size: 27.14 KB - 76 views Sierra Chart Server Settings-General.PNG / V - Attached On 2023-02-24 15:39:40 UTC - Size: 28.04 KB - 83 views |
[2023-02-24 17:53:27] |
eeTrader - Posts: 12 |
Under File->Data/Trade Service Settings I was able to find the location to where it looks like one needs to set the service to: DTC Service. Note in attached screenshot that this service is disabled. Is it possible to enable in the trial version of the application? If so, how is this done? Thanks. |
SC_DAta_Trade Service Settings-Main.PNG / V - Attached On 2023-02-24 17:52:46 UTC - Size: 41.6 KB - 74 views |
[2023-02-24 22:17:15] |
eeTrader - Posts: 12 |
Note: corrected current understanding around Global Setting->Sierra Chart Server Settings and changed back to defaults as this appears to only be relevant if the SC application is acting as a DTC Protocol server. It appears that in order to move forward I need to be able to set the File->Data/Trade Service Settings to DTC Server and that I need to register with https://www.dtcprotocol.org. I've started the process as best I can determine and waiting to hear back. When I do and get permission to set the DTC Server Setting then I should be good to go using the settings shown in the attached screenshot. Is my current understanding aligned with reality or do I need to take additional steps to move forward? Thanks! |
SC_DAta_Trade Service Settings-Main2.PNG / V - Attached On 2023-02-24 22:15:29 UTC - Size: 45.5 KB - 116 views |
[2023-02-27 18:18:25] |
Sierra_Chart Engineering - Posts: 17225 |
There is quite a lot here and is very hard for us to be spending time on all of this. There are settings for the symbol in Global Settings >> Symbol Settings which control the routing of market data. For example the Real-time Data Client. That would need to be set to Default Primary. And this can only be done for custom symbols. So do not use the existing provided symbols. You need to add your own. There are other settings for historical data. Also your Sierra Chart account is now activated. And this is the proper way to connect to your server: https://www.sierrachart.com/Download.php?Folder=SupportBoard&download=76753 You were using the DTC-Sub instance previously and that is wrong. Sierra Chart Support - Engineering Level Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy: https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation For the most reliable, advanced, and zero cost futures order routing, use the Teton service: Sierra Chart Teton Futures Order Routing Date Time Of Last Edit: 2023-02-27 18:32:34
|
To post a message in this thread, you need to log in with your Sierra Chart account: