Release Notes

From FxCodeBaseWiki

Jump to: navigation, search

Contents

ForexConnect 1.6 (2018-07-16)

Changes

  1. transport was upgraded В to support advanced security with TLS 1.2
  2. added an ability to work with new FXCM authentication procedure (single-sign-on)
    1. added a sample to demostrate how to create a new trading session with this approach (for all the languages)
  3. added an ability to get CAS report
    1. added a sample to demostrate the report retrieval
  4. Price History and Quotes Manager API are included into Forex Connect
    1. Quotes Manager API now requires to create a trading session
  5. fixed a few relatively small problems
  6. Note. In the future releases C++ API of ForexConnect will require C++11 support. Please plan accordingly.

ForexConnect 1.5 (2017-10-20)

Changes

  1. Forex Connect has been rebuilt to support C++11.
    1. Windows version now has VC 14.0 runtime (MSVC 2015)
    2. Linux version has been built with GCC 4.9.2
  2. Added ability to get information about rollovers via new interface IO2GRolloverProvider
  3. Improved IOS wrapper
    1. Updated Objective-C wrapper to comply with existing API
    2. IOS samples updated to work with Swift 4
    3. Added more IOS samples (Orders and Trades view, Getting history prices)
  4. Improved Android support
    1. Added x86 build to work with emulator more efficiently
  5. Added new API wrapper - Netcore (MSVC 2017 required) - able to work on Windows, Linux and MacOS
  6. All samples are also published on Github: https://github.com/gehtsoft/forex-connect
  7. Eliminated support of 32-bit version for Mac OS
  8. C# samples require .net 4.5 framework

ForexConnect 1.4.1 (2017-01-26)

Changes

  1. Ability to retrieve information about commissions has been added.To retrieve information about commissions, use new interface IO2GCommissionsProvider. New method getCommissionsProvider has been added to the IO2GSession interface.Using the IO2GCommissionsProvider interface you can:
    1. Retrieve lists of commissions for the specified offer and account. For this purpose, use method IO2GCommissionsProvider.getCommissionDescriptions.
    2. Calculate estimated commissions for trading operations. For this purpose, use the following methods: IO2GCommissionsProvider.calcOpenCommission,IO2GCommissionsProvider.calcCloseCommission,IO2GCommissionsProvider.calcTotalCommission.
  2. The Search function has been updated. It is now possible to search not only for specified values, but also for values that are greater, less or between the specified ones. New enumeration O2GRelationalOperators has been added. A new parameter with the O2GRelationalOperators type has been added to the following methods:getNextGenericRowByColumnValue,getNextGenericRowByMultiColumnValues,getNextGenericRowByColumnValues,getNextGenericRowByCondition
  3. It is now possible to receive only trading events omitting events caused by data recalculation. New method setTableEventsFilter has been added to the IO2GTable interface.
  4. Ability to set request timeouts has been added. If a timeout expires and there is no request response, ForexConnect will send the request failed notification. New methods setRequestsTimeout, getRequestsTimeout have been added to IO2GSession.
  5. It is now possible to retrieve notifications about beginning\ending of the table events batch. The events batch is a set of events generated for a table by a single server message. The IO2GUpdatesProcessStatusListener interface has been added.
  6. You can choose the mode of the open price for the candle calculation using the Close price of the previous candle or first tick of the current candle. The new parameter has been added to fillMarketDataSnapshotRequestTime.

Breaking changes

  1. New parameter in methods getNextGenericRowByColumnValue, getNextGenericRowByMultiColumnValues, getNextGenericRowByColumnValues.To simulate the old behavior, the "EqualTo" value of the new parameter should be used.
  2. New parameter in the fillMarketDataSnapshotRequestTime.To simulate the old behaviour, the "PreviousClose" value of the new parameter should be used.

ForexConnect 1.3.2 beta (2015-01-29)

