Add CalcSticker

This commit is contained in:
2025-04-16 11:51:23 -04:00
parent 587b79b57c
commit a88cdf262d

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();