private void push_renkoVal() { if (m_rates.getRenko(0) == null) { return; } if (Math.Abs(m_dRenkoVal_last - m_rates.getRenko(0).dAsk) < CFATCommon.ESP) { return; } m_product_A_rk.pushTick(m_product_A.m_dAsk, m_product_A.m_dBid, m_product_A.getTickTime()); //HSM_CCV2 if (m_nType_price == EPRODUCT_TYPE_PRICE.A_BC) { m_product_B_rk.pushTick(m_product_B.m_dAsk * m_product_C.getRenko(0).dAsk / m_dRatio_AB, m_product_B.m_dBid * m_product_C.getRenko(0).dBid / m_dRatio_AB, m_product_B.getTickTime()); } if (m_nType_price == EPRODUCT_TYPE_PRICE.A_B05C) { m_product_B_rk.pushTick(m_product_B.m_dAsk * 0.5 * (m_product_C.m_dAsk + USDCNY_C0) / m_dRatio_AB, m_product_B.m_dBid * 0.5 * (m_product_C.m_dBid + USDCNY_C0) / m_dRatio_AB, m_product_B.getTickTime()); } if (m_nType_price == EPRODUCT_TYPE_PRICE.A_B) { m_product_B_rk.pushTick(m_product_B.m_dAsk, m_product_B.m_dBid, m_product_B.getTickTime()); } // string sRates = string.Format("{0},{1},{2},{3},{4}", CFATCommon.m_dtCurTime, // m_product_A_rk.getTick(0).dAsk, m_product_A_rk.getTick(0).dBid, // m_product_B_rk.getTick(0).dAsk, m_product_B_rk.getTick(0).dBid); // CFATLogger.record_rates("Test\\renko", sRates); m_dRenkoVal_last = m_rates.getRenko(0).dAsk; }
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); }