Fix AnalysisDate when Editing/Closing Positions
This commit is contained in:
@@ -11,6 +11,9 @@ using MarketData.Cache;
|
|||||||
using MarketData.Generator;
|
using MarketData.Generator;
|
||||||
using MarketData.ModelHelper;
|
using MarketData.ModelHelper;
|
||||||
using MarketData.Numerical;
|
using MarketData.Numerical;
|
||||||
|
using MarketData.Generator.Momentum;
|
||||||
|
using MarketData.Generator.MGSHMomentum;
|
||||||
|
using MarketData.Generator.CMMomentum;
|
||||||
|
|
||||||
namespace MarketData.Services
|
namespace MarketData.Services
|
||||||
{
|
{
|
||||||
@@ -100,6 +103,17 @@ namespace MarketData.Services
|
|||||||
tasks.Add("ECHO",TaskEcho);
|
tasks.Add("ECHO",TaskEcho);
|
||||||
GlobalConfig.Instance.Configuration = configuration; // This call sets up configuration stuff so it needs to be first.
|
GlobalConfig.Instance.Configuration = configuration; // This call sets up configuration stuff so it needs to be first.
|
||||||
|
|
||||||
|
String pathSourceFile = "/home/pi/ARM64/MarketData/MarketData/Models/CM20191031.TXT";
|
||||||
|
String pathDstFile = "/home/pi/Boneyard/MG20180131.TXT";
|
||||||
|
MomentumBacktest backtest = new MomentumBacktest();
|
||||||
|
backtest.EditPosition("PSO", DateTime.Parse("4/30/2025"), 1.00, pathDstFile);
|
||||||
|
|
||||||
|
// CMMomentumBacktest backtest = new CMMomentumBacktest();
|
||||||
|
// backtest.EditPosition("IEFA", DateTime.Parse("4/30/2025"), 1.00, pathDstFile);
|
||||||
|
// MGSessionParams sessionParams = MGSessionManager.RestoreSession(pathSourceFile);
|
||||||
|
// MGSessionManager.SaveSession(sessionParams, pathDstFile);
|
||||||
|
|
||||||
|
|
||||||
if (args.Length < 1 || String.IsNullOrEmpty(args[0]))
|
if (args.Length < 1 || String.IsNullOrEmpty(args[0]))
|
||||||
{
|
{
|
||||||
DisplayUsage();
|
DisplayUsage();
|
||||||
|
|||||||
@@ -743,9 +743,10 @@ namespace MarketData.Generator.CMMomentum
|
|||||||
|
|
||||||
public void SaveSession()
|
public void SaveSession()
|
||||||
{
|
{
|
||||||
|
DateGenerator dateGenerator = new DateGenerator();
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Saving session to '{0}'", PathSessionFileName));
|
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Saving session to '{0}'", PathSessionFileName));
|
||||||
CMSessionParams sessionParams = new CMSessionParams();
|
CMSessionParams sessionParams = new CMSessionParams();
|
||||||
CMSessionManager sessionManager = new CMSessionManager();
|
if (Utility.IsEpoch(AnalysisDate)) AnalysisDate = dateGenerator.GetPrevBusinessDay(Today());
|
||||||
Parameters.TradeDate = TradeDate;
|
Parameters.TradeDate = TradeDate;
|
||||||
Parameters.AnalysisDate = AnalysisDate;
|
Parameters.AnalysisDate = AnalysisDate;
|
||||||
sessionParams.LastUpdated = Today();
|
sessionParams.LastUpdated = Today();
|
||||||
@@ -758,16 +759,15 @@ namespace MarketData.Generator.CMMomentum
|
|||||||
sessionParams.Cycle = Cycle;
|
sessionParams.Cycle = Cycle;
|
||||||
sessionParams.CashBalance = CashBalance;
|
sessionParams.CashBalance = CashBalance;
|
||||||
sessionParams.NonTradeableCash = NonTradeableCash;
|
sessionParams.NonTradeableCash = NonTradeableCash;
|
||||||
sessionManager.SaveSession(sessionParams, PathSessionFileName);
|
CMSessionManager.SaveSession(sessionParams, PathSessionFileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool BackupSession()
|
public bool BackupSession()
|
||||||
{
|
{
|
||||||
String[] parts=PathSessionFileName.Split('.');
|
String[] parts = PathSessionFileName.Split('.');
|
||||||
String backupFileName=parts[0]+"_"+Utility.DateTimeToStringYYYYMMDDMMSSTT(DateTime.Now)+".bak";
|
String backupFileName = parts[0] + "_" + Utility.DateTimeToStringYYYYMMDDMMSSTT(DateTime.Now) + ".bak";
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Saving session to '{0}'",backupFileName));
|
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Saving session to '{0}'", backupFileName));
|
||||||
CMSessionParams sessionParams = new CMSessionParams();
|
CMSessionParams sessionParams = new CMSessionParams();
|
||||||
CMSessionManager sessionManager = new CMSessionManager();
|
|
||||||
sessionParams.LastUpdated = Today();
|
sessionParams.LastUpdated = Today();
|
||||||
sessionParams.TradeDate = TradeDate;
|
sessionParams.TradeDate = TradeDate;
|
||||||
sessionParams.StartDate = StartDate;
|
sessionParams.StartDate = StartDate;
|
||||||
@@ -778,7 +778,7 @@ namespace MarketData.Generator.CMMomentum
|
|||||||
sessionParams.Cycle = Cycle;
|
sessionParams.Cycle = Cycle;
|
||||||
sessionParams.CashBalance = CashBalance;
|
sessionParams.CashBalance = CashBalance;
|
||||||
sessionParams.NonTradeableCash = NonTradeableCash;
|
sessionParams.NonTradeableCash = NonTradeableCash;
|
||||||
return sessionManager.SaveSession(sessionParams, backupFileName);
|
return CMSessionManager.SaveSession(sessionParams, backupFileName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,11 +29,13 @@ namespace MarketData.Generator.CMMomentum
|
|||||||
public class CMSessionManager
|
public class CMSessionManager
|
||||||
{
|
{
|
||||||
private static String SIGNATURE="CMSESSIONv1.00";
|
private static String SIGNATURE="CMSESSIONv1.00";
|
||||||
public bool SaveSession(CMSessionParams sessionParams, String pathSessionFile)
|
public static bool SaveSession(CMSessionParams sessionParams, String pathSessionFile)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
DateGenerator dateGenerator = new DateGenerator();
|
||||||
if (null == pathSessionFile) return false;
|
if (null == pathSessionFile) return false;
|
||||||
|
if (Utility.IsEpoch(sessionParams.AnalysisDate)) sessionParams.AnalysisDate = dateGenerator.GetPrevBusinessDay(DateTime.Now);
|
||||||
pathSessionFile = GetSessionFileName(pathSessionFile);
|
pathSessionFile = GetSessionFileName(pathSessionFile);
|
||||||
FileStream outStream = new FileStream(pathSessionFile, FileMode.Create);
|
FileStream outStream = new FileStream(pathSessionFile, FileMode.Create);
|
||||||
StreamWriter streamWriter = new StreamWriter(outStream);
|
StreamWriter streamWriter = new StreamWriter(outStream);
|
||||||
|
|||||||
@@ -680,40 +680,42 @@ namespace MarketData.Generator.Momentum
|
|||||||
}
|
}
|
||||||
public void SaveSession()
|
public void SaveSession()
|
||||||
{
|
{
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Saving session to '{0}'",PathSessionFileName));
|
DateGenerator dateGenerator = new DateGenerator();
|
||||||
MGSessionParams sessionParams=new MGSessionParams();
|
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Saving session to '{0}'", PathSessionFileName));
|
||||||
MGSessionManager sessionManager=new MGSessionManager();
|
MGSessionParams sessionParams = new MGSessionParams();
|
||||||
sessionParams.LastUpdated=Today();
|
if (Utility.IsEpoch(AnalysisDate)) AnalysisDate = dateGenerator.GetPrevBusinessDay(Today());
|
||||||
sessionParams.TradeDate=TradeDate;
|
sessionParams.LastUpdated = Today();
|
||||||
sessionParams.StartDate=StartDate;
|
sessionParams.TradeDate = TradeDate;
|
||||||
sessionParams.AnalysisDate=AnalysisDate;
|
sessionParams.StartDate = StartDate;
|
||||||
sessionParams.Configuration=Configuration;
|
sessionParams.AnalysisDate = AnalysisDate;
|
||||||
sessionParams.ActivePositions=ActivePositions;
|
sessionParams.Configuration = Configuration;
|
||||||
sessionParams.AllPositions=AllPositions;
|
sessionParams.ActivePositions = ActivePositions;
|
||||||
sessionParams.Cycle=Cycle;
|
sessionParams.AllPositions = AllPositions;
|
||||||
sessionParams.CashBalance=CashBalance;
|
sessionParams.Cycle = Cycle;
|
||||||
sessionParams.NonTradeableCash=NonTradeableCash;
|
sessionParams.CashBalance = CashBalance;
|
||||||
sessionManager.SaveSession(sessionParams,PathSessionFileName);
|
sessionParams.NonTradeableCash = NonTradeableCash;
|
||||||
|
MGSessionManager.SaveSession(sessionParams,PathSessionFileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool BackupSession()
|
public bool BackupSession()
|
||||||
{
|
{
|
||||||
String[] parts=PathSessionFileName.Split('.');
|
DateGenerator dateGenerator = new DateGenerator();
|
||||||
String backupFileName=parts[0]+"_"+Utility.DateTimeToStringYYYYMMDDMMSSTT(DateTime.Now)+".bak";
|
String[] parts = PathSessionFileName.Split('.');
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Saving session to '{0}'",backupFileName));
|
String backupFileName = parts[0] + "_" + Utility.DateTimeToStringYYYYMMDDMMSSTT(DateTime.Now) + ".bak";
|
||||||
MGSessionParams sessionParams=new MGSessionParams();
|
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Saving session to '{0}'", backupFileName));
|
||||||
MGSessionManager sessionManager=new MGSessionManager();
|
MGSessionParams sessionParams = new MGSessionParams();
|
||||||
sessionParams.LastUpdated=Today();
|
if (Utility.IsEpoch(AnalysisDate)) AnalysisDate = dateGenerator.GetPrevBusinessDay(Today());
|
||||||
sessionParams.TradeDate=TradeDate;
|
sessionParams.LastUpdated = Today();
|
||||||
sessionParams.StartDate=StartDate;
|
sessionParams.TradeDate = TradeDate;
|
||||||
sessionParams.AnalysisDate=AnalysisDate;
|
sessionParams.StartDate = StartDate;
|
||||||
sessionParams.Configuration=Configuration;
|
sessionParams.AnalysisDate = AnalysisDate;
|
||||||
sessionParams.ActivePositions=ActivePositions;
|
sessionParams.Configuration = Configuration;
|
||||||
sessionParams.AllPositions=AllPositions;
|
sessionParams.ActivePositions = ActivePositions;
|
||||||
sessionParams.Cycle=Cycle;
|
sessionParams.AllPositions = AllPositions;
|
||||||
sessionParams.CashBalance=CashBalance;
|
sessionParams.Cycle = Cycle;
|
||||||
sessionParams.NonTradeableCash=NonTradeableCash;
|
sessionParams.CashBalance = CashBalance;
|
||||||
return sessionManager.SaveSession(sessionParams,backupFileName);
|
sessionParams.NonTradeableCash = NonTradeableCash;
|
||||||
|
return MGSessionManager.SaveSession(sessionParams,backupFileName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ namespace MarketData.Generator.Momentum
|
|||||||
// *****************************************************************************
|
// *****************************************************************************
|
||||||
public class MGSessionManager
|
public class MGSessionManager
|
||||||
{
|
{
|
||||||
public bool SaveSession(MGSessionParams sessionParams,String pathSessionFile)
|
public static bool SaveSession(MGSessionParams sessionParams,String pathSessionFile)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user