Merge remote-tracking branch 'origin/MKDT_0003'

This commit is contained in:
2025-04-16 11:58:18 -04:00
2 changed files with 57 additions and 2 deletions

View File

@@ -8,6 +8,7 @@ using MarketData.MarketDataModel;
using MarketData.Helper;
using MarketData.Integration;
using MarketData.Cache;
using MarketData.Generator;
namespace MarketData.Services
{
@@ -36,12 +37,13 @@ namespace MarketData.Services
MDTrace.WriteLine(LogLevel.DEBUG,"UPDATEFINANCIALSTATEMENTS");
MDTrace.WriteLine(LogLevel.DEBUG,"UPDATEFUNDAMENTALS");
MDTrace.WriteLine(LogLevel.DEBUG,"UPDATEHISTORICAL");
MDTrace.WriteLine(LogLevel.DEBUG,"ECHO {param1} {param2} {param(n)");
MDTrace.WriteLine(LogLevel.DEBUG,"CALCSTICKER");
MDTrace.WriteLine(LogLevel.DEBUG,"MGSHSESSION /SESSIONFILE:");
MDTrace.WriteLine(LogLevel.DEBUG,"MGSHRUNBACKTEST /USEHEDGING: /HEDGEINITIALCASH: /USESTOPLIMITS: /KEEPSLOTPOSITIONS: /STARTDATE: /MAXPOSITIONS: /INITIALCASH: /HOLDINGPERIOD: /{ENDDATE}: /SESSIONFILE: ");
MDTrace.WriteLine(LogLevel.DEBUG,"MGSHRUNDAILY /SESSIONFILE: /TRADEDATE:");
MDTrace.WriteLine(LogLevel.DEBUG,"RUNCMTREND /MODE:DAILY|BACKTEST|RUNTRENDTEMPLATE|ENTRYTEST /SYMBOL:{for mode ANALYZE,ENTRYTEST} /TRADEDATE:{for mode DAILY,RUNTRENDTEMPLATE) /STARTDATE:(for mode BACKTEST,ENTRYTEST) /ENDDATE:(for mode BACKTEST) /INITIALCASH: /SESSIONFILE: /MAXOPENPOSITIONS: /MAXDAILYPOSITIONS: Runs Mark Minervini trend");
MDTrace.WriteLine(LogLevel.DEBUG,"CMTSESSION /SESSIONFILE:{pathfilename} Runs Mark Minervini trend display session");
MDTrace.WriteLine(LogLevel.DEBUG,"ECHO {param1} {param2} {param(n)");
}
/// <summary>
@@ -69,6 +71,7 @@ namespace MarketData.Services
tasks.Add("UPDATEFINANCIALSTATEMENTS",TaskUpdateFinancialStatements);
tasks.Add("UPDATEFUNDAMENTALS",TaskUpdateFundamentals);
tasks.Add("UPDATEHISTORICAL",TaskUpdateHistorical);
tasks.Add("CALCSTICKER",TaskCalcSticker);
tasks.Add("MGSHSESSION",TaskMGSHSession);
tasks.Add("MGSHRUNBACKTEST",TaskMGSHRunBacktest);
tasks.Add("MGSHRUNDAILY",TaskMGSHRunDaily);
@@ -129,6 +132,11 @@ namespace MarketData.Services
// **********************************************************************************************************************************************************
// ********************************************************* T A S K S *************************************************************************************
// **********************************************************************************************************************************************************
public async Task TaskCalcSticker(CommandArgs commandArgs)
{
CalcSticker();
}
public async Task TaskUpdateHistorical(CommandArgs commandArgs)
{
UpdateHistorical();
@@ -1058,6 +1066,36 @@ namespace MarketData.Services
}
}
public static void CalcSticker()
{
try
{
MDTrace.WriteLine(LogLevel.DEBUG,"Generating valuations..");
Valuations valuations = ValuationGenerator.GenerateValuations(new ValuationGenerator.OnItemCompleteHandler
((valuation) =>
{
MDTrace.WriteLine(LogLevel.DEBUG,$"Completed '{valuation?.Symbol}' '{valuation?.Company}'",3);
return true;
}
),
new ValuationGenerator.OnErrorItemHandler((symbol,message)=>
{
MDTrace.WriteLine(LogLevel.DEBUG,$"Error generating valuation for {symbol} {message}",3);
}
));
MDTrace.WriteLine(LogLevel.DEBUG,"Updating database.");
if (!ValuationDA.AddValuations(valuations))
{
MDTrace.WriteLine(LogLevel.DEBUG,"Error adding valuations to database");
}
MDTrace.WriteLine(LogLevel.DEBUG,"Done.");
}
catch (Exception exception)
{
MDTrace.WriteLine(LogLevel.DEBUG,exception.ToString());
}
}
public static void UpdateHistorical()
{
HistoricalMarketDataHelper historicalMarketDataHelper=new HistoricalMarketDataHelper();

View File

@@ -106,7 +106,7 @@ CRON_DIR=/opt/MarketData/MarketData
0 19 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEDAILY2 /DATE:$(date -d"-0 days" +\%m-\%d-\%Y) > /dev/null 2>&1
Here is the latest crontab. Adding the monthly jobs to run on the 17th
DOTNET_ROOT=/opt/dotnet
CRON_DIR=/opt/MarketData/MarketData
@@ -118,3 +118,20 @@ CRON_DIR=/opt/MarketData/MarketData
0 0 17 * * cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEFINANCIALSTATEMENTS > /dev/null 2>&1
0 0 17 * * cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEFUNDAMENTALS > /dev/null 2>&1
0 0 17 * * cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEHISTORICAL > /dev/null 2>&1
Here is the official latest crontab. Adding the monthly jobs to run on the 17th
Notice that ther calcsticker job will run the day after the monthly update jobs.
If you move the processing date of the monthly update jobs then update calcsticker
to the following day. For example if monthly updates run on the 15th then schedule calcsticker to run on the 16th
DOTNET_ROOT=/opt/dotnet
CRON_DIR=/opt/MarketData/MarketData
*/15 6-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk LOADHEADLINESWATCHLIST /WATCHLIST:Valuations > /dev/null 2>&1
*/5 5-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk LOADPREMARKETDATA > /dev/null 2>&1
*/5 9-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEINTRADAYPRICING > /dev/null 2>&1
*/30 9-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATELATESTANALYSTRATINGS > /dev/null 2>&1
0 19 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEDAILY2 /DATE:$(date -d"-0 days" +\%m-\%d-\%Y) > /dev/null 2>&1
0 0 17 * * cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEFINANCIALSTATEMENTS > /dev/null 2>&1
0 0 17 * * cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEFUNDAMENTALS > /dev/null 2>&1
0 0 17 * * cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEHISTORICAL > /dev/null 2>&1
0 0 18 * * cd $CRON_DIR ; /opt/MarketData/MarketData/mk CALCSTICKER > /dev/null 2>&1