public OkexPositionBriefInfo getHoldPosition(OkexFutureInstrumentType instrument, OkexFutureContractType contract, OkexFutureTradeDirectionType direction, uint leverRate) { OkexPositionBriefInfo briefInfo = null; List <OkexPositionInfo> info; bool hold = getFuturePosition(instrument, contract, out info); if (hold) { foreach (var pi in info) { OkexFutureContractType ct = OkexDefValueConvert.parseContractType(pi.contract_type); if (ct == contract && leverRate == pi.lever_rate) { OkexPositionBriefInfo bi = new OkexPositionBriefInfo(pi, instrument, contract, direction); if (bi.amount > 0) { briefInfo = bi; break; } } } } return(briefInfo); }
// extension for position holding query public long getHoldPositionAmount(OkexFutureInstrumentType instrument, OkexFutureContractType contract, OkexFutureTradeDirectionType direction) { long positionAmount = 0; List <OkexPositionInfo> info; bool hold = getFuturePosition(instrument, contract, out info); if (hold) { foreach (var pi in info) { OkexFutureContractType ct = OkexDefValueConvert.parseContractType(pi.contract_type); if (ct == contract) { OkexPositionBriefInfo bi = new OkexPositionBriefInfo(pi, instrument, contract, direction); if (bi.amount > 0) { positionAmount += bi.amount; break; } } } } return(positionAmount); }