Optimizations

This commit is contained in:
2025-03-31 15:40:02 -04:00
parent d169d481e7
commit 30c90cb56c
13 changed files with 213 additions and 171 deletions

View File

@@ -116,28 +116,6 @@ namespace MarketData.Generator.CMMomentum
{
if(null==sessionParams)return null;
MarketData.Generator.CMMomentum.Positions combinedPositions=sessionParams.GetCombinedPositions();
// Fix purchase date/sell date fall on weekend
//foreach(MarketData.Generator.CMMomentum.Position position in combinedPositions)
//{
// if(dateGenerator.IsWeekend(position.PurchaseDate))
// {
// while(true)
// {
// position.PurchaseDate=dateGenerator.GetPrevBusinessDay(position.PurchaseDate);
// if(!HolidayDA.IsMarketHoliday(position.PurchaseDate)) break;
// }
// }
// if(dateGenerator.IsWeekend(position.SellDate))
// {
// while(true)
// {
// position.SellDate=dateGenerator.GetNextBusinessDay(position.SellDate);
// if(!HolidayDA.IsMarketHoliday(position.SellDate)) break;
// }
// }
//}
// ********************************************************
DateTime minDate=combinedPositions.Min(x => x.PurchaseDate);
DateTime maxDate=PricingDA.GetLatestDate();
double prevGainLoss=double.NaN;
@@ -153,14 +131,14 @@ namespace MarketData.Generator.CMMomentum
double gainLossClosedPositions=0.00;
double exposure=0.00;
double marketValue=0.00;
if(HolidayDA.IsMarketHoliday(currentDate)) continue;
// if(HolidayDA.IsMarketHoliday(currentDate)) continue;
ModelPerformanceItem performanceItem=new ModelPerformanceItem();
foreach(MarketData.Generator.CMMomentum.Position openPosition in openPositions)
{
exposure+=openPosition.Shares*openPosition.PurchasePrice;
if(!LocalPriceCache.GetInstance().ContainsPrice(openPosition.Symbol,currentDate))
{
Prices prices=PricingDA.GetPricesForward(openPosition.Symbol,currentDate,90);
Prices prices=PricingDA.GetPricesForward(openPosition.Symbol,currentDate,PricingDA.ForwardLookingDays);
LocalPriceCache.GetInstance().Add(prices);
}
Price price=LocalPriceCache.GetInstance().GetPrice(openPosition.Symbol,currentDate);

View File

@@ -122,28 +122,6 @@ namespace MarketData.Generator.CMTrend
{
if(null==sessionParams) return null;
MarketData.Generator.CMTrend.Positions combinedPositions=sessionParams.GetCombinedPositions();
// Fix purchase date/sell date fall on weekend
//foreach(MarketData.Generator.CMTrend.Position position in combinedPositions)
//{
// if(dateGenerator.IsWeekend(position.PurchaseDate))
// {
// while(true)
// {
// position.PurchaseDate=dateGenerator.GetPrevBusinessDay(position.PurchaseDate);
// if(!HolidayDA.IsMarketHoliday(position.PurchaseDate)) break;
// }
// }
// if(dateGenerator.IsWeekend(position.SellDate))
// {
// while(true)
// {
// position.SellDate=dateGenerator.GetNextBusinessDay(position.SellDate);
// if(!HolidayDA.IsMarketHoliday(position.SellDate)) break;
// }
// }
//}
// ********************************************************
DateTime minDate=combinedPositions.Min(x => x.PurchaseDate);
DateTime maxDate=PricingDA.GetLatestDate();
double prevGainLoss=double.NaN;
@@ -159,14 +137,14 @@ namespace MarketData.Generator.CMTrend
double gainLossClosedPositions=0.00;
double exposure=0.00;
double marketValue=0.00;
if(HolidayDA.IsMarketHoliday(currentDate)) continue;
// if(HolidayDA.IsMarketHoliday(currentDate)) continue;
ModelPerformanceItem performanceItem=new ModelPerformanceItem();
foreach(MarketData.Generator.CMTrend.Position openPosition in openPositions)
{
exposure+=openPosition.Shares*openPosition.PurchasePrice;
if(!LocalPriceCache.GetInstance().ContainsPrice(openPosition.Symbol,currentDate))
{
Prices prices=PricingDA.GetPricesForward(openPosition.Symbol,currentDate,90);
Prices prices=PricingDA.GetPricesForward(openPosition.Symbol,currentDate,PricingDA.ForwardLookingDays);
LocalPriceCache.GetInstance().Add(prices);
}
Price price=LocalPriceCache.GetInstance().GetPrice(openPosition.Symbol,currentDate);

View File

@@ -6,7 +6,7 @@ using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Threading;
using System.Reflection;
using System.Runtime.Remoting.Messaging;
//using System.Runtime.Remoting.Messaging;
using System.Text;
using MarketData.MarketDataModel;
using MarketData.DataAccess;

View File

@@ -229,28 +229,6 @@ namespace MarketData.Generator.MGSHMomentum
{
if(null==sessionParams)return null;
MGSHPositions combinedPositions=sessionParams.GetCombinedPositions();
// Fix purchase date/sell date fall on weekend
//foreach(MGSHPosition position in combinedPositions)
//{
// if(dateGenerator.IsWeekend(position.PurchaseDate))
// {
// while(true)
// {
// position.PurchaseDate=dateGenerator.GetPrevBusinessDay(position.PurchaseDate);
// if(!HolidayDA.IsMarketHoliday(position.PurchaseDate)) break;
// }
// }
// if(dateGenerator.IsWeekend(position.SellDate))
// {
// while(true)
// {
// position.SellDate=dateGenerator.GetNextBusinessDay(position.SellDate);
// if(!HolidayDA.IsMarketHoliday(position.SellDate)) break;
// }
// }
//}
// ********************************************************
DateTime minDate=combinedPositions.Min(x => x.PurchaseDate);
DateTime maxDate=PricingDA.GetLatestDate();
double prevGainLoss=double.NaN;
@@ -266,14 +244,14 @@ namespace MarketData.Generator.MGSHMomentum
double gainLossClosedPositions=0.00;
double exposure=0.00;
double marketValue=0.00;
if(HolidayDA.IsMarketHoliday(currentDate)) continue;
// if(HolidayDA.IsMarketHoliday(currentDate)) continue;
ModelPerformanceItem performanceItem=new ModelPerformanceItem();
foreach(MGSHPosition openPosition in openPositions)
{
exposure+=openPosition.Shares*openPosition.PurchasePrice;
if(!LocalPriceCache.GetInstance().ContainsPrice(openPosition.Symbol,currentDate))
{
Prices prices=PricingDA.GetPricesForward(openPosition.Symbol,currentDate,90);
Prices prices=PricingDA.GetPricesForward(openPosition.Symbol,currentDate,PricingDA.ForwardLookingDays);
LocalPriceCache.GetInstance().Add(prices);
}
Price price=LocalPriceCache.GetInstance().GetPrice(openPosition.Symbol,currentDate);

View File

@@ -107,27 +107,6 @@ namespace MarketData.Generator.Momentum
if(null==sessionParams)return null;
MarketData.Generator.Momentum.Positions combinedPositions=sessionParams.GetCombinedPositions();
// Fix purchase date/sell date fall on weekend
//foreach(MarketData.Generator.Momentum.Position position in combinedPositions)
//{
// if(dateGenerator.IsWeekend(position.PurchaseDate))
// {
// while(true)
// {
// position.PurchaseDate=dateGenerator.GetPrevBusinessDay(position.PurchaseDate);
// if(!HolidayDA.IsMarketHoliday(position.PurchaseDate)) break;
// }
// }
// if(dateGenerator.IsWeekend(position.SellDate))
// {
// while(true)
// {
// position.SellDate=dateGenerator.GetNextBusinessDay(position.SellDate);
// if(!HolidayDA.IsMarketHoliday(position.SellDate)) break;
// }
// }
//}
// ********************************************************
DateTime minDate=combinedPositions.Min(x => x.PurchaseDate);
DateTime maxDate=PricingDA.GetLatestDate();
double prevGainLoss=double.NaN;
@@ -142,14 +121,14 @@ namespace MarketData.Generator.Momentum
double gainLossClosedPositions=0.00;
double exposure=0.00;
double marketValue=0.00;
if(HolidayDA.IsMarketHoliday(currentDate)) continue;
// if(HolidayDA.IsMarketHoliday(currentDate)) continue;
ModelPerformanceItem performanceItem=new ModelPerformanceItem();
foreach(MarketData.Generator.Momentum.Position openPosition in openPositions)
{
exposure+=openPosition.Shares*openPosition.PurchasePrice;
if(!LocalPriceCache.GetInstance().ContainsPrice(openPosition.Symbol,currentDate))
{
Prices prices=PricingDA.GetPricesForward(openPosition.Symbol,currentDate,90);
Prices prices=PricingDA.GetPricesForward(openPosition.Symbol,currentDate,PricingDA.ForwardLookingDays);
LocalPriceCache.GetInstance().Add(prices);
}
Price price=LocalPriceCache.GetInstance().GetPrice(openPosition.Symbol,currentDate);

View File

@@ -6,7 +6,7 @@ using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Threading;
using System.Reflection;
using System.Runtime.Remoting.Messaging;
//using System.Runtime.Remoting.Messaging;
using System.Text;
using MarketData.MarketDataModel;