현재가, 매수 후 최고가 디버그
This commit is contained in:
@@ -29,8 +29,9 @@ namespace upper_limit_crawler
|
||||
public double m_dConclusionUnitPrice;
|
||||
public long m_iUnitBEP;
|
||||
|
||||
public int m_iBidTime;
|
||||
public int m_iCurPrice;
|
||||
public int m_iMaxPrice;
|
||||
public int m_iMaxPriceAfterBid;
|
||||
|
||||
public bool m_bCheck;
|
||||
};
|
||||
@@ -126,14 +127,15 @@ namespace upper_limit_crawler
|
||||
|
||||
int iCurPrice = 0;
|
||||
|
||||
m_DataMgr.AddWatch(strCode, strCodeName, iCurPrice, iCurPrice);
|
||||
|
||||
OWN_ITEM OwnItem = m_OwnList.Find(itemFind => itemFind.m_strCode == strCode);
|
||||
if (OwnItem == null)
|
||||
{
|
||||
OwnItem = new OWN_ITEM();
|
||||
m_OwnList.Add(OwnItem);
|
||||
}
|
||||
|
||||
m_DataMgr.AddWatch(strCode, strCodeName);
|
||||
|
||||
OwnItem.m_strCodeName = strCodeName;
|
||||
OwnItem.m_iPayBalance = iPayBalance;
|
||||
OwnItem.m_iPayUnitPrice = iPayUnitPrice;
|
||||
@@ -146,7 +148,8 @@ namespace upper_limit_crawler
|
||||
OwnItem.m_dConclusionUnitPrice = dConclusionUnitPrice;
|
||||
OwnItem.m_iUnitBEP = iUnitBEP;
|
||||
OwnItem.m_iCurPrice = iCurPrice;
|
||||
OwnItem.m_iMaxPrice = iCurPrice;
|
||||
OwnItem.m_iMaxPriceAfterBid = Math.Max(iCurPrice, OwnItem.m_iMaxPriceAfterBid);
|
||||
OwnItem.m_iBidTime=m_DataMgr.GetBidTime(strCode);
|
||||
OwnItem.m_bCheck = true;
|
||||
|
||||
ListViewItem listViewItem = new ListViewItem(new string[] { strCode, strCodeName, dConclusionUnitPrice.ToString("###,###,##0"),
|
||||
@@ -194,9 +197,28 @@ namespace upper_limit_crawler
|
||||
OwnItem.m_iEvaluationPrice = iCurPrice * OwnItem.m_iConclusionBalanceCnt;
|
||||
OwnItem.m_iEvaluationProfit = iComp * OwnItem.m_iConclusionBalanceCnt;
|
||||
OwnItem.m_dProfitRate = iComp / (float)OwnItem.m_iUnitBEP;
|
||||
OwnItem.m_iMaxPrice = WatchItem.m_iHighestPrice;
|
||||
OwnItem.m_iMaxPriceAfterBid=WatchItem.GetHighestPriceAfter(OwnItem.m_iBidTime);
|
||||
|
||||
if(iCurPrice > 0)
|
||||
ListViewItem lvItem = lvBalance.FindItemWithText(strCode);
|
||||
if(lvItem != null)
|
||||
{
|
||||
lvItem.SubItems[chCurPrice.Index].Text = iCurPrice.ToString("###,###,##0");
|
||||
lvItem.SubItems[chEvaluationPrice.Index].Text = OwnItem.m_iEvaluationPrice.ToString("###,###,##0");
|
||||
lvItem.SubItems[chEvaluationProfit.Index].Text = OwnItem.m_iEvaluationProfit.ToString("###,###,##0");
|
||||
if(OwnItem.m_iEvaluationProfit > 0)
|
||||
lvItem.SubItems[chEvaluationProfit.Index].ForeColor = Color.Red;
|
||||
else
|
||||
lvItem.SubItems[chEvaluationProfit.Index].ForeColor = Color.Blue;
|
||||
lvItem.SubItems[chEvaluationPrice.Index].Text = OwnItem.m_iEvaluationPrice.ToString("###,###,##0");
|
||||
lvItem.SubItems[chProfitRate.Index].Text = OwnItem.m_dProfitRate.ToString("#,##0.00%");
|
||||
lvItem.SubItems[chHighPriceAfterBid.Index].Text = OwnItem.m_iMaxPriceAfterBid.ToString("###,###,##0");
|
||||
if(OwnItem.m_dProfitRate > 0)
|
||||
lvItem.SubItems[chProfitRate.Index].ForeColor = Color.Red;
|
||||
else
|
||||
lvItem.SubItems[chProfitRate.Index].ForeColor = Color.Blue;
|
||||
}
|
||||
|
||||
if(ULUtil.IsTradingTime() == true && iCurPrice > 0)
|
||||
{
|
||||
// loss cut
|
||||
if(iCurPrice <= OwnItem.m_iUnitBEP * (1.0f - m_DataMgr.m_Setting.m_fLossCut))
|
||||
@@ -218,12 +240,12 @@ namespace upper_limit_crawler
|
||||
// 미체결 잔량 취소
|
||||
}
|
||||
// trailing
|
||||
else if(iCurPrice <= OwnItem.m_iMaxPrice - OwnItem.m_iUnitBEP * m_DataMgr.m_Setting.m_fTrailing)
|
||||
else if(iCurPrice <= OwnItem.m_iMaxPriceAfterBid - OwnItem.m_iUnitBEP * m_DataMgr.m_Setting.m_fTrailing)
|
||||
{
|
||||
float f5MASlope = WatchItem.GetPrev5MASlope(iTime);
|
||||
if(float.IsNaN(f5MASlope) || f5MASlope > -0.0100f)
|
||||
{
|
||||
Console.WriteLine(string.Format("[{0}] [{1}] 트레일링 매도 대기. 5ma 상승 중 {2}원 ({3})", iTime, OwnItem.m_strCodeName, iCurPrice, (iCurPrice / (float)OwnItem.m_iUnitBEP - 1.0f).ToString("0.00%")));
|
||||
ULUtil.Trace(string.Format("[{0}] [{1}] 트레일링 매도 대기. 5ma 상승 중 {2}원 ({3})", iTime, OwnItem.m_strCodeName, iCurPrice, (iCurPrice / (float)OwnItem.m_iUnitBEP - 1.0f).ToString("0.00%")));
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -244,25 +266,21 @@ namespace upper_limit_crawler
|
||||
ULUtil.TraceCSV("트레일링 매도", OwnItem.m_strCodeName, iCurPrice, iCurPrice - OwnItem.m_iUnitBEP, fProfitRate.ToString("0.00%"), f5MASlope.ToString("0.00%"), WatchItem.m_iHighestPrice);
|
||||
m_DataMgr.AddAskLog(strCode, WatchItem.m_strCodeName, iTime, iCurPrice, f5MASlope, false, iProfit, fProfitRate, true);
|
||||
}
|
||||
}
|
||||
// steadiness
|
||||
else if(ULUtil.GetTimeDiff(OwnItem.m_iBidTime, iTime) > 3000)
|
||||
{
|
||||
m_DataMgr.GetTrader().SellCurPrice(OwnItem.m_strCode, OwnItem.m_iPayBalance);
|
||||
m_OwnList.Remove(OwnItem);
|
||||
m_DataMgr.RemoveWatch(strCode);
|
||||
|
||||
ListViewItem lvItem = lvBalance.FindItemWithText(strCode);
|
||||
if(lvItem != null)
|
||||
{
|
||||
lvItem.SubItems[chCurPrice.Index].Text = iCurPrice.ToString("###,###,##0");
|
||||
lvItem.SubItems[chEvaluationPrice.Index].Text = OwnItem.m_iEvaluationPrice.ToString("###,###,##0");
|
||||
lvItem.SubItems[chEvaluationProfit.Index].Text = OwnItem.m_iEvaluationProfit.ToString("###,###,##0");
|
||||
if(OwnItem.m_iEvaluationProfit > 0)
|
||||
lvItem.SubItems[chEvaluationProfit.Index].ForeColor = Color.Red;
|
||||
else
|
||||
lvItem.SubItems[chEvaluationProfit.Index].ForeColor = Color.Blue;
|
||||
lvItem.SubItems[chEvaluationPrice.Index].Text = OwnItem.m_iEvaluationPrice.ToString("###,###,##0");
|
||||
lvItem.SubItems[chProfitRate.Index].Text = OwnItem.m_dProfitRate.ToString("#,##0.00%");
|
||||
lvItem.SubItems[chHighestPrice.Index].Text = WatchItem.m_iHighestPrice.ToString("###,###,##0");
|
||||
if(OwnItem.m_dProfitRate > 0)
|
||||
lvItem.SubItems[chProfitRate.Index].ForeColor = Color.Red;
|
||||
else
|
||||
lvItem.SubItems[chProfitRate.Index].ForeColor = Color.Blue;
|
||||
ULUtil.Trace("[{0}] 보합 처리 {1}원 ({2}:{3}) {4}",
|
||||
OwnItem.m_strCodeName,
|
||||
WatchItem.m_iCurPrice,
|
||||
WatchItem.m_iCurPrice - OwnItem.m_iUnitBEP,
|
||||
(WatchItem.m_iCurPrice / (float)OwnItem.m_iUnitBEP - 1.0f).ToString("0.00%"),
|
||||
WatchItem.m_iHighestPrice);
|
||||
ULUtil.TraceCSV("보합 처리", OwnItem.m_strCodeName, WatchItem.m_iCurPrice, WatchItem.m_iCurPrice - OwnItem.m_iUnitBEP, (WatchItem.m_iCurPrice / (float)OwnItem.m_iUnitBEP - 1.0f).ToString("0.00%"), WatchItem.m_iHighestPrice);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user