From 531fd61575301dca5fea260253eb3edb490eace0 Mon Sep 17 00:00:00 2001 From: Sean Date: Tue, 8 Apr 2025 22:27:47 -0400 Subject: [PATCH] Additional changes for MGSH --- .../ModelHelper/MGSHMomentumHelper.cs | 24 +++++++++---------- .../MarketData/Models/runmgshmomentum.sh | 2 +- .../Generator/MGSHMomentum/MGSHBacktest.cs | 4 ++-- MarketData/MarketDataLib/MDTrace.cs | 14 +++++++++++ 4 files changed, 29 insertions(+), 15 deletions(-) diff --git a/MarketData/MarketData/ModelHelper/MGSHMomentumHelper.cs b/MarketData/MarketData/ModelHelper/MGSHMomentumHelper.cs index 94b4063..c972c5f 100755 --- a/MarketData/MarketData/ModelHelper/MGSHMomentumHelper.cs +++ b/MarketData/MarketData/ModelHelper/MGSHMomentumHelper.cs @@ -12,7 +12,7 @@ namespace MarketData { if(!commandArgs.Has("SESSIONFILE")) { - MDTrace.WriteLine(LogLevel.DEBUG,"Missing SESSIONFILE"); + MDTrace.WriteLine(LogLevel.DEBUG,ConsoleColor.Red,"Missing SESSIONFILE"); return; } MGSHMomentumBacktest momentumBacktest = new MGSHMomentumBacktest(); @@ -24,14 +24,14 @@ namespace MarketData DateGenerator dateGenerator = new DateGenerator(); if(!commandArgs.Has("SESSIONFILE,TRADEDATE")) { - MDTrace.WriteLine(LogLevel.DEBUG,"SESSIONFILE and TRADEDATE are required parameters."); + MDTrace.WriteLine(LogLevel.DEBUG,ConsoleColor.Red,"SESSIONFILE and TRADEDATE are required parameters."); return; } DateTime tradeDate = commandArgs.Get("TRADEDATE"); if(!dateGenerator.IsMarketOpen(tradeDate)) { - MDTrace.WriteLine(LogLevel.DEBUG,$"TRADEDATE {tradeDate.ToShortDateString()} is not a trading date."); + MDTrace.WriteLine(LogLevel.DEBUG,ConsoleColor.Red,$"TRADEDATE {tradeDate.ToShortDateString()} is not a trading date."); return; } @@ -41,7 +41,7 @@ namespace MarketData pathSessionFile = pathSessionFile.Trim(); if(!File.Exists(pathSessionFile)) { - MDTrace.WriteLine(LogLevel.DEBUG,$"The specified file '{pathSessionFile}' does not exist."); + MDTrace.WriteLine(LogLevel.DEBUG,ConsoleColor.Red,$"The specified file '{pathSessionFile}' does not exist."); return; } @@ -49,7 +49,7 @@ namespace MarketData if(!dateGenerator.IsMarketOpen(tradeDate)) { - Console.WriteLine(String.Format("The market is closed today, please confirm Y/N:{0}?",tradeDate.ToShortDateString())); + MDTrace.WriteLine(LogLevel.DEBUG,ConsoleColor.Red,String.Format("The market is closed today, please confirm Y/N:{0}?",tradeDate.ToShortDateString())); String result=Console.ReadLine(); if(null==result||!(result.ToUpper().Equals("Y")||result.ToUpper().Equals("YES")))return; } @@ -62,10 +62,10 @@ namespace MarketData MGSHConfiguration mgParams=new MGSHConfiguration(); if (!commandArgs.Has("STARTDATE,MAXPOSITIONS,INITIALCASH,HOLDINGPERIOD")) { - if (!commandArgs.Has("STARTDATE")) MDTrace.WriteLine(LogLevel.DEBUG, "Missing STARTDATE"); - if (!commandArgs.Has("MAXPOSITIONS")) MDTrace.WriteLine(LogLevel.DEBUG, "Missing MAXPOSITIONS"); - if (!commandArgs.Has("INITIALCASH")) MDTrace.WriteLine(LogLevel.DEBUG, "Missing INITIALCASH"); - if (!commandArgs.Has("HOLDINGPERIOD")) MDTrace.WriteLine(LogLevel.DEBUG, "Missing HOLDINGPERIOD"); + if (!commandArgs.Has("STARTDATE")) MDTrace.WriteLine(LogLevel.DEBUG,ConsoleColor.Red, "Missing STARTDATE"); + if (!commandArgs.Has("MAXPOSITIONS")) MDTrace.WriteLine(LogLevel.DEBUG,ConsoleColor.Red, "Missing MAXPOSITIONS"); + if (!commandArgs.Has("INITIALCASH")) MDTrace.WriteLine(LogLevel.DEBUG,ConsoleColor.Red, "Missing INITIALCASH"); + if (!commandArgs.Has("HOLDINGPERIOD")) MDTrace.WriteLine(LogLevel.DEBUG,ConsoleColor.Red, "Missing HOLDINGPERIOD"); return; } mgParams.MaxPositions=commandArgs.Coalesce("MAXPOSITIONS"); @@ -141,18 +141,18 @@ namespace MarketData DateGenerator dateGenerator = new DateGenerator(); if(!dateGenerator.IsMarketOpen(startDate)) { - MDTrace.WriteLine(LogLevel.DEBUG,$"STARTDATE {startDate.ToShortDateString()} is not a trading date."); + MDTrace.WriteLine(LogLevel.DEBUG,ConsoleColor.Red,$"STARTDATE {startDate.ToShortDateString()} is not a trading date."); return; } if(!dateGenerator.IsMarketOpen(endDate)) { - MDTrace.WriteLine(LogLevel.DEBUG,$"ENDDATE {endDate.ToShortDateString()} is not a trading date."); + MDTrace.WriteLine(LogLevel.DEBUG,ConsoleColor.Red,$"ENDDATE {endDate.ToShortDateString()} is not a trading date."); return; } if(!commandArgs.Has("SESSIONFILE")) { - MDTrace.WriteLine(LogLevel.DEBUG,$"SESSIONFILE is a required parameter."); + MDTrace.WriteLine(LogLevel.DEBUG,ConsoleColor.Red,$"SESSIONFILE is a required parameter."); return; } diff --git a/MarketData/MarketData/Models/runmgshmomentum.sh b/MarketData/MarketData/Models/runmgshmomentum.sh index d2d6f08..4ef3002 100755 --- a/MarketData/MarketData/Models/runmgshmomentum.sh +++ b/MarketData/MarketData/Models/runmgshmomentum.sh @@ -1,5 +1,5 @@ #!/bin/bash -echo "THIS IS THE PRDUCTION FILE FOR MGSHMOMENTUM" +echo "THIS IS THE PRODUCTION FILE FOR MGSHMOMENTUM" echo "THIS MODEL STARTS TRADING 03/31/2025" echo "RUNMGSHMOMENTUM MODE{DAILY|MONTHLY} TRADEDATE" diff --git a/MarketData/MarketDataLib/Generator/MGSHMomentum/MGSHBacktest.cs b/MarketData/MarketDataLib/Generator/MGSHMomentum/MGSHBacktest.cs index ad02639..c281b05 100755 --- a/MarketData/MarketDataLib/Generator/MGSHMomentum/MGSHBacktest.cs +++ b/MarketData/MarketDataLib/Generator/MGSHMomentum/MGSHBacktest.cs @@ -536,8 +536,8 @@ namespace MarketData.Generator.MGSHMomentum AnalysisDate=analysisDate; if(startDate != TradeDate) - { - MDTrace.WriteLine(LogLevel.DEBUG,$"Unexpectd StartDate. Start Date:{startDate.ToShortDateString()} Trade Date:{TradeDate.ToShortDateString()}"); + { + MDTrace.WriteLine(LogLevel.DEBUG,ConsoleColor.Red,$"Unexpectd StartDate. Start Date:{startDate.ToShortDateString()} Trade Date:{TradeDate.ToShortDateString()}"); return new MGSHBacktestResult(false, CashBalance); } diff --git a/MarketData/MarketDataLib/MDTrace.cs b/MarketData/MarketDataLib/MDTrace.cs index 30e9236..81e25f8 100755 --- a/MarketData/MarketDataLib/MDTrace.cs +++ b/MarketData/MarketDataLib/MDTrace.cs @@ -72,6 +72,20 @@ namespace MarketData Console.WriteLine(message); Flush(); } + +/// WriteLine - Writes a line of text to trace log. +/// string content of message to write. +/// void + public static void WriteLine(LogLevel logLevel,ConsoleColor consoleColor,string message) + { + if(MDTrace.logLevelIndent - set trace log indentation. /// void public static void Indent()