- 5MA 계산 버그 수정

- 매수, 매도 조건 수정 : 5MA slope 조건 추가
- 기본 파라미터 수정
This commit is contained in:
2016-08-01 01:29:48 +09:00
parent b831b56934
commit 62315062bf
8 changed files with 307 additions and 209 deletions

View File

@@ -206,6 +206,7 @@ namespace upper_limit_crawler
m_DataMgr.GetTrader().SellCurPrice(OwnItem.m_strCode, OwnItem.m_iPayBalance);
m_OwnList.Remove(OwnItem);
m_DataMgr.RemoveWatch(strCode);
m_DataMgr.AddLosscutItem(strCode);
ULUtil.Trace("[{0}] 손절 {1}원 ({2}) {3}", OwnItem.m_strCodeName, iCurPrice, (iCurPrice/(float)OwnItem.m_iUnitBEP-1.0f).ToString("0.00%"), WatchItem.m_iHighestPrice);
ULUtil.TraceCSV("손절", OwnItem.m_strCodeName, iCurPrice, (iCurPrice / (float)OwnItem.m_iUnitBEP - 1.0f).ToString("0.00%"), WatchItem.m_iHighestPrice);
@@ -219,7 +220,7 @@ namespace upper_limit_crawler
else if (iCurPrice <= OwnItem.m_iMaxPrice - OwnItem.m_iUnitBEP * m_DataMgr.m_Setting.m_fTrailing)
{
float f5MASlope = WatchItem.GetPrev5MASlope(iTime);
if (f5MASlope > 0)
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%")));
continue;
@@ -229,32 +230,32 @@ namespace upper_limit_crawler
m_OwnList.Remove(OwnItem);
m_DataMgr.RemoveWatch(strCode);
ULUtil.Trace("[{0}] 트레일링 매도 {1}원 ({2}:{3}) (5MA slop:{4:0.00}) {5}",
ULUtil.Trace("[{0}] 트레일링 매도 {1}원 ({2}:{3}) (5MA slop:{4}) {5}",
OwnItem.m_strCodeName,
iCurPrice,
iCurPrice - OwnItem.m_iUnitBEP,
(iCurPrice/(float)OwnItem.m_iUnitBEP-1.0f).ToString("0.00%"),
f5MASlope,
f5MASlope.ToString("0.00%"),
WatchItem.m_iHighestPrice);
ULUtil.TraceCSV("트레일링 매도", OwnItem.m_strCodeName, iCurPrice, iCurPrice - OwnItem.m_iUnitBEP, (iCurPrice / (float)OwnItem.m_iUnitBEP - 1.0f).ToString("0.00%"), f5MASlope, WatchItem.m_iHighestPrice);
ULUtil.TraceCSV("트레일링 매도", OwnItem.m_strCodeName, iCurPrice, iCurPrice - OwnItem.m_iUnitBEP, (iCurPrice / (float)OwnItem.m_iUnitBEP - 1.0f).ToString("0.00%"), f5MASlope.ToString("0.00%"), WatchItem.m_iHighestPrice);
}
}
// steadiness
if (WatchItem.GetAvgDiff(iTime) < WatchItem.m_iPrevClosing*0.01)
{
m_DataMgr.GetTrader().SellCurPrice(OwnItem.m_strCode, OwnItem.m_iPayBalance);
m_OwnList.Remove(OwnItem);
m_DataMgr.RemoveWatch(strCode);
//if (WatchItem.GetAvgDiff(iTime) < WatchItem.m_iPrevClosing*0.01)
//{
// m_DataMgr.GetTrader().SellCurPrice(OwnItem.m_strCode, OwnItem.m_iPayBalance);
// m_OwnList.Remove(OwnItem);
// m_DataMgr.RemoveWatch(strCode);
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);
}
// 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);
//}
}
}
}