Fix AnalysisDate getting set to Epoch when editing or closing positions.
This commit is contained in:
@@ -746,9 +746,10 @@ namespace MarketData.Generator.CMMomentum
|
||||
|
||||
public void SaveSession()
|
||||
{
|
||||
DateGenerator dateGenerator = new DateGenerator();
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Saving session to '{0}'", PathSessionFileName));
|
||||
CMSessionParams sessionParams = new CMSessionParams();
|
||||
CMSessionManager sessionManager = new CMSessionManager();
|
||||
if (Utility.IsEpoch(AnalysisDate)) AnalysisDate = dateGenerator.GetPrevBusinessDay(Today());
|
||||
Parameters.TradeDate = TradeDate;
|
||||
Parameters.AnalysisDate = AnalysisDate;
|
||||
sessionParams.LastUpdated = Today();
|
||||
@@ -761,16 +762,15 @@ namespace MarketData.Generator.CMMomentum
|
||||
sessionParams.Cycle = Cycle;
|
||||
sessionParams.CashBalance = CashBalance;
|
||||
sessionParams.NonTradeableCash = NonTradeableCash;
|
||||
sessionManager.SaveSession(sessionParams, PathSessionFileName);
|
||||
CMSessionManager.SaveSession(sessionParams, PathSessionFileName);
|
||||
}
|
||||
|
||||
public bool BackupSession()
|
||||
{
|
||||
String[] parts=PathSessionFileName.Split('.');
|
||||
String backupFileName=parts[0]+"_"+Utility.DateTimeToStringYYYYMMDDMMSSTT(DateTime.Now)+".bak";
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Saving session to '{0}'",backupFileName));
|
||||
String[] parts = PathSessionFileName.Split('.');
|
||||
String backupFileName = parts[0] + "_" + Utility.DateTimeToStringYYYYMMDDMMSSTT(DateTime.Now) + ".bak";
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Saving session to '{0}'", backupFileName));
|
||||
CMSessionParams sessionParams = new CMSessionParams();
|
||||
CMSessionManager sessionManager = new CMSessionManager();
|
||||
sessionParams.LastUpdated = Today();
|
||||
sessionParams.TradeDate = TradeDate;
|
||||
sessionParams.StartDate = StartDate;
|
||||
@@ -781,7 +781,7 @@ namespace MarketData.Generator.CMMomentum
|
||||
sessionParams.Cycle = Cycle;
|
||||
sessionParams.CashBalance = CashBalance;
|
||||
sessionParams.NonTradeableCash = NonTradeableCash;
|
||||
return sessionManager.SaveSession(sessionParams, backupFileName);
|
||||
return CMSessionManager.SaveSession(sessionParams, backupFileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,11 +36,13 @@ namespace MarketData.Generator.CMMomentum
|
||||
public class CMSessionManager
|
||||
{
|
||||
private static String SIGNATURE="CMSESSIONv1.00";
|
||||
public bool SaveSession(CMSessionParams sessionParams, String pathSessionFile)
|
||||
public static bool SaveSession(CMSessionParams sessionParams, String pathSessionFile)
|
||||
{
|
||||
try
|
||||
{
|
||||
DateGenerator dateGenerator = new DateGenerator();
|
||||
if (null == pathSessionFile) return false;
|
||||
if (Utility.IsEpoch(sessionParams.AnalysisDate)) sessionParams.AnalysisDate = dateGenerator.GetPrevBusinessDay(DateTime.Now);
|
||||
pathSessionFile = GetSessionFileName(pathSessionFile);
|
||||
FileStream outStream = new FileStream(pathSessionFile, FileMode.Create);
|
||||
StreamWriter streamWriter = new StreamWriter(outStream);
|
||||
|
||||
@@ -336,8 +336,8 @@ namespace MarketData.Generator.Momentum
|
||||
|
||||
Cycle=0;
|
||||
if(AnalysisDate.Date>Today().Date)return backTestResult;
|
||||
if(Utility.IsEpoch(AnalysisDate))AnalysisDate=dateGenerator.GetPrevBusinessDay(Today());
|
||||
TradeDate=dateGenerator.GetCurrentMonthEnd(StartDate);
|
||||
if(Utility.IsEpoch(AnalysisDate))AnalysisDate=dateGenerator.GetPrevBusinessDay(Today()); // Ensure AnalysisDate is not a weekend or holiday
|
||||
TradeDate =dateGenerator.GetCurrentMonthEnd(StartDate);
|
||||
if(TradeDate>AnalysisDate)
|
||||
{
|
||||
int startMonth=StartDate.Month;
|
||||
@@ -665,7 +665,7 @@ namespace MarketData.Generator.Momentum
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Restoring session from '{0}'",PathSessionFileName));
|
||||
MGSessionParams sessionParams=MGSessionManager.RestoreSession(PathSessionFileName);
|
||||
TradeDate=sessionParams.TradeDate;
|
||||
if(TradeDate.Date<AnalysisDate.Date)TradeDate=AnalysisDate;
|
||||
if(TradeDate.Date<AnalysisDate.Date)TradeDate=AnalysisDate; // AnalysisDate will not fall on a weekend or holiday
|
||||
StartDate=sessionParams.StartDate;
|
||||
Configuration=sessionParams.Configuration;
|
||||
ActivePositions=sessionParams.ActivePositions;
|
||||
@@ -683,40 +683,42 @@ namespace MarketData.Generator.Momentum
|
||||
}
|
||||
public void SaveSession()
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Saving session to '{0}'",PathSessionFileName));
|
||||
MGSessionParams sessionParams=new MGSessionParams();
|
||||
MGSessionManager sessionManager=new MGSessionManager();
|
||||
sessionParams.LastUpdated=Today();
|
||||
sessionParams.TradeDate=TradeDate;
|
||||
sessionParams.StartDate=StartDate;
|
||||
sessionParams.AnalysisDate=AnalysisDate;
|
||||
sessionParams.Configuration=Configuration;
|
||||
sessionParams.ActivePositions=ActivePositions;
|
||||
sessionParams.AllPositions=AllPositions;
|
||||
sessionParams.Cycle=Cycle;
|
||||
sessionParams.CashBalance=CashBalance;
|
||||
sessionParams.NonTradeableCash=NonTradeableCash;
|
||||
sessionManager.SaveSession(sessionParams,PathSessionFileName);
|
||||
DateGenerator dateGenerator = new DateGenerator();
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Saving session to '{0}'", PathSessionFileName));
|
||||
MGSessionParams sessionParams = new MGSessionParams();
|
||||
if (Utility.IsEpoch(AnalysisDate)) AnalysisDate = dateGenerator.GetPrevBusinessDay(Today());
|
||||
sessionParams.LastUpdated = Today();
|
||||
sessionParams.TradeDate = TradeDate;
|
||||
sessionParams.StartDate = StartDate;
|
||||
sessionParams.AnalysisDate = AnalysisDate;
|
||||
sessionParams.Configuration = Configuration;
|
||||
sessionParams.ActivePositions = ActivePositions;
|
||||
sessionParams.AllPositions = AllPositions;
|
||||
sessionParams.Cycle = Cycle;
|
||||
sessionParams.CashBalance = CashBalance;
|
||||
sessionParams.NonTradeableCash = NonTradeableCash;
|
||||
MGSessionManager.SaveSession(sessionParams,PathSessionFileName);
|
||||
}
|
||||
|
||||
public bool BackupSession()
|
||||
{
|
||||
String[] parts=PathSessionFileName.Split('.');
|
||||
String backupFileName=parts[0]+"_"+Utility.DateTimeToStringYYYYMMDDMMSSTT(DateTime.Now)+".bak";
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Saving session to '{0}'",backupFileName));
|
||||
MGSessionParams sessionParams=new MGSessionParams();
|
||||
MGSessionManager sessionManager=new MGSessionManager();
|
||||
sessionParams.LastUpdated=Today();
|
||||
sessionParams.TradeDate=TradeDate;
|
||||
sessionParams.StartDate=StartDate;
|
||||
sessionParams.AnalysisDate=AnalysisDate;
|
||||
sessionParams.Configuration=Configuration;
|
||||
sessionParams.ActivePositions=ActivePositions;
|
||||
sessionParams.AllPositions=AllPositions;
|
||||
sessionParams.Cycle=Cycle;
|
||||
sessionParams.CashBalance=CashBalance;
|
||||
sessionParams.NonTradeableCash=NonTradeableCash;
|
||||
return sessionManager.SaveSession(sessionParams,backupFileName);
|
||||
DateGenerator dateGenerator = new DateGenerator();
|
||||
String[] parts = PathSessionFileName.Split('.');
|
||||
String backupFileName = parts[0] + "_" + Utility.DateTimeToStringYYYYMMDDMMSSTT(DateTime.Now) + ".bak";
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Saving session to '{0}'", backupFileName));
|
||||
MGSessionParams sessionParams = new MGSessionParams();
|
||||
if (Utility.IsEpoch(AnalysisDate)) AnalysisDate = dateGenerator.GetPrevBusinessDay(Today());
|
||||
sessionParams.LastUpdated = Today();
|
||||
sessionParams.TradeDate = TradeDate;
|
||||
sessionParams.StartDate = StartDate;
|
||||
sessionParams.AnalysisDate = AnalysisDate;
|
||||
sessionParams.Configuration = Configuration;
|
||||
sessionParams.ActivePositions = ActivePositions;
|
||||
sessionParams.AllPositions = AllPositions;
|
||||
sessionParams.Cycle = Cycle;
|
||||
sessionParams.CashBalance = CashBalance;
|
||||
sessionParams.NonTradeableCash = NonTradeableCash;
|
||||
return MGSessionManager.SaveSession(sessionParams,backupFileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace MarketData.Generator.Momentum
|
||||
// *****************************************************************************
|
||||
public class MGSessionManager
|
||||
{
|
||||
public bool SaveSession(MGSessionParams sessionParams,String pathSessionFile)
|
||||
public static bool SaveSession(MGSessionParams sessionParams,String pathSessionFile)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user