//Builder returns an initialized MessageBuilder with specified required fields for ExecutionReport.
func Builder(
	orderid *field.OrderIDField,
	execid *field.ExecIDField,
	exectranstype *field.ExecTransTypeField,
	ordstatus *field.OrdStatusField,
	symbol *field.SymbolField,
	side *field.SideField,
	orderqty *field.OrderQtyField,
	lastshares *field.LastSharesField,
	lastpx *field.LastPxField,
	cumqty *field.CumQtyField,
	avgpx *field.AvgPxField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIX40))
	builder.Header().Set(field.NewMsgType("8"))
	builder.Body().Set(orderid)
	builder.Body().Set(execid)
	builder.Body().Set(exectranstype)
	builder.Body().Set(ordstatus)
	builder.Body().Set(symbol)
	builder.Body().Set(side)
	builder.Body().Set(orderqty)
	builder.Body().Set(lastshares)
	builder.Body().Set(lastpx)
	builder.Body().Set(cumqty)
	builder.Body().Set(avgpx)
	return builder
}
Example #2
0
//Builder returns an initialized MessageBuilder with specified required fields for NewOrderList.
func Builder(
	listid *field.ListIDField,
	listseqno *field.ListSeqNoField,
	listnoords *field.ListNoOrdsField,
	clordid *field.ClOrdIDField,
	handlinst *field.HandlInstField,
	symbol *field.SymbolField,
	side *field.SideField,
	orderqty *field.OrderQtyField,
	ordtype *field.OrdTypeField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIX40))
	builder.Header().Set(field.NewMsgType("E"))
	builder.Body().Set(listid)
	builder.Body().Set(listseqno)
	builder.Body().Set(listnoords)
	builder.Body().Set(clordid)
	builder.Body().Set(handlinst)
	builder.Body().Set(symbol)
	builder.Body().Set(side)
	builder.Body().Set(orderqty)
	builder.Body().Set(ordtype)
	return builder
}
Example #3
0
//Builder returns an initialized MessageBuilder with specified required fields for Allocation.
func Builder(
	allocid *field.AllocIDField,
	alloctranstype *field.AllocTransTypeField,
	noorders *field.NoOrdersField,
	side *field.SideField,
	symbol *field.SymbolField,
	shares *field.SharesField,
	avgpx *field.AvgPxField,
	tradedate *field.TradeDateField,
	noallocs *field.NoAllocsField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIX40))
	builder.Header().Set(field.NewMsgType("J"))
	builder.Body().Set(allocid)
	builder.Body().Set(alloctranstype)
	builder.Body().Set(noorders)
	builder.Body().Set(side)
	builder.Body().Set(symbol)
	builder.Body().Set(shares)
	builder.Body().Set(avgpx)
	builder.Body().Set(tradedate)
	builder.Body().Set(noallocs)
	return builder
}
//Builder returns an initialized MessageBuilder with specified required fields for AssignmentReport.
func Builder(
	asgnrptid *field.AsgnRptIDField,
	accounttype *field.AccountTypeField,
	settlprice *field.SettlPriceField,
	settlpricetype *field.SettlPriceTypeField,
	underlyingsettlprice *field.UnderlyingSettlPriceField,
	assignmentmethod *field.AssignmentMethodField,
	openinterest *field.OpenInterestField,
	exercisemethod *field.ExerciseMethodField,
	settlsessid *field.SettlSessIDField,
	settlsesssubid *field.SettlSessSubIDField,
	clearingbusinessdate *field.ClearingBusinessDateField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIX44))
	builder.Header().Set(field.NewMsgType("AW"))
	builder.Body().Set(asgnrptid)
	builder.Body().Set(accounttype)
	builder.Body().Set(settlprice)
	builder.Body().Set(settlpricetype)
	builder.Body().Set(underlyingsettlprice)
	builder.Body().Set(assignmentmethod)
	builder.Body().Set(openinterest)
	builder.Body().Set(exercisemethod)
	builder.Body().Set(settlsessid)
	builder.Body().Set(settlsesssubid)
	builder.Body().Set(clearingbusinessdate)
	return builder
}
Example #5
0
//Builder returns an initialized MessageBuilder with specified required fields for Heartbeat.
func Builder() MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIX40))
	builder.Header().Set(field.NewMsgType("0"))
	return builder
}
Example #6
0
func (state inSession) Timeout(session *Session, event event) (nextState sessionState) {
	switch event {
	case needHeartbeat:
		heartBt := NewMessageBuilder()
		heartBt.Header().Set(field.NewMsgType("0"))
		session.send(heartBt)
	case peerTimeout:
		testReq := NewMessageBuilder()
		testReq.Header().Set(field.NewMsgType("1"))
		testReq.Body().Set(field.NewTestReqID("TEST"))
		session.send(testReq)
		session.peerTimer.Reset(time.Duration(int64(1.2 * float64(session.heartBeatTimeout))))
		return pendingTimeout{}
	}
	return state
}
//Builder returns an initialized MessageBuilder with specified required fields for PositionMaintenanceReport.
func Builder(
	posmaintrptid *field.PosMaintRptIDField,
	postranstype *field.PosTransTypeField,
	posmaintaction *field.PosMaintActionField,
	origposreqrefid *field.OrigPosReqRefIDField,
	posmaintstatus *field.PosMaintStatusField,
	clearingbusinessdate *field.ClearingBusinessDateField,
	account *field.AccountField,
	accounttype *field.AccountTypeField,
	transacttime *field.TransactTimeField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIX44))
	builder.Header().Set(field.NewMsgType("AM"))
	builder.Body().Set(posmaintrptid)
	builder.Body().Set(postranstype)
	builder.Body().Set(posmaintaction)
	builder.Body().Set(origposreqrefid)
	builder.Body().Set(posmaintstatus)
	builder.Body().Set(clearingbusinessdate)
	builder.Body().Set(account)
	builder.Body().Set(accounttype)
	builder.Body().Set(transacttime)
	return builder
}
Example #8
0
//Builder returns an initialized MessageBuilder with specified required fields for SecurityList.
func Builder() MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIXT11))
	builder.Header().Set(field.NewDefaultApplVerID(enum.ApplVerID_FIX50SP2))
	builder.Header().Set(field.NewMsgType("y"))
	return builder
}
Example #9
0
func (s *Session) doReject(msg Message, rej MessageRejectError) {
	reply := msg.reverseRoute()

	if s.sessionID.BeginString >= fix.BeginString_FIX42 {

		if rej.IsBusinessReject() {
			reply.Header().Set(field.NewMsgType("j"))
			reply.Body().Set(field.NewBusinessRejectReason(int(rej.RejectReason())))
		} else {
			reply.Header().Set(field.NewMsgType("3"))
			switch {
			default:
				reply.Body().Set(field.NewSessionRejectReason(int(rej.RejectReason())))
			case rej.RejectReason() > rejectReasonInvalidMsgType && s.sessionID.BeginString == fix.BeginString_FIX42:
				//fix42 knows up to invalid msg type
			}
		}
		reply.Body().Set(field.NewText(rej.Error()))

		var msgType field.MsgTypeField
		if err := msg.Header.Get(&msgType); err == nil {
			reply.Body().Set(field.NewRefMsgType(msgType.Value))
		}

		if refTagID := rej.RefTagID(); refTagID != nil {
			reply.Body().Set(field.NewRefTagID(int(*refTagID)))
		}
	} else {
		reply.Header().Set(field.NewMsgType("3"))

		if refTagID := rej.RefTagID(); refTagID != nil {
			reply.Body().Set(field.NewText(fmt.Sprintf("%s (%d)", rej.Error(), *refTagID)))
		} else {
			reply.Body().Set(field.NewText(rej.Error()))
		}
	}

	var seqNum field.MsgSeqNumField
	if err := msg.Header.Get(&seqNum); err == nil {
		reply.Body().Set(field.NewRefSeqNum(seqNum.Value))
	}

	s.send(reply)
	s.log.OnEventf("Message Rejected: %v", rej.Error())
}
//Builder returns an initialized MessageBuilder with specified required fields for QuoteAcknowledgement.
func Builder(
	quoteackstatus *field.QuoteAckStatusField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIX42))
	builder.Header().Set(field.NewMsgType("b"))
	builder.Body().Set(quoteackstatus)
	return builder
}
Example #11
0
//Builder returns an initialized MessageBuilder with specified required fields for SecurityStatus.
func Builder(
	symbol *field.SymbolField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIX42))
	builder.Header().Set(field.NewMsgType("f"))
	builder.Body().Set(symbol)
	return builder
}
Example #12
0
//Builder returns an initialized MessageBuilder with specified required fields for BidResponse.
func Builder(
	nobidcomponents *field.NoBidComponentsField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIX44))
	builder.Header().Set(field.NewMsgType("l"))
	builder.Body().Set(nobidcomponents)
	return builder
}
Example #13
0
//Builder returns an initialized MessageBuilder with specified required fields for Quote.
func Builder(
	quoteid *field.QuoteIDField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIX43))
	builder.Header().Set(field.NewMsgType("S"))
	builder.Body().Set(quoteid)
	return builder
}
//Builder returns an initialized MessageBuilder with specified required fields for ListStatusRequest.
func Builder(
	listid *field.ListIDField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIX41))
	builder.Header().Set(field.NewMsgType("M"))
	builder.Body().Set(listid)
	return builder
}
Example #15
0
//Builder returns an initialized MessageBuilder with specified required fields for SequenceReset.
func Builder(
	newseqno *field.NewSeqNoField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIX43))
	builder.Header().Set(field.NewMsgType("4"))
	builder.Body().Set(newseqno)
	return builder
}
//Builder returns an initialized MessageBuilder with specified required fields for MarketDataRequestReject.
func Builder(
	mdreqid *field.MDReqIDField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIX44))
	builder.Header().Set(field.NewMsgType("Y"))
	builder.Body().Set(mdreqid)
	return builder
}
Example #17
0
//Builder returns an initialized MessageBuilder with specified required fields for Reject.
func Builder(
	refseqnum *field.RefSeqNumField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIX42))
	builder.Header().Set(field.NewMsgType("3"))
	builder.Body().Set(refseqnum)
	return builder
}
Example #18
0
//Builder returns an initialized MessageBuilder with specified required fields for TestRequest.
func Builder(
	testreqid *field.TestReqIDField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIXT11))
	builder.Header().Set(field.NewMsgType("1"))
	builder.Body().Set(testreqid)
	return builder
}
//Builder returns an initialized MessageBuilder with specified required fields for MarketDataIncrementalRefresh.
func Builder(
	nomdentries *field.NoMDEntriesField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIX43))
	builder.Header().Set(field.NewMsgType("X"))
	builder.Body().Set(nomdentries)
	return builder
}
//Builder returns an initialized MessageBuilder with specified required fields for SecurityTypeRequest.
func Builder(
	securityreqid *field.SecurityReqIDField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIX43))
	builder.Header().Set(field.NewMsgType("v"))
	builder.Body().Set(securityreqid)
	return builder
}
//Builder returns an initialized MessageBuilder with specified required fields for OrderStatusRequest.
func Builder(
	side *field.SideField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIXT11))
	builder.Header().Set(field.NewDefaultApplVerID(enum.ApplVerID_FIX50SP1))
	builder.Header().Set(field.NewMsgType("H"))
	builder.Body().Set(side)
	return builder
}
Example #22
0
//Builder returns an initialized MessageBuilder with specified required fields for QuoteCancel.
func Builder(
	quotecanceltype *field.QuoteCancelTypeField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIXT11))
	builder.Header().Set(field.NewDefaultApplVerID(enum.ApplVerID_FIX50SP1))
	builder.Header().Set(field.NewMsgType("Z"))
	builder.Body().Set(quotecanceltype)
	return builder
}
//Builder returns an initialized MessageBuilder with specified required fields for MassQuoteAcknowledgement.
func Builder(
	quotestatus *field.QuoteStatusField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIXT11))
	builder.Header().Set(field.NewDefaultApplVerID(enum.ApplVerID_FIX50))
	builder.Header().Set(field.NewMsgType("b"))
	builder.Body().Set(quotestatus)
	return builder
}
//Builder returns an initialized MessageBuilder with specified required fields for MarketDataSnapshotFullRefresh.
func Builder(
	nomdentries *field.NoMDEntriesField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIXT11))
	builder.Header().Set(field.NewDefaultApplVerID(enum.ApplVerID_FIX50))
	builder.Header().Set(field.NewMsgType("W"))
	builder.Body().Set(nomdentries)
	return builder
}
Example #25
0
//Builder returns an initialized MessageBuilder with specified required fields for BidResponse.
func Builder(
	nobidcomponents *field.NoBidComponentsField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIXT11))
	builder.Header().Set(field.NewDefaultApplVerID(enum.ApplVerID_FIX50))
	builder.Header().Set(field.NewMsgType("l"))
	builder.Body().Set(nobidcomponents)
	return builder
}
//Builder returns an initialized MessageBuilder with specified required fields for ListStatusRequest.
func Builder(
	listid *field.ListIDField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIXT11))
	builder.Header().Set(field.NewDefaultApplVerID(enum.ApplVerID_FIX50SP2))
	builder.Header().Set(field.NewMsgType("M"))
	builder.Body().Set(listid)
	return builder
}
//Builder returns an initialized MessageBuilder with specified required fields for ApplicationMessageRequestAck.
func Builder(
	applresponseid *field.ApplResponseIDField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIXT11))
	builder.Header().Set(field.NewDefaultApplVerID(enum.ApplVerID_FIX50SP1))
	builder.Header().Set(field.NewMsgType("BX"))
	builder.Body().Set(applresponseid)
	return builder
}
//Builder returns an initialized MessageBuilder with specified required fields for StreamAssignmentReport.
func Builder(
	streamasgnrptid *field.StreamAsgnRptIDField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIXT11))
	builder.Header().Set(field.NewDefaultApplVerID(enum.ApplVerID_FIX50SP2))
	builder.Header().Set(field.NewMsgType("CD"))
	builder.Body().Set(streamasgnrptid)
	return builder
}
//Builder returns an initialized MessageBuilder with specified required fields for TradingSessionList.
func Builder(
	notradingsessions *field.NoTradingSessionsField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIXT11))
	builder.Header().Set(field.NewDefaultApplVerID(enum.ApplVerID_FIX50SP2))
	builder.Header().Set(field.NewMsgType("BJ"))
	builder.Body().Set(notradingsessions)
	return builder
}
//Builder returns an initialized MessageBuilder with specified required fields for MarketDataRequestReject.
func Builder(
	mdreqid *field.MDReqIDField) MessageBuilder {
	var builder MessageBuilder
	builder.MessageBuilder = quickfix.NewMessageBuilder()
	builder.Header().Set(field.NewBeginString(fix.BeginString_FIXT11))
	builder.Header().Set(field.NewDefaultApplVerID(enum.ApplVerID_FIX50))
	builder.Header().Set(field.NewMsgType("Y"))
	builder.Body().Set(mdreqid)
	return builder
}