/* * 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.Util; namespace QuantConnect.Api { /// /// Optimization response packet from the QuantConnect.com API. /// public class Optimization : BaseOptimization { /// /// Snapshot ID of this optimization /// public int? SnapshotId { get; set; } /// /// Statistic to be optimized /// public string OptimizationTarget { get; set; } /// /// List with grid charts representing the grid layout /// public List GridLayout { get; set; } /// /// Runtime banner/updating statistics for the optimization /// [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] public IDictionary RuntimeStatistics { get; set; } /// /// Optimization constraints /// [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] public IReadOnlyList Constraints { get; set; } /// /// Number of parallel nodes for optimization /// public int ParallelNodes { get; set; } /// /// Optimization constraints /// [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] public IDictionary Backtests { get; set; } /// /// Optimization strategy /// public string Strategy { get; set; } /// /// Optimization requested date and time /// [JsonConverter(typeof(DateTimeJsonConverter), DateFormat.UI)] public DateTime Requested { get; set; } } /// /// Wrapper class for Optimizations/Read endpoint JSON response /// public class OptimizationResponseWrapper : RestResponse { /// /// Optimization object /// public Optimization Optimization { get; set; } } /// /// Collection container for a list of summarized optimizations for a project /// public class OptimizationList : RestResponse { /// /// Collection of summarized optimization objects /// public List Optimizations { get; set; } /// /// The optimization count /// public int Count => Optimizations?.Count ?? 0; } }