public Position_KtbSkel GetPosition() { if (IsDone()) { String futureCode = this.TargetPosition.FutureCode; double futureAvgPrice = GetAvgFuturePrice(); long tmpFutureCount = GetFutureMaxPossibleCount(); LongShortCount tmpFutureLsc = new LongShortCount(this.TargetPosition.SignedFutureCount); LongShortCount futureLsc = new LongShortCount(tmpFutureLsc.LongShort, Convert.ToUInt64(tmpFutureCount)); long signedFutureCount = futureLsc.GetSignedCount(); String spotCode = this.TargetPosition.SpotCode; double spotAvgPrice = this.TargetPosition.SpotAvgPriceTimeAdjust; LongShortCount tmpSpotLsc = new LongShortCount(this.TargetPosition.SignedSpotCount); LongShortCount spotLsc = new LongShortCount(tmpSpotLsc.LongShort, Convert.ToUInt64(this.UnsignedSpotContractedCount)); long signedSpotCount = spotLsc.GetSignedCount(); DateTime tradingDate = CoreLib.DateUtil.GetTodayDateTime(0, 0, 0); Position_KtbSkel position = new Position_KtbSkel( spotCode, signedSpotCount, spotAvgPrice, futureCode, signedFutureCount, futureAvgPrice, tradingDate, 0); return position; } else { String ex = "Invalid"; logger.Error(ex.ToString()); Util.KillWithNotice(ex.ToString()); } return null; }
// 신규 주문을 낼 때 public LongShortCount GetRemainLongShortCount() { // 타겟 수량 - 체결된 수량 LongShortCount lsc = new LongShortCount(this.LongShort, Convert.ToUInt64(this.UnsignedTargetCount)); long targetSignedCount = lsc.GetSignedCount(); long totalSignedContractedCount = GetTotalSignedContractedCount(); long signedRemainCount = targetSignedCount - totalSignedContractedCount; LongShortCount remainLongShortCount = new LongShortCount(signedRemainCount); if (remainLongShortCount.LongShort != this.LongShort) { // 이렇게 될리가 없다. String ex = "Invalid"; logger.Error(ex.ToString()); Util.KillWithNotice(ex.ToString()); } return remainLongShortCount; }
public void SetTarget(LongShortCount lsc) { this.CurSignedTargetCount = lsc.GetSignedCount(); if (this.InitSignedGoalCount * this.CurSignedTargetCount < 0) { // 부호가 반대이다. logger.Error( "Target count twisted(sign is different) {0:n0}, {1:n0}", this.CurSignedTargetCount, this.InitSignedGoalCount); Util.KillWithNotice("Target count twisted(sign is different)"); Trace.Assert(false); } if (Math.Abs(this.InitSignedGoalCount) < Math.Abs(this.CurSignedTargetCount)) { logger.Error( "Target count twisted(goal count) {0:n0}, {1:n0}", this.CurSignedTargetCount, this.InitSignedGoalCount); Util.KillWithNotice("Target count twisted(goal count)"); Trace.Assert(false); } }
public void SetTarget(LongShortCount lsc) { this.CurSignedTargetCount = lsc.GetSignedCount(); if (this.CurSignedTargetCount < 0) { Trace.Assert(false); } }