diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs index 62e11fc..c2c8700 100644 --- a/MainForm.Designer.cs +++ b/MainForm.Designer.cs @@ -158,7 +158,7 @@ this.tbTrailing.Name = "tbTrailing"; this.tbTrailing.Size = new System.Drawing.Size(100, 21); this.tbTrailing.TabIndex = 10; - this.tbTrailing.Text = "1.0%"; + this.tbTrailing.Text = "3.0%"; this.tbTrailing.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // label5 @@ -176,7 +176,7 @@ this.tbLossCut.Name = "tbLossCut"; this.tbLossCut.Size = new System.Drawing.Size(100, 21); this.tbLossCut.TabIndex = 10; - this.tbLossCut.Text = "2.0%"; + this.tbLossCut.Text = "3.0%"; this.tbLossCut.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // label6 diff --git a/ULBalanceDlg.cs b/ULBalanceDlg.cs index 3803a15..e45959d 100644 --- a/ULBalanceDlg.cs +++ b/ULBalanceDlg.cs @@ -192,18 +192,22 @@ namespace upper_limit_crawler // loss cut if (iCurPrice <= OwnItem.m_iUnitBEP * (1.0f - m_DataMgr.m_Setting.m_fLossCut)) { - UlUtil.Trace(string.Format("[{0}] 손절({1})", OwnItem.m_strCodeName, iCurPrice)); + UlUtil.Trace(string.Format("[{0}] 손절 {1}원 ({2})", OwnItem.m_strCodeName, iCurPrice, (iCurPrice/OwnItem.m_iUnitBEP-1.0f).ToString("0.00%"))); m_DataMgr.GetTrader().SellCurPrice(OwnItem.m_strCode, OwnItem.m_iPayBalance); m_OwnList.Remove(OwnItem); + m_DataMgr.RemoveWatch(strCode); + + // own에서 삭제하고 미체결 리스트에 넣고, watch에서도 뺀다 // 미체결 잔량 취소 } // trailing else if (iCurPrice <= OwnItem.m_iMaxPrice - OwnItem.m_iUnitBEP * m_DataMgr.m_Setting.m_fTrailing) { - UlUtil.Trace(string.Format("[{0}] 트레일링 매도({1})", OwnItem.m_strCodeName, iCurPrice)); + UlUtil.Trace(string.Format("[{0}] 트레일링 매도 {1}원 ({2})", OwnItem.m_strCodeName, iCurPrice, (iCurPrice/OwnItem.m_iUnitBEP-1.0f).ToString("0.00%"))); m_DataMgr.GetTrader().SellCurPrice(OwnItem.m_strCode, OwnItem.m_iPayBalance); m_OwnList.Remove(OwnItem); + m_DataMgr.RemoveWatch(strCode); } } } diff --git a/ULDataMgr.cs b/ULDataMgr.cs index ec77299..78b03f2 100644 --- a/ULDataMgr.cs +++ b/ULDataMgr.cs @@ -88,6 +88,15 @@ namespace upper_limit_crawler m_WatchList.Add(strCode, item); } + public void RemoveWatch(string strCode) + { + if (m_WatchList.ContainsKey(strCode)) + return; + + m_WatchList[strCode].m_StockCur.Unsubscribe(); + m_WatchList.Remove(strCode); + } + public void AddBlackList(string strCode) { m_BlackList.Add(strCode);