Compare commits

...

1 Commits
16632 ... 14228

Author SHA1 Message Date
Martin-Molinero
38712fbc13 Minor refactor messaging handler 2022-07-08 20:11:02 -03:00
9 changed files with 70 additions and 18 deletions

View File

@@ -30,6 +30,7 @@ using QuantConnect.Optimizer.Parameters;
using QuantConnect.Orders;
using QuantConnect.Statistics;
using QuantConnect.Util;
using QuantConnect.Notifications;
namespace QuantConnect.Api
{
@@ -367,6 +368,15 @@ namespace QuantConnect.Api
return result;
}
/// <summary>
/// Sends a notification
/// </summary>
/// <param name="notification">The notification to send</param>
/// <returns><see cref="RestResponse"/> containing success response and errors</returns>
public virtual RestResponse SendNotification(Notification notification)
{
throw new NotImplementedException($"{nameof(Api)} does not support sending notifications");
}
/// <summary>
/// Create a new backtest request and get the id.

View File

@@ -18,6 +18,7 @@ using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using QuantConnect.Api;
using QuantConnect.Notifications;
using QuantConnect.Optimizer.Objectives;
using QuantConnect.Optimizer.Parameters;
using QuantConnect.Statistics;
@@ -411,13 +412,12 @@ namespace QuantConnect.Interfaces
/// <returns></returns>
RestResponse StopLiveAlgorithm(int projectId);
//Status StatusRead(int projectId, string algorithmId);
//RestResponse StatusUpdate(int projectId, string algorithmId, AlgorithmStatus status, string message = "");
//LogControl LogAllowanceRead();
//void LogAllowanceUpdate(string backtestId, string url, int length);
//void StatisticsUpdate(int projectId, string algorithmId, decimal unrealized, decimal fees, decimal netProfit, decimal holdings, decimal equity, decimal netReturn, decimal volume, int trades, double sharpe);
//void NotifyOwner(int projectId, string algorithmId, string subject, string body);
//IEnumerable<MarketHoursSegment> MarketHours(int projectId, DateTime time, Symbol symbol);
/// <summary>
/// Sends a notification
/// </summary>
/// <param name="notification">The notification to send</param>
/// <returns><see cref="RestResponse"/> containing success response and errors</returns>
RestResponse SendNotification(Notification notification);
/// <summary>
/// Get the algorithm current status, active or cancelled from the user

View File

@@ -1,4 +1,4 @@
/*
/*
* QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
* Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation.
*
@@ -37,12 +37,13 @@ namespace QuantConnect.Interfaces
/// <summary>
/// Initialize the Messaging System Plugin.
/// </summary>
void Initialize();
/// <param name="initializeParameters">The parameters required for initialization</param>
void Initialize(MessagingHandlerInitializeParameters initializeParameters);
/// <summary>
/// Set the user communication channel
/// </summary>
/// <param name="job"></param>
/// <param name="job">The job packet</param>
void SetAuthentication(AlgorithmNodePacket job);
/// <summary>

View File

@@ -0,0 +1,38 @@
/*
* QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
* Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
namespace QuantConnect.Interfaces
{
/// <summary>
/// Parameters required to initialize a <see cref="IMessagingHandler"/> instance
/// </summary>
public class MessagingHandlerInitializeParameters
{
/// <summary>
/// The api instance to use
/// </summary>
public IApi Api { get; }
/// <summary>
/// Creates a new instance
/// </summary>
/// <param name="api">The api instance to use</param>
public MessagingHandlerInitializeParameters(IApi api)
{
Api = api;
}
}
}

View File

@@ -119,7 +119,7 @@ namespace QuantConnect.Lean.Engine
public void Initialize()
{
Api.Initialize(Config.GetInt("job-user-id", 0), Config.Get("api-access-token", ""), Config.Get("data-folder"));
Notify.Initialize();
Notify.Initialize(new MessagingHandlerInitializeParameters(Api));
JobQueue.Initialize(Api);
}
@@ -138,4 +138,4 @@ namespace QuantConnect.Lean.Engine
Log.Trace("LeanEngineSystemHandlers.Dispose(): Disposed of system handlers.");
}
}
}
}

View File

@@ -43,7 +43,8 @@ namespace QuantConnect.Messaging
/// <summary>
/// Initialize the Messaging System Plugin.
/// </summary>
public void Initialize()
/// <param name="initializeParameters">The parameters required for initialization</param>
public void Initialize(MessagingHandlerInitializeParameters initializeParameters)
{
_queue = new Queue<Packet>();

View File

@@ -42,7 +42,8 @@ namespace QuantConnect.Messaging
/// <summary>
/// Initialize the messaging system
/// </summary>
public void Initialize()
/// <param name="initializeParameters">The parameters required for initialization</param>
public void Initialize(MessagingHandlerInitializeParameters initializeParameters)
{
//
}

View File

@@ -47,7 +47,8 @@ namespace QuantConnect.Messaging
/// <summary>
/// Initialize the messaging system
/// </summary>
public void Initialize()
/// <param name="initializeParameters">The parameters required for initialization</param>
public void Initialize(MessagingHandlerInitializeParameters initializeParameters)
{
_port = Config.Get("desktop-http-port");
CheckPort();

View File

@@ -1,4 +1,4 @@
/*
/*
* QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
* Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation.
*
@@ -38,7 +38,7 @@ namespace QuantConnect.Tests.Messaging
Config.Set("desktop-http-port", _port);
_messageHandler = new StreamingMessageHandler();
_messageHandler.Initialize();
_messageHandler.Initialize(null);
}
[Test]
@@ -158,4 +158,4 @@ namespace QuantConnect.Tests.Messaging
}
}
}
}
}