All versions back log
01.03.2022
- API documentation augmented
28.02.2022
- added
TestController::TryParseDateTime
to test .NET DateTime parser values validity;
- possible memory leakage fixes;
- added
/healthz
URL endpoint to tell the status, possible values are (HTTP Code, string): [{200,Healthy}, {200,Degraded}, {503,Unhealthy}]
;
- V2 endpoint removed. There is a way to share error details even when we return 404 NOT FOUND (MT4/MT5 resource not found);
- Swagger/OpenAPI documentation updated: methods grouped by entity type, added description of 400,404 results, where applicable;
14.02.2022
- added 'CfgRequestSymbol', 'CfgRequestSymbol/{symbol}' methods to MT4 controller;
- fixed problem with
UserRecordsRequest
method;
v1.3 (09.02.2022)
- migrated to .NET 6.0;
- if connection to MT4 was not used during past 15 minutes - it will disconnect from MT4 to reduce load;
v1.2 (17.11.2021)
- migrated to .NET 5.0;
api-version
passed within query string not supported anymore, to specify api version. Use URL path instead;
- added
v2
api endpoint;
18.10.2021
- fixed problem when trade platform settings updated and WebAPI still used old credentials;
- use MT4 mtmanapi v1320
- performance optimization
28.06.2021
- added aggregation of price stream,
SignalR::MT4
hub now have method SetTicksAggregationSettings
. Take a look to demo page source code to get example of use.
1.1.2
- WebAPI subscribed to updated ManagerAPI method
OnlineExChanges
(OnlineEx
were used before), which is now distinct against changes.
1.1.1.10
- added
void SubscribeToOnlineUpdates(Guid tradePlatform)
, void UnsubscribeFromOnlineUpdates(Guid tradePlatform)
to MT4 hub and corresponding OnOnlineUpdate(Guid tpConnectionKey, TransactionType transactionType, int login)
callback.
- added signalr example links to main page
1.1.1.9
- added
UserRecordsRequest
and UsersRequest
methods to MT4
controller
1.1.1.7
- native MT4ManagerAPI updated to b1310
1.1.1.6
1.1.1.5
- updated MT4 ManagerAPI wrapper to version 4.1260.1.8. If MT4 server DNS name cannot be resolved, it will try again using longer periods after each failed step, to avoid spamming journal.
1.1.1.2
- added "CfgUpdateSymbol" and "SymbolsRefresh" methods
1.1.1.1
- MT4 hub will notify SignalR consumers about current MT4 pumping status
1.1.1.0
1.1.0.24
- cached responses now in lower case, to match application standards
1.1.0.23
- added support for cached responses to make requests idempotent
at any URL it can be added cacheId
of Guid
type,
and cacheTimeout
specifying timout in seconds.
Example: /API/MT4/{mt4id}/JournalRequest/2020-08-01/2020-09-20/Full?cacheId=63cb3a5f-1bd6-445d-8da8-1b3d8a6ce70d&cacheTimeout=60
Next time if cacheId
specified, it will search in DB for cached record associated for this ID, if found - will return cached data instead.
After cacheTimeout
seconds record will be deleted from DB permanently and will not be available.
1.1.0.21
- added API methods execution time logging
1.1.0.20
1.1.0.19
- when there were no open trades, by mistake,
OnMarginUpdate
Hub method returned zero balance
1.1.0.18
- added
UnsubscribeFromMarginUpdates
to MT4Hub
1.1.0.17
- added method
MT4::JournalRequest
1.1.0.16
1.1.0.15
- [fix] mistake when
MT4Hub
called OnMarginUpdate
callback with empty list even client did not subscribe for it
1.1.0.14
- internal code optimization
1.1.0.13
Hubs:MT4
margin level will be sent for all subscribed users, if subscribed explicitly, does not matter if there any open positions. Or if subscribed to all data, it will send for those accounts who have open positions.
1.1.0.12
- by default, MT platform connection timeout now 30 seconds. (previously was 1..5 in different places)
- added
MT4::ManagerCommon
and MT4::ManagerCommonEx
methods
- x64 runtime
1.1.0.11
- SignalR endpoint rewritten to run under ASP.NET Core
- There is two example webpages: [simple test] and [MT4 demo], check their page source code to get the idea
- typescript example included
MT4::AdmBalanceCheck
login to be specified as of AdmBalanceCheck/<login>
MT4::AdmBalanceCheck
always return value of type AdmBalanceCheck
(in comparison to ManagerAPI which does not return anything, if balance is ok)
MT4::AdmBalanceCheck
now supports only single login specified within URI AdmBalanceCheck/{login:int:min(1)}
MT4::AdmBalanceFix
now supports only single login specified within URI AdmBalanceCheck/{login:int:min(1)}
1.1.0.10
- fixed possible memory leaking problem making app crash unexpectedly
1.1.0.9
- fixed problem with
MT4::UserRecordNew
call result, passwords were suffixed with \0
characters
v1.1.0.8
- slightly reduced memory usage
- performance significantly tuned up
MT4::UserPasswordSet
now requires Update
permission, instead of Request
MT4::UserRecordNew
API method accept and return structure of type UserRecordNew
where password and password investor presented in plain text, and only once. Following requests of user settings will return both passwords stored in base64
- Added
MT4::AdmTradeRecordModify
method
- added
MT4::AdmBalanceCheck
and MT4::AdmBalanceFix
methods
v1.1.0.7
- added
GET
method for MT4 MarginLevelRequest
which does not require pumping and does not need open trades to return a result (in comparison to MarginLevelGet
)
v1.1.0.6
v1.1.0.5
- [fix] issue with applying new MT4 settings after update.
v1.1.0.4
- starting from now TickInfoLast will not make any calls to MT4, it will return internal buffer instead. But, if you want to collect prices you should add symbol to watch list by making a very single call to
SymbolAdd
. Then during whole WebAPI runtime it will collect prices for you into internal buffer. Keep in mind, this is not a history, only most recent prices for each explicitely monitored symbol. By default, symbol will be in market watch when there are open trades on it. Otherwise, you will not see prices until add symbol to watch list.
- now there are two methods :
TickInfoLast/{symbol}
- request prices for specified symbol only
TickInfoLast
- request prices for all monitored symbols
v1.1.0.3
- added
GET MT4/<id>/TickInfoLast
- added
GET MT4/<id>/TicksRequest
- added
GET MT4/<id>/ChartRequest
v1.1.0.2
- added
POST API/MT4/<id>/CfgUpdateGroup
- added
POST API/MT4/<id>/UserRecordUpdate
v1.1.0.0
- source code migrated to asp.net core 2.1
- OData endpoint will not be served anymore. RESTful JSON WebAPI will take place
/odata/[controller]({id})
should be redirected to `/api/[controller]/{?id}
v1.0.0.72
- fixed issue with wrtong error message returned while being not authenticated.
v1.0.0.71
- makes possible for: /odata/MT4Users(1000)/NS.MarginLevelGet()?`$select=Margin,Free
v1.0.0.67
- added very first support of MT5 platform
- added
POST /odata/TradePlatforms({Id})/NS.MT5DealerSend
to send trade request to MT5 server
- now it notice MT4/MT5 settings updates came from Admin portal to reconnect with new credentials