/* * 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. */ using System.Collections.Generic; using Newtonsoft.Json; using QuantConnect.Optimizer.Objectives; using QuantConnect.Optimizer.Parameters; using QuantConnect.Optimizer.Strategies; using QuantConnect.Packets; namespace QuantConnect.Optimizer { /// /// Provide a packet type containing information on the optimization compute job. /// public class OptimizationNodePacket : Packet { /// /// User Id placing request /// [JsonProperty(PropertyName = "userId")] public int UserId; /// User API Token [JsonProperty(PropertyName = "userToken")] public string UserToken = ""; /// /// Project Id of the request /// [JsonProperty(PropertyName = "projectId")] public int ProjectId; /// /// Unique compile id of this optimization /// [JsonProperty(PropertyName = "compileId")] public string CompileId = ""; /// /// The unique optimization Id of the request /// [JsonProperty(PropertyName = "optimizationId")] public string OptimizationId = ""; /// /// Organization Id of the request /// [JsonProperty(PropertyName = "organizationId")] public string OrganizationId = ""; /// /// Limit for the amount of concurrent backtests being run /// [JsonProperty(PropertyName = "maximumConcurrentBacktests")] public int MaximumConcurrentBacktests; /// /// Optimization strategy name /// [JsonProperty(PropertyName = "optimizationStrategy")] public string OptimizationStrategy = "QuantConnect.Optimizer.Strategies.GridSearchOptimizationStrategy"; /// /// Objective settings /// [JsonProperty(PropertyName = "criterion")] public Target Criterion; /// /// Optimization constraints /// [JsonProperty(PropertyName = "constraints")] public IReadOnlyList Constraints; /// /// The user optimization parameters /// [JsonProperty(PropertyName = "optimizationParameters")] public HashSet OptimizationParameters; /// /// The user optimization parameters /// [JsonProperty(PropertyName = "optimizationStrategySettings", TypeNameHandling = TypeNameHandling.All)] public OptimizationStrategySettings OptimizationStrategySettings; /// /// Creates a new instance /// public OptimizationNodePacket() : this(PacketType.OptimizationNode) { } /// /// Creates a new instance /// protected OptimizationNodePacket(PacketType packetType) : base(packetType) { } } /// /// The different optimization status /// public enum OptimizationStatus { /// /// Just created and not running optimization /// New, /// /// We failed or we were aborted /// Aborted, /// /// We are running /// Running, /// /// We ended /// Ended } }