protected void calculateCurrentOpen(Series <DateTime, MarketDataElement> series) { if (currentOpenPrice != 0) { return; } MarketDataElement lastItem = (MarketDataElement)series.GetAt(series.KeyCount - 1); MarketDataElement openItem = MarketDateElementHelper.getFirstAvaMarketData(series, MarketDataUtil.getStartTime(lastItem.time)); currentOpenPrice = openItem.open; log.Info("[calculateCurrentOpen] : currentOpen = " + currentOpenPrice); }
public static double findEnterPtTriggerMomentum(List <CMRow> rows, Series <DateTime, MarketDataElement> series, int period, DateTime startTime, double delta, String buySell) { Series <DateTime, MarketDataElement> lastNData = MarketDateElementHelper.getLastNMarketData(series, period - 1); MarketDataElement firstData = MarketDateElementHelper.getFirstAvaMarketData(lastNData, startTime); MarketDataElement lastData = series.GetAt(series.KeyCount - 1); //log.Info("firstData.open : " + firstData.open); double open = firstData.open; if (AppConstant.BUY_SIGNAL.Equals(buySell)) { return(open + delta); } else { return(open - delta); } }
public static List <CMRow> calculate(List <CMRow> rows, Series <DateTime, MarketDataElement> series, int period, DateTime startTime) { Series <DateTime, MarketDataElement> lastNData = MarketDateElementHelper.getLastNMarketData(series, period); MarketDataElement firstData = MarketDateElementHelper.getFirstAvaMarketData(lastNData, startTime); MarketDataElement lastData = series.GetAt(series.KeyCount - 1); double open = firstData.open; double close = lastData.close; double delta = Math.Abs(close - open); CMRow row = new CMRow(); row.startTime = firstData.time; row.startPt = firstData.open; row.endTime = lastData.time; row.endPt = lastData.close; row.deltaPt = delta; rows.Add(row); return(rows); }