Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
749 lines (630 sloc) 18.7 KB
package newordersingle
import (
"github.com/shopspring/decimal"
"time"
"github.com/quickfixgo/enum"
"github.com/quickfixgo/field"
"github.com/quickfixgo/fix40"
"github.com/quickfixgo/quickfix"
"github.com/quickfixgo/tag"
)
//NewOrderSingle is the fix40 NewOrderSingle type, MsgType = D
type NewOrderSingle struct {
fix40.Header
*quickfix.Body
fix40.Trailer
Message *quickfix.Message
}
//FromMessage creates a NewOrderSingle from a quickfix.Message instance
func FromMessage(m *quickfix.Message) NewOrderSingle {
return NewOrderSingle{
Header: fix40.Header{&m.Header},
Body: &m.Body,
Trailer: fix40.Trailer{&m.Trailer},
Message: m,
}
}
//ToMessage returns a quickfix.Message instance
func (m NewOrderSingle) ToMessage() *quickfix.Message {
return m.Message
}
//New returns a NewOrderSingle initialized with the required fields for NewOrderSingle
func New(clordid field.ClOrdIDField, handlinst field.HandlInstField, symbol field.SymbolField, side field.SideField, orderqty field.OrderQtyField, ordtype field.OrdTypeField) (m NewOrderSingle) {
m.Message = quickfix.NewMessage()
m.Header = fix40.NewHeader(&m.Message.Header)
m.Body = &m.Message.Body
m.Trailer.Trailer = &m.Message.Trailer
m.Header.Set(field.NewMsgType("D"))
m.Set(clordid)
m.Set(handlinst)
m.Set(symbol)
m.Set(side)
m.Set(orderqty)
m.Set(ordtype)
return
}
//A RouteOut is the callback type that should be implemented for routing Message
type RouteOut func(msg NewOrderSingle, sessionID quickfix.SessionID) quickfix.MessageRejectError
//Route returns the beginstring, message type, and MessageRoute for this Message type
func Route(router RouteOut) (string, string, quickfix.MessageRoute) {
r := func(msg *quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
return router(FromMessage(msg), sessionID)
}
return "FIX.4.0", "D", r
}
//SetAccount sets Account, Tag 1
func (m NewOrderSingle) SetAccount(v string) {
m.Set(field.NewAccount(v))
}
//SetClOrdID sets ClOrdID, Tag 11
func (m NewOrderSingle) SetClOrdID(v string) {
m.Set(field.NewClOrdID(v))
}
//SetCommission sets Commission, Tag 12
func (m NewOrderSingle) SetCommission(value decimal.Decimal, scale int32) {
m.Set(field.NewCommission(value, scale))
}
//SetCommType sets CommType, Tag 13
func (m NewOrderSingle) SetCommType(v enum.CommType) {
m.Set(field.NewCommType(v))
}
//SetCurrency sets Currency, Tag 15
func (m NewOrderSingle) SetCurrency(v string) {
m.Set(field.NewCurrency(v))
}
//SetExecInst sets ExecInst, Tag 18
func (m NewOrderSingle) SetExecInst(v enum.ExecInst) {
m.Set(field.NewExecInst(v))
}
//SetHandlInst sets HandlInst, Tag 21
func (m NewOrderSingle) SetHandlInst(v enum.HandlInst) {
m.Set(field.NewHandlInst(v))
}
//SetIDSource sets IDSource, Tag 22
func (m NewOrderSingle) SetIDSource(v enum.IDSource) {
m.Set(field.NewIDSource(v))
}
//SetIOIid sets IOIid, Tag 23
func (m NewOrderSingle) SetIOIid(v string) {
m.Set(field.NewIOIid(v))
}
//SetOrderQty sets OrderQty, Tag 38
func (m NewOrderSingle) SetOrderQty(value decimal.Decimal, scale int32) {
m.Set(field.NewOrderQty(value, scale))
}
//SetOrdType sets OrdType, Tag 40
func (m NewOrderSingle) SetOrdType(v enum.OrdType) {
m.Set(field.NewOrdType(v))
}
//SetPrice sets Price, Tag 44
func (m NewOrderSingle) SetPrice(value decimal.Decimal, scale int32) {
m.Set(field.NewPrice(value, scale))
}
//SetRule80A sets Rule80A, Tag 47
func (m NewOrderSingle) SetRule80A(v enum.Rule80A) {
m.Set(field.NewRule80A(v))
}
//SetSecurityID sets SecurityID, Tag 48
func (m NewOrderSingle) SetSecurityID(v string) {
m.Set(field.NewSecurityID(v))
}
//SetSide sets Side, Tag 54
func (m NewOrderSingle) SetSide(v enum.Side) {
m.Set(field.NewSide(v))
}
//SetSymbol sets Symbol, Tag 55
func (m NewOrderSingle) SetSymbol(v string) {
m.Set(field.NewSymbol(v))
}
//SetText sets Text, Tag 58
func (m NewOrderSingle) SetText(v string) {
m.Set(field.NewText(v))
}
//SetTimeInForce sets TimeInForce, Tag 59
func (m NewOrderSingle) SetTimeInForce(v enum.TimeInForce) {
m.Set(field.NewTimeInForce(v))
}
//SetSettlmntTyp sets SettlmntTyp, Tag 63
func (m NewOrderSingle) SetSettlmntTyp(v enum.SettlmntTyp) {
m.Set(field.NewSettlmntTyp(v))
}
//SetFutSettDate sets FutSettDate, Tag 64
func (m NewOrderSingle) SetFutSettDate(v string) {
m.Set(field.NewFutSettDate(v))
}
//SetSymbolSfx sets SymbolSfx, Tag 65
func (m NewOrderSingle) SetSymbolSfx(v enum.SymbolSfx) {
m.Set(field.NewSymbolSfx(v))
}
//SetExecBroker sets ExecBroker, Tag 76
func (m NewOrderSingle) SetExecBroker(v string) {
m.Set(field.NewExecBroker(v))
}
//SetProcessCode sets ProcessCode, Tag 81
func (m NewOrderSingle) SetProcessCode(v enum.ProcessCode) {
m.Set(field.NewProcessCode(v))
}
//SetStopPx sets StopPx, Tag 99
func (m NewOrderSingle) SetStopPx(value decimal.Decimal, scale int32) {
m.Set(field.NewStopPx(value, scale))
}
//SetExDestination sets ExDestination, Tag 100
func (m NewOrderSingle) SetExDestination(v enum.ExDestination) {
m.Set(field.NewExDestination(v))
}
//SetIssuer sets Issuer, Tag 106
func (m NewOrderSingle) SetIssuer(v string) {
m.Set(field.NewIssuer(v))
}
//SetSecurityDesc sets SecurityDesc, Tag 107
func (m NewOrderSingle) SetSecurityDesc(v string) {
m.Set(field.NewSecurityDesc(v))
}
//SetClientID sets ClientID, Tag 109
func (m NewOrderSingle) SetClientID(v string) {
m.Set(field.NewClientID(v))
}
//SetMinQty sets MinQty, Tag 110
func (m NewOrderSingle) SetMinQty(value decimal.Decimal, scale int32) {
m.Set(field.NewMinQty(value, scale))
}
//SetMaxFloor sets MaxFloor, Tag 111
func (m NewOrderSingle) SetMaxFloor(value decimal.Decimal, scale int32) {
m.Set(field.NewMaxFloor(value, scale))
}
//SetLocateReqd sets LocateReqd, Tag 114
func (m NewOrderSingle) SetLocateReqd(v bool) {
m.Set(field.NewLocateReqd(v))
}
//SetQuoteID sets QuoteID, Tag 117
func (m NewOrderSingle) SetQuoteID(v string) {
m.Set(field.NewQuoteID(v))
}
//SetSettlCurrency sets SettlCurrency, Tag 120
func (m NewOrderSingle) SetSettlCurrency(v string) {
m.Set(field.NewSettlCurrency(v))
}
//SetForexReq sets ForexReq, Tag 121
func (m NewOrderSingle) SetForexReq(v bool) {
m.Set(field.NewForexReq(v))
}
//SetExpireTime sets ExpireTime, Tag 126
func (m NewOrderSingle) SetExpireTime(v time.Time) {
m.Set(field.NewExpireTime(v))
}
//SetPrevClosePx sets PrevClosePx, Tag 140
func (m NewOrderSingle) SetPrevClosePx(value decimal.Decimal, scale int32) {
m.Set(field.NewPrevClosePx(value, scale))
}
//GetAccount gets Account, Tag 1
func (m NewOrderSingle) GetAccount() (v string, err quickfix.MessageRejectError) {
var f field.AccountField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetClOrdID gets ClOrdID, Tag 11
func (m NewOrderSingle) GetClOrdID() (v string, err quickfix.MessageRejectError) {
var f field.ClOrdIDField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetCommission gets Commission, Tag 12
func (m NewOrderSingle) GetCommission() (v decimal.Decimal, err quickfix.MessageRejectError) {
var f field.CommissionField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetCommType gets CommType, Tag 13
func (m NewOrderSingle) GetCommType() (v enum.CommType, err quickfix.MessageRejectError) {
var f field.CommTypeField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetCurrency gets Currency, Tag 15
func (m NewOrderSingle) GetCurrency() (v string, err quickfix.MessageRejectError) {
var f field.CurrencyField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetExecInst gets ExecInst, Tag 18
func (m NewOrderSingle) GetExecInst() (v enum.ExecInst, err quickfix.MessageRejectError) {
var f field.ExecInstField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetHandlInst gets HandlInst, Tag 21
func (m NewOrderSingle) GetHandlInst() (v enum.HandlInst, err quickfix.MessageRejectError) {
var f field.HandlInstField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetIDSource gets IDSource, Tag 22
func (m NewOrderSingle) GetIDSource() (v enum.IDSource, err quickfix.MessageRejectError) {
var f field.IDSourceField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetIOIid gets IOIid, Tag 23
func (m NewOrderSingle) GetIOIid() (v string, err quickfix.MessageRejectError) {
var f field.IOIidField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetOrderQty gets OrderQty, Tag 38
func (m NewOrderSingle) GetOrderQty() (v decimal.Decimal, err quickfix.MessageRejectError) {
var f field.OrderQtyField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetOrdType gets OrdType, Tag 40
func (m NewOrderSingle) GetOrdType() (v enum.OrdType, err quickfix.MessageRejectError) {
var f field.OrdTypeField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetPrice gets Price, Tag 44
func (m NewOrderSingle) GetPrice() (v decimal.Decimal, err quickfix.MessageRejectError) {
var f field.PriceField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetRule80A gets Rule80A, Tag 47
func (m NewOrderSingle) GetRule80A() (v enum.Rule80A, err quickfix.MessageRejectError) {
var f field.Rule80AField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetSecurityID gets SecurityID, Tag 48
func (m NewOrderSingle) GetSecurityID() (v string, err quickfix.MessageRejectError) {
var f field.SecurityIDField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetSide gets Side, Tag 54
func (m NewOrderSingle) GetSide() (v enum.Side, err quickfix.MessageRejectError) {
var f field.SideField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetSymbol gets Symbol, Tag 55
func (m NewOrderSingle) GetSymbol() (v string, err quickfix.MessageRejectError) {
var f field.SymbolField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetText gets Text, Tag 58
func (m NewOrderSingle) GetText() (v string, err quickfix.MessageRejectError) {
var f field.TextField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetTimeInForce gets TimeInForce, Tag 59
func (m NewOrderSingle) GetTimeInForce() (v enum.TimeInForce, err quickfix.MessageRejectError) {
var f field.TimeInForceField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetSettlmntTyp gets SettlmntTyp, Tag 63
func (m NewOrderSingle) GetSettlmntTyp() (v enum.SettlmntTyp, err quickfix.MessageRejectError) {
var f field.SettlmntTypField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetFutSettDate gets FutSettDate, Tag 64
func (m NewOrderSingle) GetFutSettDate() (v string, err quickfix.MessageRejectError) {
var f field.FutSettDateField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetSymbolSfx gets SymbolSfx, Tag 65
func (m NewOrderSingle) GetSymbolSfx() (v enum.SymbolSfx, err quickfix.MessageRejectError) {
var f field.SymbolSfxField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetExecBroker gets ExecBroker, Tag 76
func (m NewOrderSingle) GetExecBroker() (v string, err quickfix.MessageRejectError) {
var f field.ExecBrokerField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetProcessCode gets ProcessCode, Tag 81
func (m NewOrderSingle) GetProcessCode() (v enum.ProcessCode, err quickfix.MessageRejectError) {
var f field.ProcessCodeField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetStopPx gets StopPx, Tag 99
func (m NewOrderSingle) GetStopPx() (v decimal.Decimal, err quickfix.MessageRejectError) {
var f field.StopPxField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetExDestination gets ExDestination, Tag 100
func (m NewOrderSingle) GetExDestination() (v enum.ExDestination, err quickfix.MessageRejectError) {
var f field.ExDestinationField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetIssuer gets Issuer, Tag 106
func (m NewOrderSingle) GetIssuer() (v string, err quickfix.MessageRejectError) {
var f field.IssuerField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetSecurityDesc gets SecurityDesc, Tag 107
func (m NewOrderSingle) GetSecurityDesc() (v string, err quickfix.MessageRejectError) {
var f field.SecurityDescField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetClientID gets ClientID, Tag 109
func (m NewOrderSingle) GetClientID() (v string, err quickfix.MessageRejectError) {
var f field.ClientIDField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetMinQty gets MinQty, Tag 110
func (m NewOrderSingle) GetMinQty() (v decimal.Decimal, err quickfix.MessageRejectError) {
var f field.MinQtyField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetMaxFloor gets MaxFloor, Tag 111
func (m NewOrderSingle) GetMaxFloor() (v decimal.Decimal, err quickfix.MessageRejectError) {
var f field.MaxFloorField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetLocateReqd gets LocateReqd, Tag 114
func (m NewOrderSingle) GetLocateReqd() (v bool, err quickfix.MessageRejectError) {
var f field.LocateReqdField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetQuoteID gets QuoteID, Tag 117
func (m NewOrderSingle) GetQuoteID() (v string, err quickfix.MessageRejectError) {
var f field.QuoteIDField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetSettlCurrency gets SettlCurrency, Tag 120
func (m NewOrderSingle) GetSettlCurrency() (v string, err quickfix.MessageRejectError) {
var f field.SettlCurrencyField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetForexReq gets ForexReq, Tag 121
func (m NewOrderSingle) GetForexReq() (v bool, err quickfix.MessageRejectError) {
var f field.ForexReqField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetExpireTime gets ExpireTime, Tag 126
func (m NewOrderSingle) GetExpireTime() (v time.Time, err quickfix.MessageRejectError) {
var f field.ExpireTimeField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//GetPrevClosePx gets PrevClosePx, Tag 140
func (m NewOrderSingle) GetPrevClosePx() (v decimal.Decimal, err quickfix.MessageRejectError) {
var f field.PrevClosePxField
if err = m.Get(&f); err == nil {
v = f.Value()
}
return
}
//HasAccount returns true if Account is present, Tag 1
func (m NewOrderSingle) HasAccount() bool {
return m.Has(tag.Account)
}
//HasClOrdID returns true if ClOrdID is present, Tag 11
func (m NewOrderSingle) HasClOrdID() bool {
return m.Has(tag.ClOrdID)
}
//HasCommission returns true if Commission is present, Tag 12
func (m NewOrderSingle) HasCommission() bool {
return m.Has(tag.Commission)
}
//HasCommType returns true if CommType is present, Tag 13
func (m NewOrderSingle) HasCommType() bool {
return m.Has(tag.CommType)
}
//HasCurrency returns true if Currency is present, Tag 15
func (m NewOrderSingle) HasCurrency() bool {
return m.Has(tag.Currency)
}
//HasExecInst returns true if ExecInst is present, Tag 18
func (m NewOrderSingle) HasExecInst() bool {
return m.Has(tag.ExecInst)
}
//HasHandlInst returns true if HandlInst is present, Tag 21
func (m NewOrderSingle) HasHandlInst() bool {
return m.Has(tag.HandlInst)
}
//HasIDSource returns true if IDSource is present, Tag 22
func (m NewOrderSingle) HasIDSource() bool {
return m.Has(tag.IDSource)
}
//HasIOIid returns true if IOIid is present, Tag 23
func (m NewOrderSingle) HasIOIid() bool {
return m.Has(tag.IOIid)
}
//HasOrderQty returns true if OrderQty is present, Tag 38
func (m NewOrderSingle) HasOrderQty() bool {
return m.Has(tag.OrderQty)
}
//HasOrdType returns true if OrdType is present, Tag 40
func (m NewOrderSingle) HasOrdType() bool {
return m.Has(tag.OrdType)
}
//HasPrice returns true if Price is present, Tag 44
func (m NewOrderSingle) HasPrice() bool {
return m.Has(tag.Price)
}
//HasRule80A returns true if Rule80A is present, Tag 47
func (m NewOrderSingle) HasRule80A() bool {
return m.Has(tag.Rule80A)
}
//HasSecurityID returns true if SecurityID is present, Tag 48
func (m NewOrderSingle) HasSecurityID() bool {
return m.Has(tag.SecurityID)
}
//HasSide returns true if Side is present, Tag 54
func (m NewOrderSingle) HasSide() bool {
return m.Has(tag.Side)
}
//HasSymbol returns true if Symbol is present, Tag 55
func (m NewOrderSingle) HasSymbol() bool {
return m.Has(tag.Symbol)
}
//HasText returns true if Text is present, Tag 58
func (m NewOrderSingle) HasText() bool {
return m.Has(tag.Text)
}
//HasTimeInForce returns true if TimeInForce is present, Tag 59
func (m NewOrderSingle) HasTimeInForce() bool {
return m.Has(tag.TimeInForce)
}
//HasSettlmntTyp returns true if SettlmntTyp is present, Tag 63
func (m NewOrderSingle) HasSettlmntTyp() bool {
return m.Has(tag.SettlmntTyp)
}
//HasFutSettDate returns true if FutSettDate is present, Tag 64
func (m NewOrderSingle) HasFutSettDate() bool {
return m.Has(tag.FutSettDate)
}
//HasSymbolSfx returns true if SymbolSfx is present, Tag 65
func (m NewOrderSingle) HasSymbolSfx() bool {
return m.Has(tag.SymbolSfx)
}
//HasExecBroker returns true if ExecBroker is present, Tag 76
func (m NewOrderSingle) HasExecBroker() bool {
return m.Has(tag.ExecBroker)
}
//HasProcessCode returns true if ProcessCode is present, Tag 81
func (m NewOrderSingle) HasProcessCode() bool {
return m.Has(tag.ProcessCode)
}
//HasStopPx returns true if StopPx is present, Tag 99
func (m NewOrderSingle) HasStopPx() bool {
return m.Has(tag.StopPx)
}
//HasExDestination returns true if ExDestination is present, Tag 100
func (m NewOrderSingle) HasExDestination() bool {
return m.Has(tag.ExDestination)
}
//HasIssuer returns true if Issuer is present, Tag 106
func (m NewOrderSingle) HasIssuer() bool {
return m.Has(tag.Issuer)
}
//HasSecurityDesc returns true if SecurityDesc is present, Tag 107
func (m NewOrderSingle) HasSecurityDesc() bool {
return m.Has(tag.SecurityDesc)
}
//HasClientID returns true if ClientID is present, Tag 109
func (m NewOrderSingle) HasClientID() bool {
return m.Has(tag.ClientID)
}
//HasMinQty returns true if MinQty is present, Tag 110
func (m NewOrderSingle) HasMinQty() bool {
return m.Has(tag.MinQty)
}
//HasMaxFloor returns true if MaxFloor is present, Tag 111
func (m NewOrderSingle) HasMaxFloor() bool {
return m.Has(tag.MaxFloor)
}
//HasLocateReqd returns true if LocateReqd is present, Tag 114
func (m NewOrderSingle) HasLocateReqd() bool {
return m.Has(tag.LocateReqd)
}
//HasQuoteID returns true if QuoteID is present, Tag 117
func (m NewOrderSingle) HasQuoteID() bool {
return m.Has(tag.QuoteID)
}
//HasSettlCurrency returns true if SettlCurrency is present, Tag 120
func (m NewOrderSingle) HasSettlCurrency() bool {
return m.Has(tag.SettlCurrency)
}
//HasForexReq returns true if ForexReq is present, Tag 121
func (m NewOrderSingle) HasForexReq() bool {
return m.Has(tag.ForexReq)
}
//HasExpireTime returns true if ExpireTime is present, Tag 126
func (m NewOrderSingle) HasExpireTime() bool {
return m.Has(tag.ExpireTime)
}
//HasPrevClosePx returns true if PrevClosePx is present, Tag 140
func (m NewOrderSingle) HasPrevClosePx() bool {
return m.Has(tag.PrevClosePx)
}