コード例 #1
0
API2::DATA_TYPES::PRICE API2::Test2::Context::getPrice()
{
  if(_userParams._priceType == FrontEndParameters::BestBid)
    return reqQryMarketData(_Instrument->getSymbolId())->getBidPrice(0);
  else if(_userParams._priceType == FrontEndParameters::BestAsk)
    return reqQryMarketData(_Instrument->getSymbolId())->getAskPrice(0);
  else
    return reqQryMarketData(_Instrument->getSymbolId())->getLastTradePrice();

}
コード例 #2
0
ファイル: sample.cpp プロジェクト: IanMadlenya/muTradeApi2
    void SampleStrategy::onMarketDataEvent(UNSIGNED_LONG symbolId)
    {
      API2::DATA_TYPES::PRICE price = reqQryMarketData(symbolId)->getBidPrice(1);
      API2::DATA_TYPES::QTY qty = _instrument->getStaticData()->marketLot*100;
      if(_orderWrapper->getLastQuotedPrice() == price)
        return;

#ifdef BENCHMARK_NEW_ORDERS
      HFT_Start_Timer_Define
      _orderWrapper->reset();
      HFT_Record_Timer(_LNResetOrder);
      sendNewOrder(price,qty);
      return;
#endif

      if(_orderWrapper->_isReset)
        {
          sendNewOrder(price,qty);
        }

      API2::DATA_TYPES::OrderStatus status = reqQryOrderStatus(_orderWrapper->_orderId);

      //      DEBUG_VARSHOW(reqQryDebugLog(), "Order Status:", status);
      switch(status)
        {
        case API2::CONSTANTS::RSP_OrderStatus_FILLED:
        case API2::CONSTANTS::RSP_OrderStatus_FROZEN:
        case API2::CONSTANTS::RSP_OrderStatus_CANCELED:
          sendNewOrder(price,qty);
          break;
        case API2::CONSTANTS::RSP_OrderStatus_REPLACED:
          sendCancelOrder();break;
        case API2::CONSTANTS::RSP_OrderStatus_CONFIRMED:
        case API2::CONSTANTS::RSP_OrderStatus_PARTIALLY_FILLED:
        case API2::CONSTANTS::RSP_OrderStatus_REPLACE_REJECTED:
        case API2::CONSTANTS::RSP_OrderStatus_CANCEL_REJECTED:
          sendReplaceOrder(price);break;

        }
    }