public double getFloating(String instrumentId, boolean isLong) { InsInfo mInfo = getInsInfoMap().get(instrumentId); if (mInfo == null) return 0.0; StockData lastData = mInfo.getLastData(); if (lastData == null) return 0.0; PosData longPos = getPosData(true, instrumentId); PosData shortPos = getPosData(false, instrumentId); if (isLong) { if (longPos == null) return 0.0; double longFloating = (lastData.getLastPrice() - longPos.getOpenPrice()) * longPos.getVolume() * getInsInfoMap().get(instrumentId).getMultiplier(); return longFloating; } else { if (shortPos == null) return 0.0; double shortFloating = (shortPos.getOpenPrice() - lastData.getLastPrice()) * shortPos.getVolume() * getInsInfoMap().get(instrumentId).getMultiplier(); return shortFloating; } }
public void initInsInfo(@NotNull JSONArray insInfoArray) { synchronized (InsInfoLock) { insInfoMap = new HashMap<String, InsInfo>(); insNameList = new ArrayList<String>(); for (int i = 0; i < insInfoArray.length(); i++) { InsInfo mInsInfo = null; try { mInsInfo = new InsInfo(insInfoArray.getJSONObject(i)); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } /* bug handling */ if (mInsInfo != null) { if (insInfoMap.get(mInsInfo.getInstrumentID()) != null) continue; insInfoMap.put(mInsInfo.getInstrumentID(), mInsInfo); insNameList.add(mInsInfo.getInstrumentID()); } } } }