/* * 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; using System.Collections.Generic; using Newtonsoft.Json; using QuantConnect.Optimizer.Objectives; using QuantConnect.Optimizer.Parameters; using QuantConnect.Optimizer.Strategies; using QuantConnect.Packets; using QuantConnect.Util; namespace QuantConnect.Optimizer { /// /// Provide a packet type containing information on the optimization compute job. /// public class OptimizationNodePacket : Packet { /// /// The optimization name /// public string Name { get; set; } /// /// The creation time /// [JsonConverter(typeof(DateTimeJsonConverter), DateFormat.UI)] public DateTime Created { get; set; } /// /// User Id placing request /// public int UserId { get; set; } /// User API Token public string UserToken { get; set; } = string.Empty; /// /// Project Id of the request /// public int ProjectId { get; set; } /// /// Unique compile id of this optimization /// public string CompileId { get; set; } = string.Empty; /// /// The unique optimization Id of the request /// public string OptimizationId { get; set; } = string.Empty; /// /// Organization Id of the request /// public string OrganizationId { get; set; } = string.Empty; /// /// Limit for the amount of concurrent backtests being run /// public int MaximumConcurrentBacktests { get; set; } /// /// Optimization strategy name /// public string OptimizationStrategy { get; set; } = "QuantConnect.Optimizer.Strategies.GridSearchOptimizationStrategy"; /// /// Objective settings /// public Target Criterion { get; set; } /// /// Optimization constraints /// public IReadOnlyList Constraints { get; set; } /// /// The user optimization parameters /// public HashSet OptimizationParameters { get; set; } /// /// The user optimization parameters /// [JsonProperty(TypeNameHandling = TypeNameHandling.All)] public OptimizationStrategySettings OptimizationStrategySettings { get; set; } /// /// Backtest out of sample maximum end date /// public DateTime? OutOfSampleMaxEndDate { get; set; } /// /// The backtest out of sample day count /// public int OutOfSampleDays { get; set; } /// /// Creates a new instance /// public OptimizationNodePacket() : this(PacketType.OptimizationNode) { } /// /// Creates a new instance /// protected OptimizationNodePacket(PacketType packetType) : base(packetType) { } } }