Skip to content

Commit

Permalink
Minor tweaks for optimization
Browse files Browse the repository at this point in the history
  • Loading branch information
Martin-Molinero committed Nov 13, 2024
1 parent 1b088de commit 8b3bfcd
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 9 deletions.
8 changes: 7 additions & 1 deletion Common/Api/BaseOptimization.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
using QuantConnect.Optimizer.Objectives;
using System.Collections.Generic;
using QuantConnect.Optimizer.Parameters;
using QuantConnect.Util;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;

namespace QuantConnect.Api
{
Expand All @@ -45,6 +48,7 @@ public class BaseOptimization : RestResponse
/// <summary>
/// Status of the optimization
/// </summary>
[JsonConverter(typeof(StringEnumConverter), converterParameters: typeof(CamelCaseNamingStrategy))]
public OptimizationStatus Status { get; set; }

/// <summary>
Expand All @@ -61,7 +65,8 @@ public class BaseOptimization : RestResponse
/// <summary>
/// End date of out of sample data
/// </summary>
public DateTime OutOfSampleMaxEndDate { get; set; }
[JsonConverter(typeof(DateTimeJsonConverter), DateFormat.UI)]
public DateTime? OutOfSampleMaxEndDate { get; set; }

/// <summary>
/// Parameters used in this optimization
Expand All @@ -82,6 +87,7 @@ public class OptimizationSummary: BaseOptimization
/// <summary>
/// Date when this optimization was created
/// </summary>
[JsonConverter(typeof(DateTimeJsonConverter), DateFormat.UI)]
public DateTime Created { get; set; }

/// <summary>
Expand Down
9 changes: 8 additions & 1 deletion Common/Api/Optimization.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
using System.Collections.Generic;
using Newtonsoft.Json;
using QuantConnect.Optimizer.Objectives;
using QuantConnect.Util;

namespace QuantConnect.Api
{
Expand Down Expand Up @@ -67,10 +68,11 @@ public class Optimization : BaseOptimization
/// Optimization strategy
/// </summary>
public string Strategy { get; set; }

/// <summary>
/// Optimization requested date and time
/// </summary>
[JsonConverter(typeof(DateTimeJsonConverter), DateFormat.UI)]
public DateTime Requested { get; set; }
}

Expand All @@ -94,5 +96,10 @@ public class OptimizationList : RestResponse
/// Collection of summarized optimization objects
/// </summary>
public List<OptimizationSummary> Optimizations { get; set; }

/// <summary>
/// The optimization count
/// </summary>
public int Count => Optimizations?.Count ?? 0;
}
}
6 changes: 6 additions & 0 deletions Common/Api/Project.cs
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,12 @@ public class GridChart
/// </summary>
[JsonProperty(PropertyName = "sort")]
public int Sort { get; set; }

/// <summary>
/// Optionally related definition
/// </summary>
[JsonProperty(PropertyName = "definition")]
public List<string> Definition { get; set; }
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ JsonSerializer serializer
)
{
JObject token = JObject.Load(reader);
var parameterName = token.GetValue("name", StringComparison.OrdinalIgnoreCase)?.Value<string>();
var parameterName = (token.GetValue("name", StringComparison.OrdinalIgnoreCase) ?? token.GetValue("key", StringComparison.OrdinalIgnoreCase))?.Value<string>();
if (string.IsNullOrEmpty(parameterName))
{
throw new ArgumentException(Messages.OptimizationParameterJsonConverter.OptimizationParameterNotSpecified);
Expand All @@ -70,11 +70,7 @@ JsonSerializer serializer
JToken minToken;
JToken maxToken;
OptimizationParameter optimizationParameter = null;
if (token.TryGetValue("value", StringComparison.OrdinalIgnoreCase, out value))
{
optimizationParameter = new StaticOptimizationParameter(parameterName, value.Value<string>());
}
else if (token.TryGetValue("min", StringComparison.OrdinalIgnoreCase, out minToken) &&
if (token.TryGetValue("min", StringComparison.OrdinalIgnoreCase, out minToken) &&
token.TryGetValue("max", StringComparison.OrdinalIgnoreCase, out maxToken))
{
var stepToken = token.GetValue("step", StringComparison.OrdinalIgnoreCase)?.Value<decimal>();
Expand Down Expand Up @@ -104,6 +100,10 @@ JsonSerializer serializer
maxToken.Value<decimal>());
}
}
else if(token.TryGetValue("value", StringComparison.OrdinalIgnoreCase, out value))
{
optimizationParameter = new StaticOptimizationParameter(parameterName, value.Value<string>());
}

if (optimizationParameter == null)
{
Expand Down
12 changes: 12 additions & 0 deletions Optimizer/OptimizationNodePacket.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
using QuantConnect.Optimizer.Parameters;
using QuantConnect.Optimizer.Strategies;
using QuantConnect.Packets;
using QuantConnect.Util;

namespace QuantConnect.Optimizer
{
Expand All @@ -28,6 +29,17 @@ namespace QuantConnect.Optimizer
/// </summary>
public class OptimizationNodePacket : Packet
{
/// <summary>
/// The optimization name
/// </summary>
public string Name { get; set; }

/// <summary>
/// The creation time
/// </summary>
[JsonConverter(typeof(DateTimeJsonConverter), DateFormat.UI)]
public DateTime Created { get; set; }

/// <summary>
/// User Id placing request
/// </summary>
Expand Down
1 change: 0 additions & 1 deletion Optimizer/Strategies/OptimizationStrategySettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
*/

using System;
using Newtonsoft.Json;

namespace QuantConnect.Optimizer.Strategies
{
Expand Down

0 comments on commit 8b3bfcd

Please sign in to comment.