Removed Active from StopLimits. The real solution is to have an additional key on the stop limits table in addition to Symbol..like Shares.

This commit is contained in:
2025-12-12 17:25:40 -05:00
parent 247eb8141b
commit 015b6c4dab
6 changed files with 45 additions and 25 deletions

View File

@@ -1057,7 +1057,7 @@ namespace TradeBlotter.ViewModels
{
bool deleteStop=false;
MGSHPosition clonedPosition=MGSHPosition.Clone(selectedPosition.Position);
bool hasStopLimit=PortfolioDA.HasStopLimit(clonedPosition.Symbol);
bool hasStopLimit=StopLimitDA.HasStopLimit(clonedPosition.Symbol);
IPosition changedPosition=ClosePositionDialog.Prompt("Close Position",clonedPosition,hasStopLimit,ref deleteStop);
if(null==changedPosition) return;
MGSHMomentumBacktest mgshMomentumBacktest = new MGSHMomentumBacktest();
@@ -1066,7 +1066,7 @@ namespace TradeBlotter.ViewModels
MessageBox.Show("Failed to close the position, check log for details.","Close Position");
return;
}
if(deleteStop) PortfolioDA.DeleteStopLimit(changedPosition.Symbol);
if(deleteStop) StopLimitDA.DeleteStopLimit(changedPosition.Symbol);
String strMessage=String.Format("Closed position for {0}, Purchase Date:{1}, Sell Date{2}, Current Price:{3}, Delete Stop:{4} to {5}. A backup was created.",
changedPosition.Symbol,changedPosition.PurchaseDate.ToShortDateString(),changedPosition.SellDate.ToShortDateString(),Utility.FormatCurrency(changedPosition.CurrentPrice),deleteStop,pathFileName);
MessageBox.Show(strMessage,"Close Position");
@@ -1088,7 +1088,7 @@ namespace TradeBlotter.ViewModels
{
selectedPosition.TrailingStopLimit = changedPosition.TrailingStopLimit;
selectedPosition.LastStopAdjustment = DateTime.Now.Date;
StopLimit stopLimit = PortfolioDA.GetStopLimit(changedPosition.Symbol);
StopLimit stopLimit = StopLimitDA.GetStopLimit(changedPosition.Symbol);
if (null == stopLimit)
{
stopLimit = new StopLimit();
@@ -1097,7 +1097,7 @@ namespace TradeBlotter.ViewModels
stopLimit.Shares = changedPosition.Shares;
}
stopLimit.StopPrice = changedPosition.TrailingStopLimit;
PortfolioDA.InsertUpdateStopLimit(stopLimit);
StopLimitDA.InsertUpdateStopLimit(stopLimit);
}
selectedPosition.PurchaseDate = changedPosition.PurchaseDate;
selectedPosition.PurchasePrice = changedPosition.PurchasePrice;
@@ -1554,7 +1554,7 @@ namespace TradeBlotter.ViewModels
initialStopLimit.StopPrice = selectedPosition.InitialStopLimit;
initialStopLimit.StopType = StopLimitConstants.STOP_QUOTE;
initialStopLimit.EffectiveDate = selectedPosition.PurchaseDate;
initialStopLimit.Active = 1;
// initialStopLimit.Active = 1;
marketDataModelStopLimits.Add(initialStopLimit);
foreach (MarketData.Generator.Model.StopLimit stopLimit in stopLimits)
@@ -1565,7 +1565,7 @@ namespace TradeBlotter.ViewModels
marketDataModelStopLimit.StopPrice = stopLimit.NewStop;
marketDataModelStopLimit.StopType = StopLimitConstants.STOP_QUOTE;
marketDataModelStopLimit.EffectiveDate = stopLimit.AnalysisDate;
marketDataModelStopLimit.Active = 1;
// marketDataModelStopLimit.Active = 1;
marketDataModelStopLimits.Add(marketDataModelStopLimit);
}