public void SendQuotesList()
{
Holder.TickHandler1 += (ticks, connection) =>
{
if (Socket.State != WebSocketState.Open)
return;
List<SymbolDTO> list = new List<SymbolDTO>();
foreach (var tick in ticks)
{
var info = Holder.Nj4xClient.SymbolInfo(tick.Symbol);
var dto = new SymbolDTO(tick.Symbol, info);
list.Add(dto);
}
var message = JsonConvert.SerializeObject(list);
Socket.SendAsync(buffer: new ArraySegment<byte>(
array: Encoding.ASCII.GetBytes(message),
offset: 0,
count: message.Length),
messageType: WebSocketMessageType.Text,
endOfMessage: true,
cancellationToken: CancellationToken.None);
};
}
public class ConnectionHolder
{
public string ConnectionId { get; set; }
public ClientDetails ClientDetails { get; set; }
// Strategy properties
public Strategy Nj4xClient { get; set; }
public event Strategy.BulkTickHandler TickHandler1;
// Strategy properties
public ConnectionHolder()
{
}
public ConnectionHolder(string broker, string account, string password)
{
ClientDetails = new ClientDetails(broker, account, password);
ConnectionId = Guid.NewGuid().ToString();
ConnectToNj4xServer();
}
public void ConnectToNj4xServer()
{
Nj4xClient = new Strategy();
Nj4xClient.SetBulkTickListener((ticks, con) =>
{
TickHandler1(ticks, con);
});
TickHandler1 = (ticks, connection) =>
{
//foreach (var tick in ticks)
//{
// Console.WriteLine($"tick: {tick}");
//}
};
try
{
Nj4xClient.Connect(
"127.0.0.1",
7788,
new nj4x.Metatrader.Broker(ClientDetails.Broker),
ClientDetails.Account,
ClientDetails.Password,
true);
}
catch (nj4x.Metatrader.MT4Exception ex)
{
throw new Exception("Connection failed");
}
}
public bool IsConnected()
{
return Nj4xClient.IsConnectedToTerminal();
}
}