Friday 25 August 2017

Free Forex Dd Server


QuoteRoom description. The Forexite Company s QuoteRoom freeware allows you to receive real-time quotes and news from various sources for further storage as well as export of the data received into the various programs of technical analysis. In addition, QuoteRoom allows receiving free real-time quotes, currencies histories, news and analytical articles in Russian, from the Forexite server. The SW is based on the principle of the interactive services, which receive, process, and export the data You can easily add or delete any service. QuoteRoom installation and registration. You can download the application from the Forexite server After you install the program, you need to register it to have an access to all functions of the SW Run the downloaded file choose the installation language and then follow the installation instructions The registration is for free It runs in the registration box that appears when you select the Registration item of the Help menu When you first launch the application this window opens automatically. To register the QuoteRoom program, you will need to enter your TradeRoom account username and password in the registration box In case you have no trading account a real or a virtual with TradeRoom yet, you can create it very easily and quickly just click on the Register trading account link in the registration window When you click on it, the corresponding TradeRoom page Opening account opens in the QuoteRoom built-in browser The trading accounts in TradeRoom are also for free Once the account is opened, you can register the QuoteRoom program. QuoteRoom features. Technical analysis programs compatibility. Any program supporting the DBC Signal or the DDE protocols can receive quotes from QuoteRoom The QuoteRoom can be used as a source of real-time quotes for the following technical analysis programs. TradeStation 9 1.Omega Research ProSuite 2000i. Equis MetaStock 7 0.Equis MetaStock 6 52.History automatic download. It is really a challenge to support the quotes history continuity when working with different data sources due to eventual Internet outages, computer deadlocks, inability to obtain quotess around the clock, etc To solve this problem QuoteRoom has a history auto-download function. If for some reason the program has been disconnected from the quotes source the Forexite server , then after reconnection the past period quotes and news history is downloaded automatically The program has some options to customize the history service, e g to disable the function of the history auto-download. About services. Forexite Internet Server s designed to receive real-time currencies quotes via Internet from the Forexite s server It can also be used to receive real time Forex news in Russian. Forexite History Server - the service is meant to download the quotes history in GlobalServer format or in Ascii format, from the Forexite s server It also allows managing history archives for the rest QuoteRoom users use. History Database service allows accumulating and storing quotes history in the QuoteRoom databases The Forexite History Server service downloads the quotes history missed automatically. ASCII Maker is designed to export quotes history into text files realtime for various programs of technical analysis. Portal Server delivers quotes for ProSuite 2000i, TradeStation 2000i, MetaStock 6 52, MetaStock 7 0, and Ensign Windows Any other program that can receive data from DBC Data Manager Signal protocol , can also receive quotes from the Forexite server thanks to this service Portal Server automatically installs the Portal Client services which maintain the programs of technical analysis. TradeStation service serves to transfer the quotes history to TradeStation 9 1, the analytical program. DDE Server service allows transferring data to Microsoft Excel and other applications via DDE. ODBC Export service exports quotes to the databases through the ODBC driver. Random is a random number generator service. Technical specification. Windows 2000 XP Vista 7 8 10.25 Mb free disk space. Extra space for data. Free download of QuoteRoom. At the moment, the Forexite QuoteRoom 2016 07 version from 27 07 2016 is available. The program registration relates to the TradeRoom trading account and is valid until the account is active. Forexite QuoteRoom supports a strong program of technical analysis TradeStation 9 1 The program implements numerous indicators, ready-made trading strategies a set of signals , and an advanced charting EasyLanguage, a built-in programming language, allows you to create your own trading indicators and strategies of any complexity You can find the instructions on the TradeStation installation on the website. You can download the Online Help 907 Kb or 672 Kb to find out more about the program features There are already both Help files in the program for the installation. Notes 1 During the Forexite QuoteRoom installation some antiviruses display a message stating that the program is potentially dangerous This is because the program is encrypted by the Themida protector Indeed, QuoteRoom poses no danger to your computer 2 The latest program version should be downloaded into the same directory where the previous version is there is no need to remove it. This tab contains the most important settings changes in which can cause serious troubles in the terminal operation as far as the full disconnection The client terminal is initially configured in the way providing normal, trouble-free operation Thus, it is highly recommended not to change any parameters in this window needlessly. In the Settings Server window, it is possible. Practically, the entire work of the Client Terminal is based on data news and quotes continuously incoming from the server If a client terminal does not receive quotes, it is impossible to trade with it In such a mode, the terminal allows just to analyze the existing data with indicators and line studies and test expert advisors This situation can emerge for a number of reasons, one of them is incorrect setting of the server connection. For connecting the client terminal to the server, the exact server IP address or domain name and port must be known After the program has been installed, all these data will be specified, there is usually no need to change them However, if there is a need to connect to another server, its address and port must be given in the Server field The data must be given in the following format internet address of the server port number without spaces For example 192 168 0 1 443 , where 192 168 0 1 is the server address, and 443 is the port number After the data have been input, the OK button must be pressed. The newly set server address and port number are stored on the hard disk These data do not influence the operation of the client terminal until an attempt to open a new account is made It is this moment when the terminal starts using of these given address and port number The new server address will be added to the list of servers during account registration and it can be chosen If connection to the server succeeds, the new account will be opened Otherwise, it is recommended to check all settings and try to reconnect. Attention Incorrect connection setting is not the only reason for which a new account cannot be opened. Proxy Server. Connection to internet through a proxy server can be another reason for which the server cannot be connected to A proxy server is an intermediate between the trader s computer and the trading server It is mostly used by internet providers or by local networks If a connection problem occurs, you should turn to your systems administrator or to the internet provider If a proxy is used, the terminal must be set up in a corresponding way Setting of Enable proxy server checkbox will enable proxy server support and activate the Proxy button Pressing of this button will open the window where proxy server parameters should be specified these data can be given by the systems administrator or by internet provider. Server proxy server address and type SOCKS5, or SOCKS4.Login a user login for access to the proxy server If login is not needed, this field must remain empty. Password a password for access to the proxy server If password is not needed, this field must remain empty. After the parameters have been specified, it is recommended to press the Test button to check how the settings work If they have been tested successfully, the OK button must be pressed in order the settings to be effective Error message means that the proxy server was set up incorrectly To find out about the reasons, the system administrator or internet provider must be contacted again. Account and Login. Client terminal can connect to the server and work only using an account There are login the account number , master and investor passwords in the Client Terminal To be authorized, one needs an account number and one of two passwords The master password allows the full access to the account, while the investor one gives only a limited access Being authorized with the investor password gives the right to look through charts, perform technical analysis and test expert advisors, but not trade Investor password is a convenient tool showing the trading process at this given account. After the account has been opened and if Keep personal settings and data at startup option is enabled, its data number, master and investor passwords will be stored at the hard disk At the program restart, these data will be used to connect the account automatically If the option is disabled, a password must be entered manually at each restart of the terminal Also if you disable this option, the information about previously used account and saved passwords will be deleted upon the next restart of the terminal. The current account number and password are specified in the fields of Login and Password Data of another account can be input in these fields, then, after the OK button has been pressed, the terminal will try to authorize it If authorization was not successfully completed, the data given should be checked and re-authorized If this does not help, the Technical Support service should be contacted. Having pressed the Change button, one can specify new passwords in the window appeared Doing so, one has to know the current password It can be found in the message sent from the server after registration of a demo account The new password is input in the corresponding field If the Change investor read only password option is enabled, the investor not master password will be changed. Data Export through DDE Protocol. Quotes delivered to the terminal can be exported to other applications through DDE Dynamic Data Exchange protocol To enable export of quotes, the Enable DDE server option must be enabled and the OK button must be pressed Data delivery will start immediately More details about export of quotes can be found in the corresponding section. Terminal allows to receive financial news promptly They start to income just after connection to the server No news issued when the terminal was disconnected will income in it To enable news delivering, it is necessary to flag Enable news In the Terminal window the News tab will appear in which news will be delivered as they are issued. Attention If the Enable news option is enabled, but no news were issued, the News tab will not appear in the Terminal window. Interaction between MetaTrader 4 and Matlab via DDE. I have already published an article about data exchange between MetaTrader 4 and Matlab via CSV files MT 4 - CSV - Matlab here However, the approach described in the article is, in many cases, unpracticable, and often even unacceptable. The mechanism of DDE Dynamic data exchange supported in MT 4 allows us to transfer data from one application into another directly through the computer s RAM Matlab has the complete functionality to realize both the front end and the back end of DDE, so we would like to make the best of this opportunity. MetaTrader 4 DDE server provides only the latest tick data However, even considering such limitations, DDE is more preferable when, for example, working with quotes inside bars. Like in the article of MT 4 - CSV - Matlab , I will describe the sequence of creating an exchange-organizing tool. Don t forget to enable DDE server in the Tools - Options - Server tab in your MetaTrader 4 Client Terminal, and we can start. So, in the organization of data exchange using DDE, there are two ends front end and back end between which the connection will be established The front end is an application that requests data Matlab, in our case , the back end is an application that has this data at its disposal MT 4.The data can be transferred from the server to the client via DDE in three ways - by the client s request, - by the client s request and after the server has notified that the data has been prepared for transferring, or - upon the data is ready for transferring. MetaTrader 4 DDE server works in only one the third mode and sends the ready data to the client without waiting for requests, confirmations, and other stuff like that So the task of Matlab is to notify MT 4 that it has a client, inform about what data is needed, and wait until the data arrives. As soon as the data arrives, we will just show it in a graph. Creating a GUI. In the Matlab environment, there is a possibility to create a graphical user interface GUI Once having created a GUI, we will combine in it all controls, price charts and textual information that we think to be necessary to display. Creating a GUI is described in more details in section 3 of article MT4 - CSV - Matlab , so I will only mention here the console command named guide that launches the GUI Creation Wizard, and also I will give the list of graphical objects we need. Thus, we need the following - input box Edit Text to enter the currency pair name - Axes to display the chart - two text output fields Static Text to display the precise value of the last quote, or for something else. It is shown below how I have placed the objects in a GUI sheet. You should set graphical object properties as follows. For Axes Tag axesChart we will display the chart here Box on enclose the chart area in a full rectangle, off encloses the chart area with a left line and a bottom line FontSize 7 the default size is just huge Units pixels we will need this at charting to set the scale of 1 1.For EditText Tag editPair we will enter the currency pair name in this field. For StaticText below the EditText field Tag textBid we will enter the precise value of the last quote here HorizontalAlignment left this is not very important, you may leave it as center. For StaticText at the very bottom of the sheet Tag textInfo HorizontalAlignment left. Now we can press RUN I named my project DDEs , so if you want that your version does not have any discrepancies with mine, please name your project the same If the appearance of your GUI suits you and the m-file is ready for editing, let s start creating a DDE client. Connection Initializing. First of all, you should organize the channel to connect to the server when launching GUI, and take care of connection breaks when closing the interface In Matlab, DDE connection is initialized by the function channel ddeinit service , topic , where service DDE server name MT4 topic name of a data section In our case, it can takes the values of BID , ASK , QUOTE , etc The function returns the descriptor of the initialized channel This descriptor will be used for further conversations with DDE server. You should also specify the exchange method In Matlab, the exchange method supported by MT4 is called Advisory link and initialized by the function rc ddeadv channel, item , callback , upmtx, format , where channel descriptor of the initialized channel, item data we are interested in, i e the symbol name of a currency pair, callback a line to be executed upon arrival of data from the server, upmtx symbol name of the variable to place the data received from the server, format array of two flags, which defines the format of data sent Function ddeadv returns 1 if successful otherwise, it returns 0.Please not that a symbol expression is given as the callback parameter, not a function descriptor In fact, we will execute the eval function that executes the line as if it has been typed in a console This feature produces the following difficulty At arrival of a new quote, we have to execute a large function receiving the new quote At the same time, we would like to pass to this function the handles descriptors structure that will be used to get access to GUI graphical objects However, I found neither any methods of passing the handles structure descriptor into executable line nor the way to call the function located in the m-file that describes GUI All this resulted in that I had had to place the new quote receiving function into a separate m-file and call it as a normal Matlab function However, the inconvenience turned out to be an advantage after I had discovered that I could edit the processing function without interrupting the DDE client operations. Thus, first of all, let s create a separate processing function that will just display the received data into console. function newTick simbols new tick processing disp simbols display the argument in console song wavread C WINDOWS Media Windows XP - read the sound wavplay song,40000 play the sound with the sampling rate of 40 kHz. The exemplary function above will also play the C WINDOWS Media Windows XP - file as soon as a new quote arrives Save the function text as newTick m in the working directory of MATLAB. Now let s edit the m-file describing the behavior of our GUI Add the connection initialization to the DDEsOpeningFcn function, and deinitialization will be added to the figure1CloseRequestFcn function To add the CloseRequestFcn function to the m-file, you should execute the following in GUI editor View - View Callbacks - CloseRequestFcn. --- Executes just before DDEs is made visible function DDEsOpeningFcn hObject, eventdata, handles, varargin This function has no output args, see OutputFcn hObject handle to figure eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see GUIDATA varargin command line arguments to DDEs see VARARGIN. channel ddeinit MT4 , QUOTE initialization pair read the symbol name rc ddeadv channel, pair, newTick x , x , 1 1 establish connection if rc 1 if the connection has been established, disp Connected inform the console end channel save the channel ID in handles. Choose default command line output for DDEs hObject Update handles structure guidata hObject, handles UIWAIT makes DDEs wait for user response see UIRESUME. --- Executes when user attempts to close figure1 function figure1CloseRequestFcn hObject, eventdata, handles hObject handle to figure1 see GCBO eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see GUIDATA. channel get the channel ID from handles pair read the symbol name ddeunadv channel, pair disconnect rc ddeterm channel deinitialization if rc 1 if everything is OK disp Disconnected inform the console end. Hint delete hObject closes the figure delete hObject. --- Executes during object creation, after setting all properties function editPairCreateFcn hObject, eventdata, handles hObject handle to editPair see GCBO eventdata reserved - to be defined in a future version of MATLAB handles empty - handles not created until after all CreateFcns called. set hObject, String , EURUSD Enter the symbol name in the input field set hObject, UserData , EURUSD In the UserData of the input field - save. Hint edit controls usually have a white background on Windows See ISPC and COMPUTER if ispc isequal get hObject, BackgroundColor , get 0, defaultUicontrolBackgroundColor set hObject, BackgroundColor , white end. I have given above the full texts of modify functions together with the text prepared for empty skeleton functions by the Matlab developers. The last block enters the symbol name in the corresponding field before the GUI is launched The entry will be copied to the UserData property We will always use the copy in UserData , whereas we will only use the name displayed in the field String if the user tries to change the security If the user has been mistaken when typing and a wrong name has been written in String , we will return to the name stored in UserData. The code below realizes the function of the user s symbol name changing. function editPairCallback hObject, eventdata, handles hObject handle to editPair see GCBO eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see GUIDATA. oldPair get hObject, UserData previous symbol name newPair get hObject, String new symbol name channel get the channel ID. disconn ddeunadv channel, oldPair disconnect if disconn 0 if you fail to disconnect set hObject, String, oldPair restore the old symbol name in the input field else if diconnected conn ddeadv channel, newPair, newTick x , x , 1 1 establish a new connection if conn 1 if the connection is established set hObject, UserData, newPair memorize what symbol is used else if you fail to establish a new connection ddeadv channel, oldPair, newTick x , x , 1 1 restore the old one set hObject, String, oldPair restore the old symbol name in the input field end end. Hints get hObject, String returns contents of editPair as text str2double get hObject, String returns contents of editPair as a double. Receiving Ticks. Consider that the connection is established and, at arrival of a new tick, the newTick x function is called that seals the argument received from MT 4 into a console First, let s display the last received quote in the corresponding line of our GUI. For this, we must have a structure of GUI graphical objects descriptors - handles are at the disposal of the newTick function Let s use the setappdata h, name, value function that saves the data to the application domain Specify 0 as the application ID It is the descriptor of the Matlab object root , it is invariant, so we can always know it. Add the line of setappdata 0, hndls, handles immediately after the heading of the DDEsOpeningFcn function. function DDEsOpeningFcn hObject, eventdata, handles, varargin setappdata 0, hndls, handles. Now, in function newTick , we can extract the handles by the function of value getappdata h, name having specified 0 as the argument of h Then we will be able to manage the GUI objects from the newTick function. Then we transform the string argument passed to the function from the DDE server and display the value of Bid in GUI Besides, we detect the local time of receiving the quote and display it, as well, but in the GUI status bar Local time is necessary, since DDE server passes the time with accuracy up to minutes, which is unacceptable for working with ticks The now function returns the local time with accuracy up to fractions of a millisecond, so we will not be worried about that different ticks will have the same time fixed We will also extract the server time from the line received from DDE server and transform into the Matlab time format. Below is one more example of the newTick function. function newTick simbols NEW TICK PROCESSING. timeLocal now Detect the exact local time handles getappdata 0, hndls Receive handles from root. disp simbols put the argument into console commented song wavread C WINDOWS Media Windows XP - read the sound wavplay song,40000 play the sound with the sampling rate of 40 kHz. datestr timeLocal show the local time in GUI. --- transforming the line received from MT 4 --- parts sscanf simbols, i i i i i f f studying the line according to the format int int int int int float float timeServerVect parts 1 5 extract the time timeServerVect timeServerVect transpose column into line timeServerVect timeServerVect 00 add seconds timeServer datenum timeServerVect transform into the Matlab time format Bid parts 6 extract Bid Ask parts 7 extract Ask --- end of transforming. num2str Bid Show Bid in GUI. Drawing a Tick Chart. Here is the continuation of the newTick function that was started above The code is provided with detailed comments, so, I suppose, it will be no trouble for you to make head or tail of it I will only explain that the Bid quotes array, like that of handles, is stored in the root object area but saved as data The data stored represents a structure that consists of two fields - symbol name of a currency pair - quotes array itself. In the newTick function, this data figures under the name of ticks , and the fields of the structure have the names of and repectively. represents an array consisting of three columns - local time in the Matlab time format with accuracy supported by Matlab microseconds - server time in the Matlab time format with accuracy to minutes - Bid. The newTick function empties the quotes array, if the symbol name in the editPair field has changed and the quotes for another symbol have started to arrive If that has NOT changed, lines are added to the existing array. The block of operations with the chart defines the parameters size and position of the axesChart window and extracts the window width in pixels from them This is necessary for the program to set the horizontal scale of the displaying - one quote by one pixel If there are fewer quotes than there are pixels in the window width, the chart will be drawn as a whole If there are more quotes than pixels, then only the latest data that fits in the chart will be displayed. --- working with quotes array --- GUIpairName UserData symbol name if. isappdata 0, data if no data GUIpairName form the name field form a field - an empty array setappdata 0, data, ticks write the data into root end ticks getappdata 0, data extract data if. if the name has changed GUIpairName form the name field form a field - an empty array setappdata 0, data, ticks write the data into root end timeLocal timeServer Bid add a line containing the new data to the existing data array setappdata 0, data, ticks write the data into root --- end of working with the array. --- working with chart --- chartSize get the chart window size chartSize chartSize 3 extract the chart window width lenArray get the size of the data array lenArray lenArray 1 extract the amount of lines in the data array. NextPlot , replace drawing mode - replace the old chart with a new one. if chartSize lenArray draw the whole chart else display the latest data fitting into the chart end chartSize set the scale - one count in one width pixel NextPlot , add drawing mode - adding chartSize , Bid Bid , m draw the Bid horizontal. Saving Data in File. The last function to be described is saving tick data in a file by the user s request We will save data by pressing a button, so add the Push Button object to the GUI form using the editor. Set the following object properties Tag pushSave, String Save. Upon pressing the M-file Editor button, the template of the pushSaveCallback function will be added to the end of the DDEs m automatically. Below is the full text of the function that saves the data. --- Executes on button press in pushSave function pushSaveCallback hObject, eventdata, handles hObject handle to pushSave see GCBO eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see GUIDATA date datestr now, yyyy-mm-dd get to know the date string time datestr now, HH-MM-SS get to know the time string name get to know the symbol name string template name date time form the file name userName, userPath uiputfile template get the name and the path from the user if userName. 0 if Cancel is not pressed ticks getappdata 0, data get the data from root. timesStr form a string array of time and date bidStr form string array named BID delimStr 1 length bidStr form a column separator more exactly, form a line that will be transposed into a column matrix timesStr delimStr bidStr gather write all Str into one matrix dlmwrite userPath userName , matrix, save the matrix in a file end. The function prepares the file name that consists of the date, time and symbol name of the security At saving, the symbol matrices are preliminarily prepared - timesStr -- local time and date corresponding with the quotes - delimStr -- delimiters - bidStr -- BID column Then they all are united in one matrix. delimStr represents a line consisting of spaces the length of the line is equal to the length of the BID column At merging, the delimStr line is transposed into a column and separates the quotes column from the time. I hope the method described above will allow you to use the entire abundance of mathematical functions in Matlab for development and testing your automated trading strategies.

No comments:

Post a Comment