Ejemplo n.º 1
0
        public bool updateRates()
        {
            m_product_A.getRates();
            m_product_B.getRates();

            if (m_nType_price != EPRODUCT_TYPE_PRICE.A_B)
            {
                m_product_C.getRates();
            }

            switch (m_nType_price)
            {
            case EPRODUCT_TYPE_PRICE.A_B:
                m_dBid = m_product_A.m_dBid - m_product_B.m_dAsk;
                m_dAsk = m_product_A.m_dAsk - m_product_B.m_dBid;
                break;

            case EPRODUCT_TYPE_PRICE.A_BC:
                m_dBid = m_product_A.m_dBid - m_product_B.m_dAsk * m_product_C.getRenko(0).dAsk / m_dRatio_AB;
                m_dAsk = m_product_A.m_dAsk - m_product_B.m_dBid * m_product_C.getRenko(0).dBid / m_dRatio_AB;
                break;

            case EPRODUCT_TYPE_PRICE.A_B05C:
                m_dBid = m_product_A.m_dBid - m_product_B.m_dAsk * 0.5 * (m_product_C.m_dAsk + USDCNY_C0) / m_dRatio_AB;
                m_dAsk = m_product_A.m_dAsk - m_product_B.m_dBid * 0.5 * (m_product_C.m_dBid + USDCNY_C0) / m_dRatio_AB;
                break;

            default:
                return(false);
            }

            m_rates.pushTick(m_dAsk, m_dBid, m_product_A.getTickTime());
            m_dMid = (m_dBid + m_dAsk) / 2;

            if (m_bUseRenko)
            {
                push_renkoVal();
            }

            return(true);
        }