103 lines
3.0 KiB
C++
103 lines
3.0 KiB
C++
#ifndef FIX40_EXECUTIONREPORT_H
|
|
#define FIX40_EXECUTIONREPORT_H
|
|
|
|
#include "Message.h"
|
|
|
|
namespace FIX40
|
|
{
|
|
|
|
class ExecutionReport : public Message
|
|
{
|
|
public:
|
|
ExecutionReport() : Message(MsgType()) {}
|
|
ExecutionReport(const FIX::Message& m) : Message(m) {}
|
|
ExecutionReport(const Message& m) : Message(m) {}
|
|
ExecutionReport(const ExecutionReport& m) : Message(m) {}
|
|
static FIX::MsgType MsgType() { return FIX::MsgType("8"); }
|
|
|
|
ExecutionReport(
|
|
const FIX::OrderID& aOrderID,
|
|
const FIX::ExecID& aExecID,
|
|
const FIX::ExecTransType& aExecTransType,
|
|
const FIX::OrdStatus& aOrdStatus,
|
|
const FIX::Symbol& aSymbol,
|
|
const FIX::Side& aSide,
|
|
const FIX::OrderQty& aOrderQty,
|
|
const FIX::LastShares& aLastShares,
|
|
const FIX::LastPx& aLastPx,
|
|
const FIX::CumQty& aCumQty,
|
|
const FIX::AvgPx& aAvgPx )
|
|
: Message(MsgType())
|
|
{
|
|
set(aOrderID);
|
|
set(aExecID);
|
|
set(aExecTransType);
|
|
set(aOrdStatus);
|
|
set(aSymbol);
|
|
set(aSide);
|
|
set(aOrderQty);
|
|
set(aLastShares);
|
|
set(aLastPx);
|
|
set(aCumQty);
|
|
set(aAvgPx);
|
|
}
|
|
|
|
FIELD_SET(*this, FIX::OrderID);
|
|
FIELD_SET(*this, FIX::ClOrdID);
|
|
FIELD_SET(*this, FIX::ClientID);
|
|
FIELD_SET(*this, FIX::ExecBroker);
|
|
FIELD_SET(*this, FIX::ListID);
|
|
FIELD_SET(*this, FIX::ExecID);
|
|
FIELD_SET(*this, FIX::ExecTransType);
|
|
FIELD_SET(*this, FIX::ExecRefID);
|
|
FIELD_SET(*this, FIX::OrdStatus);
|
|
FIELD_SET(*this, FIX::OrdRejReason);
|
|
FIELD_SET(*this, FIX::Account);
|
|
FIELD_SET(*this, FIX::SettlmntTyp);
|
|
FIELD_SET(*this, FIX::FutSettDate);
|
|
FIELD_SET(*this, FIX::Symbol);
|
|
FIELD_SET(*this, FIX::SymbolSfx);
|
|
FIELD_SET(*this, FIX::SecurityID);
|
|
FIELD_SET(*this, FIX::IDSource);
|
|
FIELD_SET(*this, FIX::Issuer);
|
|
FIELD_SET(*this, FIX::SecurityDesc);
|
|
FIELD_SET(*this, FIX::Side);
|
|
FIELD_SET(*this, FIX::OrderQty);
|
|
FIELD_SET(*this, FIX::OrdType);
|
|
FIELD_SET(*this, FIX::Price);
|
|
FIELD_SET(*this, FIX::StopPx);
|
|
FIELD_SET(*this, FIX::Currency);
|
|
FIELD_SET(*this, FIX::TimeInForce);
|
|
FIELD_SET(*this, FIX::ExpireTime);
|
|
FIELD_SET(*this, FIX::ExecInst);
|
|
FIELD_SET(*this, FIX::Rule80A);
|
|
FIELD_SET(*this, FIX::LastShares);
|
|
FIELD_SET(*this, FIX::LastPx);
|
|
FIELD_SET(*this, FIX::LastMkt);
|
|
FIELD_SET(*this, FIX::LastCapacity);
|
|
FIELD_SET(*this, FIX::CumQty);
|
|
FIELD_SET(*this, FIX::AvgPx);
|
|
FIELD_SET(*this, FIX::TradeDate);
|
|
FIELD_SET(*this, FIX::TransactTime);
|
|
FIELD_SET(*this, FIX::ReportToExch);
|
|
FIELD_SET(*this, FIX::Commission);
|
|
FIELD_SET(*this, FIX::CommType);
|
|
FIELD_SET(*this, FIX::NetMoney);
|
|
FIELD_SET(*this, FIX::SettlCurrAmt);
|
|
FIELD_SET(*this, FIX::SettlCurrency);
|
|
FIELD_SET(*this, FIX::Text);
|
|
FIELD_SET(*this, FIX::NoMiscFees);
|
|
class NoMiscFees: public FIX::Group
|
|
{
|
|
public:
|
|
NoMiscFees() : FIX::Group(136,137,FIX::message_order(137,138,139,0)) {}
|
|
FIELD_SET(*this, FIX::MiscFeeAmt);
|
|
FIELD_SET(*this, FIX::MiscFeeCurr);
|
|
FIELD_SET(*this, FIX::MiscFeeType);
|
|
};
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|