Changes to display of Buys and Sells.
This commit is contained in:
@@ -449,8 +449,12 @@ namespace MarketData.Generator.CMMomentum
|
|||||||
// ***************************************************************************************************************************************************
|
// ***************************************************************************************************************************************************
|
||||||
// **************************************************************** S E L L P O S I T I O N S *****************************************************
|
// **************************************************************** S E L L P O S I T I O N S *****************************************************
|
||||||
// ***************************************************************************************************************************************************
|
// ***************************************************************************************************************************************************
|
||||||
// These make the monthly process a bit easier to read
|
/// <summary>
|
||||||
private void DisplaySales(Positions positions,DateTime tradeDate)
|
/// This makes for easier reading of the sales
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="positions"></param>
|
||||||
|
/// <param name="tradeDate"></param>
|
||||||
|
private static void DisplaySales(Positions positions,DateTime tradeDate)
|
||||||
{
|
{
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,"********* S E L L S *********");
|
MDTrace.WriteLine(LogLevel.DEBUG,"********* S E L L S *********");
|
||||||
foreach (Position position in positions)
|
foreach (Position position in positions)
|
||||||
@@ -459,12 +463,17 @@ namespace MarketData.Generator.CMMomentum
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DisplayPurchases(Positions positions, DateTime tradeDate)
|
/// <summary>
|
||||||
|
/// This makes for easier reading of the purchases
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="positions"></param>
|
||||||
|
/// <param name="tradeDate"></param>
|
||||||
|
private static void DisplayPurchases(Positions positions, DateTime tradeDate)
|
||||||
{
|
{
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,"********* B U Y S *********");
|
MDTrace.WriteLine(LogLevel.DEBUG,"********* B U Y S *********");
|
||||||
foreach (Position position in positions)
|
foreach (Position 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()));
|
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()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -652,6 +652,7 @@ namespace MarketData.Generator.CMTrend
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
ActivePositions.Add(positions);
|
ActivePositions.Add(positions);
|
||||||
|
DisplayPurchases(positions, TradeDate);
|
||||||
CashBalance-=positions.GetExposure();
|
CashBalance-=positions.GetExposure();
|
||||||
}
|
}
|
||||||
DisplayRealtimeBlotter(TradeDate);
|
DisplayRealtimeBlotter(TradeDate);
|
||||||
@@ -753,6 +754,7 @@ namespace MarketData.Generator.CMTrend
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
ActivePositions.Add(positions);
|
ActivePositions.Add(positions);
|
||||||
|
DisplayPurchases(positions, TradeDate);
|
||||||
CashBalance-=positions.GetExposure();
|
CashBalance-=positions.GetExposure();
|
||||||
}
|
}
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,"\n");
|
MDTrace.WriteLine(LogLevel.DEBUG,"\n");
|
||||||
@@ -884,7 +886,8 @@ namespace MarketData.Generator.CMTrend
|
|||||||
private void ManageOpenPositions(DateTime tradeDate)
|
private void ManageOpenPositions(DateTime tradeDate)
|
||||||
{
|
{
|
||||||
if(0==ActivePositions.Count) return;
|
if(0==ActivePositions.Count) return;
|
||||||
List<Position> closedPositions=new List<Position>();
|
Positions closedPositions = new Positions();
|
||||||
|
// List<Position> closedPositions=new List<Position>();
|
||||||
foreach(Position position in ActivePositions)
|
foreach(Position position in ActivePositions)
|
||||||
{
|
{
|
||||||
Price price=GBPriceCache.GetInstance().GetPrice(position.Symbol,tradeDate);
|
Price price=GBPriceCache.GetInstance().GetPrice(position.Symbol,tradeDate);
|
||||||
@@ -948,6 +951,7 @@ namespace MarketData.Generator.CMTrend
|
|||||||
}
|
}
|
||||||
if(0!=closedPositions.Count)
|
if(0!=closedPositions.Count)
|
||||||
{
|
{
|
||||||
|
DisplaySales(closedPositions, TradeDate);
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,"********************* S E L L *********************");
|
MDTrace.WriteLine(LogLevel.DEBUG,"********************* S E L L *********************");
|
||||||
foreach(Position closedPosition in closedPositions)
|
foreach(Position closedPosition in closedPositions)
|
||||||
{
|
{
|
||||||
@@ -1788,5 +1792,33 @@ namespace MarketData.Generator.CMTrend
|
|||||||
sessionParams.NonTradeableCash=NonTradeableCash;
|
sessionParams.NonTradeableCash=NonTradeableCash;
|
||||||
return CMTSessionManager.SaveSession(sessionParams,backupFileName);
|
return CMTSessionManager.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(Positions positions,DateTime tradeDate)
|
||||||
|
{
|
||||||
|
MDTrace.WriteLine(LogLevel.DEBUG,"********* S E L L S *********");
|
||||||
|
foreach (Position 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(Positions positions, DateTime tradeDate)
|
||||||
|
{
|
||||||
|
MDTrace.WriteLine(LogLevel.DEBUG,"********* B U Y S *********");
|
||||||
|
foreach (Position 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()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -497,6 +497,7 @@ namespace MarketData.Generator.MGSHMomentum
|
|||||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("********** Insufficient funds to make additional purchases.**************"));
|
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("********** Insufficient funds to make additional purchases.**************"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
DisplayPurchases(positions,TradeDate);
|
||||||
ActivePositions.Add(slotIndex,positions);
|
ActivePositions.Add(slotIndex,positions);
|
||||||
CashBalance-=positions.Exposure;
|
CashBalance-=positions.Exposure;
|
||||||
SetInitialStopLimitsForNewPositions(TradeDate, positions);
|
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
|
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);
|
SellPositions(slotPositions,TradeDate);
|
||||||
|
DisplaySales(slotPositions, TradeDate);
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,"********************* S E L L *********************");
|
MDTrace.WriteLine(LogLevel.DEBUG,"********************* S E L L *********************");
|
||||||
slotPositions.Display();
|
slotPositions.Display();
|
||||||
AllPositions.Add(slotPositions);
|
AllPositions.Add(slotPositions);
|
||||||
@@ -532,6 +534,7 @@ namespace MarketData.Generator.MGSHMomentum
|
|||||||
MDTrace.WriteLine(LogLevel.DEBUG,"********************** B U Y ********************");
|
MDTrace.WriteLine(LogLevel.DEBUG,"********************** B U Y ********************");
|
||||||
if(!ActivePositions.ContainsKey(slotIndex))ActivePositions.Add(slotIndex, positions);
|
if(!ActivePositions.ContainsKey(slotIndex))ActivePositions.Add(slotIndex, positions);
|
||||||
else ActivePositions[slotIndex].AddRange(positions);
|
else ActivePositions[slotIndex].AddRange(positions);
|
||||||
|
DisplayPurchases(positions, TradeDate);
|
||||||
CashBalance-=positions.Exposure;
|
CashBalance-=positions.Exposure;
|
||||||
SetInitialStopLimitsForNewPositions(TradeDate, positions);
|
SetInitialStopLimitsForNewPositions(TradeDate, positions);
|
||||||
ActivePositions[slotIndex].Display();
|
ActivePositions[slotIndex].Display();
|
||||||
@@ -1398,5 +1401,35 @@ namespace MarketData.Generator.MGSHMomentum
|
|||||||
sessionParams.HedgeCashBalance=HedgeCashBalance;
|
sessionParams.HedgeCashBalance=HedgeCashBalance;
|
||||||
return MGSHSessionManager.SaveSession(sessionParams,backupFileName);
|
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()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -228,6 +228,7 @@ namespace MarketData.Generator.Momentum
|
|||||||
MDTrace.WriteLine(LogLevel.DEBUG, "********************* S E L L *********************");
|
MDTrace.WriteLine(LogLevel.DEBUG, "********************* S E L L *********************");
|
||||||
slotPositions.Display();
|
slotPositions.Display();
|
||||||
AllPositions.Add(slotPositions);
|
AllPositions.Add(slotPositions);
|
||||||
|
DisplaySales(slotPositions, TradeDate);
|
||||||
CashBalance += slotPositions.MarketValue;
|
CashBalance += slotPositions.MarketValue;
|
||||||
ActivePositions[slotIndex].Clear();
|
ActivePositions[slotIndex].Clear();
|
||||||
}
|
}
|
||||||
@@ -372,6 +373,7 @@ namespace MarketData.Generator.Momentum
|
|||||||
}
|
}
|
||||||
positions.Display();
|
positions.Display();
|
||||||
ActivePositions.Add(slotIndex,positions);
|
ActivePositions.Add(slotIndex,positions);
|
||||||
|
DisplayPurchases(positions,TradeDate);
|
||||||
CashBalance-=positions.Exposure;
|
CashBalance-=positions.Exposure;
|
||||||
DisplayBalance();
|
DisplayBalance();
|
||||||
}
|
}
|
||||||
@@ -382,6 +384,7 @@ namespace MarketData.Generator.Momentum
|
|||||||
MDTrace.WriteLine(LogLevel.DEBUG,"********************* S E L L *********************");
|
MDTrace.WriteLine(LogLevel.DEBUG,"********************* S E L L *********************");
|
||||||
slotPositions.Display();
|
slotPositions.Display();
|
||||||
AllPositions.Add(slotPositions);
|
AllPositions.Add(slotPositions);
|
||||||
|
DisplaySales(slotPositions, TradeDate);
|
||||||
CashBalance+=slotPositions.MarketValue;
|
CashBalance+=slotPositions.MarketValue;
|
||||||
ActivePositions[slotIndex].Clear();
|
ActivePositions[slotIndex].Clear();
|
||||||
DisplayBalance();
|
DisplayBalance();
|
||||||
@@ -398,6 +401,7 @@ namespace MarketData.Generator.Momentum
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ActivePositions[slotIndex]=positions;
|
ActivePositions[slotIndex]=positions;
|
||||||
|
DisplayPurchases(positions, TradeDate);
|
||||||
CashBalance-=positions.Exposure;
|
CashBalance-=positions.Exposure;
|
||||||
DisplayBalance();
|
DisplayBalance();
|
||||||
}
|
}
|
||||||
@@ -415,6 +419,7 @@ namespace MarketData.Generator.Momentum
|
|||||||
MDTrace.WriteLine(LogLevel.DEBUG,"********************* S E L L ********************");
|
MDTrace.WriteLine(LogLevel.DEBUG,"********************* S E L L ********************");
|
||||||
slotPositions.Display();
|
slotPositions.Display();
|
||||||
AllPositions.Add(slotPositions);
|
AllPositions.Add(slotPositions);
|
||||||
|
DisplaySales(slotPositions, TradeDate);
|
||||||
CashBalance+=slotPositions.MarketValue;
|
CashBalance+=slotPositions.MarketValue;
|
||||||
ActivePositions[slotIndex].Clear();
|
ActivePositions[slotIndex].Clear();
|
||||||
}
|
}
|
||||||
@@ -720,5 +725,33 @@ namespace MarketData.Generator.Momentum
|
|||||||
sessionParams.NonTradeableCash = NonTradeableCash;
|
sessionParams.NonTradeableCash = NonTradeableCash;
|
||||||
return MGSessionManager.SaveSession(sessionParams,backupFileName);
|
return MGSessionManager.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(Positions positions,DateTime tradeDate)
|
||||||
|
{
|
||||||
|
MDTrace.WriteLine(LogLevel.DEBUG,"********* S E L L S *********");
|
||||||
|
foreach (Position 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(Positions positions, DateTime tradeDate)
|
||||||
|
{
|
||||||
|
MDTrace.WriteLine(LogLevel.DEBUG,"********* B U Y S *********");
|
||||||
|
foreach (Position 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()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user