// ReceiveDOHLCVTick consumes a source data DOHLCV price tick func (ind *AdlWithoutStorage) ReceiveDOHLCVTick(tickData gotrade.DOHLCV, streamBarIndex int) { moneyFlowMultiplier := ((tickData.C() - tickData.L()) - (tickData.H() - tickData.C())) / (tickData.H() - tickData.L()) moneyFlowVolume := moneyFlowMultiplier * tickData.V() result := ind.previousAdl + moneyFlowVolume ind.UpdateIndicatorWithNewValue(result, streamBarIndex) ind.previousAdl = result }
// ReceiveDOHLCVTick consumes a source data DOHLCV price tick func (ind *ObvWithoutStorage) ReceiveDOHLCVTick(tickData gotrade.DOHLCV, streamBarIndex int) { ind.periodCounter += 1 if ind.periodCounter <= 0 { ind.previousObv = tickData.V() ind.previousClose = tickData.C() result := ind.previousObv ind.UpdateIndicatorWithNewValue(result, streamBarIndex) } if ind.periodCounter > 0 { closePrice := tickData.C() if closePrice > ind.previousClose { ind.previousObv += tickData.V() } else if closePrice < ind.previousClose { ind.previousObv -= tickData.V() } result := ind.previousObv ind.UpdateIndicatorWithNewValue(result, streamBarIndex) ind.previousClose = tickData.C() } }
// ReceiveDOHLCVTick consumes a source data DOHLCV price tick func (ind *MfiWithoutStorage) ReceiveDOHLCVTick(tickData gotrade.DOHLCV, streamBarIndex int) { ind.currentVolume = tickData.V() ind.typicalPrice.ReceiveDOHLCVTick(tickData, streamBarIndex) }