Issue #122: Added event OnLockTicksEvent (MT5)

This commit is contained in:
vdemydiuk
2018-06-06 12:46:24 +03:00
parent 1a5882b75a
commit 897892dc89
8 changed files with 75 additions and 13 deletions
+2 -1
View File
@@ -5,6 +5,7 @@
OnTradeTransaction = 1,
OnBookEvent = 2,
OnTick = 3,
OnLastTimeBar = 4
OnLastTimeBar = 4,
OnLockTicks = 5
}
}
+7
View File
@@ -0,0 +1,7 @@
namespace MtApi5.Events
{
internal class OnLockTicksEvent
{
public string Instrument { get; set; }
}
}
+14
View File
@@ -0,0 +1,14 @@
using System;
namespace MtApi5
{
public class Mt5LockTicksEventArgs : EventArgs
{
internal Mt5LockTicksEventArgs(string symbol)
{
Symbol = symbol;
}
public string Symbol { get; }
}
}
+2
View File
@@ -50,8 +50,10 @@
<Compile Include="CopyTicksFlag.cs" />
<Compile Include="Events\OnBookEvent.cs" />
<Compile Include="Events\OnLastTimeBarEvent.cs" />
<Compile Include="Events\OnLockTicksEvent.cs" />
<Compile Include="Events\OnTickEvent.cs" />
<Compile Include="Events\OnTradeTransactionEvent.cs" />
<Compile Include="Mt5LockTicksEventArgs.cs" />
<Compile Include="Mt5TimeBarArgs.cs" />
<Compile Include="MqlBookInfo.cs" />
<Compile Include="MqlParam.cs" />
+12 -4
View File
@@ -52,8 +52,9 @@ namespace MtApi5
_mtEventHandlers[Mt5EventTypes.OnBookEvent] = ReceivedOnBookEvent;
_mtEventHandlers[Mt5EventTypes.OnTick] = ReceivedOnTickEvent;
_mtEventHandlers[Mt5EventTypes.OnTradeTransaction] = ReceivedOnTradeTransaction;
_mtEventHandlers[Mt5EventTypes.OnLastTimeBar] = ReceivedOnLastTimeBar;
_mtEventHandlers[Mt5EventTypes.OnTradeTransaction] = ReceivedOnTradeTransactionEvent;
_mtEventHandlers[Mt5EventTypes.OnLastTimeBar] = ReceivedOnLastTimeBarEvent;
_mtEventHandlers[Mt5EventTypes.OnLockTicks] = ReceivedOnLockTicksEvent;
}
///<summary>
@@ -3118,6 +3119,7 @@ namespace MtApi5
public event EventHandler<Mt5TradeTransactionEventArgs> OnTradeTransaction;
public event EventHandler<Mt5BookEventArgs> OnBookEvent;
public event EventHandler<Mt5TimeBarArgs> OnLastTimeBar;
public event EventHandler<Mt5LockTicksEventArgs> OnLockTicks;
#endregion
#region Private Methods
@@ -3193,7 +3195,7 @@ namespace MtApi5
_mtEventHandlers[eventType](e.ExpertHandle, e.Payload);
}
private void ReceivedOnTradeTransaction(int expertHandler, string payload)
private void ReceivedOnTradeTransactionEvent(int expertHandler, string payload)
{
var e = JsonConvert.DeserializeObject<OnTradeTransactionEvent>(payload);
OnTradeTransaction?.Invoke(this, new Mt5TradeTransactionEventArgs
@@ -3230,12 +3232,18 @@ namespace MtApi5
QuoteUpdate?.Invoke(this, new Mt5QuoteEventArgs(quote));
}
private void ReceivedOnLastTimeBar(int expertHandler, string payload)
private void ReceivedOnLastTimeBarEvent(int expertHandler, string payload)
{
var e = JsonConvert.DeserializeObject<OnLastTimeBarEvent>(payload);
OnLastTimeBar?.Invoke(this, new Mt5TimeBarArgs(expertHandler, e.Instrument, e.Rates));
}
private void ReceivedOnLockTicksEvent(int expertHandler, string payload)
{
var e = JsonConvert.DeserializeObject<OnLockTicksEvent>(payload);
OnLockTicks?.Invoke(this, new Mt5LockTicksEventArgs(e.Instrument));
}
private void Connect(string host, int port)
{
var client = new MtClient(host, port);