Changes

  1. To avoid any problems with AppStore new rules (https://developer.apple.com/news/?id=10202014a) ForexConnect now supports 64-bit architecture and is built on iOS 8 SDK.
  2. OpenSSL is updated to avoid any problems with the old version.
  3. ForexConnect supports server-side updates concerning the possibility to separate trading and chart sessions. ForexConnect interface was also extended – to support ability to work with chart session in different modes. For this purpose the following methods were implemented in O2GSession interface: setChartSessionMode, getChartSessionStatus, subscribeChartSessionStatus and unsubscribeChartSessionStatus. The new interface O2GChartSessionStatus and the new methods onChartSessionStatusChanged and onChartSessionLoginFailed were implemented. onChartSessionLoginFailed method works just like onSessionStatusChanged and onSessionLoginFailed ( O2GSessionStatus interface) methods except for the chart session.
  4. Some ForexConnect API modules in Android version are loaded dynamically to reduce ForexConnect package size. A new method setTransportModulesPath has been added to the O2GTransport interface for Java. It allows to set the absolute path to the installed ForexConnect API modules to avoid possible issues with dynamic loading.

Fixes

  1. The issue with creating Market order instead of OpenLimit order.
  2. Overall ForexConnect stability has been improved.

ForexConnect 1.3.1 beta (2014-06-24)

New Features

  1. A new method setClosedHistorySize has been added to the O2GTransport interface. It allows setting the number of recent Closed Trades stored in the Closed Trades table. The method getClosedHistorySize that allows getting the value set in setClosedHistorySize has been added as well.
  2. A new Time-In-Force option “Good Till Date” (GTD) has been added. It allows setting the date and time until which the order shall be waiting for execution. The createEntry sample has been updated to show the ability to create entry orders with the Time-In-Force “Good Till Date” (GTD).

Other changes

  1. All samples wait for the session status “Disconnected” before releasing/disposing the session in case of receiving "SessionLost".
  2. Security of login process has been improved.

Fixes

  1. The Java crash on Linux after createSession().
  2. The Java crash on Linux after exit().
  3. The issue with Visual Basic samples for the COM version not built.
  4. The crash of the Android sample when an incorrect password is used.
  5. The issue with not receiving updates of Stop/Limit orders for Trades table.
  6. The segmentation fault on Linux after disconnection.
  7. The issue with the method O2GTimeConverter.convert throwing NullPointerException with an empty message if the second parameter is O2GTimeConverterTimeZone.SERVER.
  8. The issue with C++ samples for Linux not built.
  9. The issue with not updating the Stop/Limit rate for an open position.
  10. The issue with missing onChanged events when Stop/Limit for a position is closed/created/updated.
  11. The issue with empty Stop/Limit fields in TradeRow after attaching Stop/Limit to a position.
  12. The logic of waiting for a response in the C# LockUpdates sample.
  13. The issue with the session release before receiving the session status.
  14. The issue with the memory leak in the getTableManagerByAccount method.
  15. The issue with the incorrect GrossPL value for CFD instruments.
  16. The issue with the memory usage growing after the intensive use of the Internet.
  17. The method setNumberOfReconnections is corrected to properly work with the value of the Number parameter equal to INFINITE_NUMBER_OF_RECONNECTIONS.

ForexConnect 1.3.0 (2013-04-26)

Breaking Changes

  1. The Async logout command has been implemented.
  2. The getUsedMargin method in the TradeRow interface now returns Double instead of Integer.

New Features

  1. A new getQueryDepth method has been added to the O2GTimeframe interface. It allows getting the maximum number of periods (bars) that can be retrieved via market data snapshot (price history) request.
  2. A new row search has been added. It is now possible to search by multiple columns or any of the specified column values. The following methods have been added to the table interfaces:
    • getNextGenericRowByColumnValues
    • getNextGenericRowByMultiColumnValues
  3. The O2GSession interface has been extended with a new public getSessionStatus method that allows getting the current session status.
  4. Processing update during the refreshing has been added.

Other changes

  1. Thread synchronization has been improved.
  2. Summary calculation performance has been improved.
  3. The optional symbol parameter has been added to the value map. It is now possible to specify the name of the symbol in the offer field of the value map to create orders. For example, "EUR/USD". The standard samples set has been extended with the new sample (CreateOrderBySymbol in the non table managers samples), demonstrating this feature.
  4. Handling of session lost during price channel connecting has been added.
  5. Standard samples have been reviewed and improved. Support of command line has been extended.

Fixes

  1. Deadlock in case several sessions are used.
  2. Android deadlock on exit.
  3. Creating a snapshot request without the table manager.
  4. Java wrapper crash on Linux.
  5. Segmentation fault for multi-session on Linux/Mac.
  6. Crash on Linux if applications use CURL or QT Network.
  7. Java access violation if we use a new thread for connecting, and then connect in the main thread.
  8. An issue with Stop/Limit assignment after the end of a trading day.

ForexConnect 1.2.2 (2012-10-09)

Fixes

  • The issue with zero BuyAvgOpen and SellAvgOpen fields.
  • The issue with Net P/L calculation in the Summary table. If several positions in one currency are opened and have non-zero interest, then the interest from the first position only is taken into account for Net P/L.

ForexConnect 1.2.1 (2012-08-21)

Fixes

  • Fixed an issue with O2GSummaryTable that caused updates to have an erroneous value for amount field when orders were first created.
  • Other minor bug fixes.

ForexConnect 1.2.0 (2012-06-22)

ForexConnect API 1.2.0 (table manager) has been released. This provides access to all table data as well as calculated fields; e.g., P/L on open trades.

In this release there are a few breaking changes that must be applied to all applications written with previous production version (1.0.3). Please see a list of breaking changes below.

Also, in this release, the new method setApplicationID is added. Application ID is used for identifying client applications on the server.

Breaking Changes

  1. The method getTableRefeshResponse of the class IO2GLoginRules was renamed getTableRefreshResponse.
  2. The order2go2 library and the Order2Go2.h header file were renamed ForexConnect and ForexConnect.h, respectively. This change affects all ForexConnect C++ applications. The change does not affect ForexConnect Java, .NET, and C applications. Please see the article that discusses how to modify your current ForexConnect C++ project to use it with ForexConnect 1.2.0
  3. The method tableType of the class IO2GGenericTableResponseReader was renamed getType.
  4. The method tableType of the class IO2GRow was renamed getTableType.
  5. The method getContractMultiplier of the class IO2GOfferRow now returns Double instead of Integer.
  6. The Dispose method was removed from all C# O2G classes, except O2GSession.
  7. To delete an order, you should now fill the AccountID value in the value map in addition to Command and OrderID.

Fixes

  • The issue with inability to change trailing step for an existing order was fixed
  • getReportURL was not working for controlled accounts
  • Deadlock on exit in the Linux version
  • Memory leaks in the iOS version

ForexConnect 1.1.3 (2012-03-30)

Breaking Change

The order2go2 library and the Order2Go2.h header file were renamed ForexConnect and ForexConnect.h, respectively.

This is a breaking change that affects all ForexConnect C++ applications. Note that the change does not affect ForexConnect Java, .NET, and C applications.

Please see the article that discusses how to modify your current ForexConnect C++ project to use it with ForexConnect 1.1.3 or higher.

Changes

  1. A new order types: Open Limit and Close Limit.
    ForexConnect allows creating Open Limit and Close Limit orders. An Open Limit (Close Limit) order opens (closes) a position at the specified market rate or at a more favorable rate in case such rate is available on the market. To create an order, specify "OL" ("CL") in the OrderType parameter for valuemap.
  2. A new method setApplicationID.
    The method allows setting Application ID. Application ID is used for identifying client applications on the server.

Fixes

  1. The value (Offer and Trade) turns into 0 after instrument update (usually 22:00 GMT).
    The problem was the value turns into 0 after instrument update and stays there (zero) forever.
  2. O2GTradeTableRow Stop/Limit equals zero.
    After adding Stop/Limit, O2GTradeTableRow Stop/Limit shows zero.
  3. Net PL values in the Summary table are different in FX Trading Station and ForexConnect API.
  4. Fixed the issue that made a program receive duplicate table updates on 'listeners' API.
  5. Fixed deadlock on exit in the Linux version.

ForexConnect 1.0.3 (2012-03-13)

Changes

  1. Created new command to get the last status of an order: Constants.Commands.GetLastOrderUpdate

Fixes

  1. Fixes issue that has program get duplicate messages after Internet connection recovery.

ForexConnect 1.1.2 (2012-01-20)

Changelog

  1. It has become easier to work with the table manager:
    • The getStatus method has been added to the IO2GTableManager class.
    • Now tables are loaded automatically after login.
    • You can use tables if the table manager has the TablesLoaded status.
  2. The PL property has been added to the IO2GClosedTradeTableRow table.
  3. The getNextRowByColumnValue method has been added to the table classes (IO2GAccountsTable, IO2GClosedTradesTable etc.). This method allows finding all columns which contain the specified value.
  4. The lockUpdates and unlockUpdates methods have been added to the IO2GTableManager class.
  5. The following issues have been fixed:
    • Right after opening/closing a position the account table change event gives 0 numbers for Equity, DayPL, Usbl Mrg, etc.
    • Calculated fields of the Accounts table contain invalid values after the TrueMarketOrder execution. In particular, Gross P/L in the Accounts table is set to 0 after the position is opened, and then, after the price change, the values are calculated incorrectly. Usb Mr also contains invalid values after the order is created.
    • getReportURL doesn't work for controlled accounts.
  6. The getNextGenericRow and getNextGenericRowByColumnValue methods have been added to the IO2GTable class. They allow enumerating a table as abstract. These methods are functionally equivalent to the getNextRow and getNextRowByColumnValue methods of specific inheritors of IO2GTable (IO2GAccountsTable, IO2GOffersTable etc.).
  7. Documentation has been improved (description of the classes, methods, etc.).

Breaking Changes

  1. To delete an order, you should now fill the AccountID value in the value map in addition to Command and OrderID.
  2. The refresh method has been removed from the IO2GTable class.
  3. The fireEachRow method has been renamed to forEachRow. The usage of the method has been changed:
    • The subscribeEachRow and unsubscribeEachRow methods have been removed. Instead, listener is used as an argument of the method.
    • The new IO2GEachRowListener interface has been added to be used in forEachRow with the single onEachRow callback method. Of course, the onEachRow method has been removed from the IO2GTableListener class.

ForexConnect 1.1.1 (2011-11-23)

Changelog

  1. Now you can use a new order type "E" to create an entry order. API automatically determines the proper Entry type (Stop Entry or Limit Entry) for this order type based on the side (Buy/Sell) and the position of the order against the market. Note that the new type can only be used if the Table manager mode is set to "Yes".
  2. Calculated values in the Account table are now rounded to 2 decimal places.
  3. The issue with inability to change trailing step for an existing order was fixed.
  4. The IO2GTableListener.onDeleted event contains latest available row data which were actual before row removing.

There is a breaking change in this release that must be applied to all applications written with the previous versions of the ForexConnect API. Without it your applications would not work properly.

Breaking Change

  • The Dispose method was removed from all C# O2G classes, except O2GSession.

ForexConnect 1.1.0 (2011-11-11)

This is the beta release of the ForexConnect API with the table manager. The table manager is an additional component which is responsible to keep all tables data and perform all offer-based calculations (such as open trades profit/loss and current account equity) "on the fly".

In this release there are a few breaking changes that must be applied to all applications written with the previous versions of the ForexConnect API. Without it your applications would not work properly. Please see a list of breaking changes below.

Breaking Changes

  1. The method getTableRefeshResponse of the class IO2GLoginRules was renamed to getTableRefreshResponse.
  2. The method tableType of the class IO2GGenericTableResponseReader was renamed to getType.
  3. The method tableType of the class IO2GRow was renamed to getTableType.
  4. The method getContractMultiplier of the class IO2GOfferRow now returns Double instead of Integer.

ForexConnect 1.0.1 (2011-11-10)

The following changes are made:

  1. The core does not crash when "FXTS" is chosen as the application name, the single-session account is used to login and the session is expired because of another FXTS application is logged in.
  2. The message content in the message table events is automatically unpacked when accessed.
  3. The account updates now are forwarded to onTableUpdate listener.
  4. A new method getHTMLFragmentFlag is added to the class O2GMessageRow. The method defines whether the message is an HTML fragment.
  5. The API does not crash when reconnecting.

ForexConnect 1.0.0 (2011-11-04)

This is the first official release of the ForexConnect API. All existing features have been finalized, however tables have not yet been added. In this release there are a few breaking changes that must be applied to all applications written with the previous versions of the ForexConnect API. Without it your applications would not work properly. Please see a list of breaking changes below.

Breaking Changes

  1. In .NET and Java API, the enumeration O2GTable was renamed to O2GTableType.
    To make your application working with the new version of the API, please rename all occurrences of O2GTable enumeration to O2GTableType.
  2. The method fillMarketDataSnapshotRequestTime was extended with one additional parameter: bool isIncludeWeekends. This parameter defines whether weekend price data should be included or not in the market data snapshot.
    To make your application working with the new version of the API, please add a parameter with value true or false depending on whether you need the weekend prices or not.
  3. In Java API, the field OCO_BULK_ID of the enumeration O2GRequestParamsEnum was renamed to CONTINGENCY_ID.
    To make your application working, please rename all occurrences of OCO_BULK_ID to CONTINGENCY_ID.

ForexConnect 0.3.1 (2011-07-15)

What's New?

  1. Simple samples for Linux are added;
  2. A C++ "Create OTO" sample is added;
  3. The issue with mixed up BuyInterest/SellInterest columns is fixed.

ForexConnect 0.3.0 (2011-06-30)

This is the third preview release of the ForexConnect API.

What's New?

  1. Android support is added. You can find the instruction on how to use ForexConnect Java API on Android platform in the article How to Use ForexConnect Android API
  2. JNI wrapper is added.
  3. NET 4.0 wrapper is added.
  4. A trading command for creating OTO orders is added:
    CreateOTO
    An OTO sample can be found in the samples folder located in the ForexConnectAPI folder:
    InstallationPath/ForexConnectAPI/samples/cpp/SimpleSamples/CreateOTO
  5. Trading commands for managing OTO/OCO contingency groups are added:
    JoinToNewContingencyGroup
    JoinToExistingContingencyGroup
    RemoveFromContingencyGroup
  6. Price update mode for a session is added. The price update mode defines if price updates should be received. By default they are received. The following methods are added:
    IO2GSession.setPriceUpdateMode
    IO2GSession.getPriceUpdateMode
    Disabling of price updates receiving can be useful when you have two or more trading sessions.
  7. A trading command for setting the offer subscription status is added: SetSubscriptionStatus
  8. BuyInterest/SellInterest values are now available through IO2GOfferRow and offer updates.
  9. The documentation is updated.

Known Issues

There are stability problems with ForexConnect Java API on Mac.

ForexConnect 0.2.0 (2011-03-25)

This is the second preview release of the ForexConnect API. The trading functions and cross-platform support are added to this release.

This Article in Other Languages

Language: English  • Español • Français • Русский • 中文 • ‪中文(繁體)‬
Personal tools