Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        // 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);
        }