Changes to display of Buys and Sells.

This commit is contained in:
2025-12-01 19:45:58 -05:00
parent e4aa9c0403
commit 87f36345ff
4 changed files with 112 additions and 5 deletions

View File

@@ -497,6 +497,7 @@ namespace MarketData.Generator.MGSHMomentum
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("********** Insufficient funds to make additional purchases.**************"));
return;
}
DisplayPurchases(positions,TradeDate);
ActivePositions.Add(slotIndex,positions);
CashBalance-=positions.Exposure;
SetInitialStopLimitsForNewPositions(TradeDate, positions);
@@ -511,6 +512,7 @@ namespace MarketData.Generator.MGSHMomentum
if(!Configuration.KeepSlotPositions) // if we are not configured to KeepSlotPositions then don't sell anything just buy to the max positions allowed for the slot
{
SellPositions(slotPositions,TradeDate);
DisplaySales(slotPositions, TradeDate);
MDTrace.WriteLine(LogLevel.DEBUG,"********************* S E L L *********************");
slotPositions.Display();
AllPositions.Add(slotPositions);
@@ -532,6 +534,7 @@ namespace MarketData.Generator.MGSHMomentum
MDTrace.WriteLine(LogLevel.DEBUG,"********************** B U Y ********************");
if(!ActivePositions.ContainsKey(slotIndex))ActivePositions.Add(slotIndex, positions);
else ActivePositions[slotIndex].AddRange(positions);
DisplayPurchases(positions, TradeDate);
CashBalance-=positions.Exposure;
SetInitialStopLimitsForNewPositions(TradeDate, positions);
ActivePositions[slotIndex].Display();
@@ -1398,5 +1401,35 @@ namespace MarketData.Generator.MGSHMomentum
sessionParams.HedgeCashBalance=HedgeCashBalance;
return MGSHSessionManager.SaveSession(sessionParams,backupFileName);
}
/// <summary>
/// This makes for easier reading of the sales
/// </summary>
/// <param name="positions"></param>
/// <param name="tradeDate"></param>
private static void DisplaySales(MGSHPositions positions,DateTime tradeDate)
{
if(null == positions || 0==positions.Count)return;
MDTrace.WriteLine(LogLevel.DEBUG,"********* S E L L S *********");
foreach (MGSHPosition position in positions)
{
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Sell {0} {1} @ {2} on {3}",position.Symbol,Utility.FormatNumber(position.Shares,3),Utility.FormatCurrency(position.CurrentPrice,2),tradeDate.ToShortDateString()));
}
}
/// <summary>
/// This makes for easier reading of the purchases
/// </summary>
/// <param name="positions"></param>
/// <param name="tradeDate"></param>
private static void DisplayPurchases(MGSHPositions positions, DateTime tradeDate)
{
if(null == positions || 0==positions.Count)return;
MDTrace.WriteLine(LogLevel.DEBUG,"********* B U Y S *********");
foreach (MGSHPosition position in positions)
{
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Buy {0} {1} @ {2} on {3}",position.Symbol,Utility.FormatNumber(position.Shares,3),Utility.FormatCurrency(position.PurchasePrice,2),tradeDate.ToShortDateString()));
}
}
}
}