@@ -21,6 +21,13 @@ import (
2121 fix44nos "github.com/quickfixgo/quickfix/fix44/newordersingle"
2222 fix50nos "github.com/quickfixgo/quickfix/fix50/newordersingle"
2323
24+ fix42mdr "github.com/quickfixgo/quickfix/fix42/marketdatarequest"
25+ fix43mdr "github.com/quickfixgo/quickfix/fix43/marketdatarequest"
26+ fix44mdr "github.com/quickfixgo/quickfix/fix44/marketdatarequest"
27+ "github.com/quickfixgo/quickfix/fix50/instrmtmdreqgrp"
28+ fix50mdr "github.com/quickfixgo/quickfix/fix50/marketdatarequest"
29+ "github.com/quickfixgo/quickfix/fix50/mdreqgrp"
30+
2431 "os"
2532 "strconv"
2633 "strings"
@@ -31,6 +38,8 @@ func queryAction() (string, error) {
3138 fmt .Println ()
3239 fmt .Println ("1) Enter Order" )
3340 fmt .Println ("2) Cancel Order" )
41+ fmt .Println ("3) Request Market Test" )
42+ fmt .Println ("4) Quit" )
3443 fmt .Print ("Action: " )
3544 scanner := bufio .NewScanner (os .Stdin )
3645 scanner .Scan ()
@@ -854,6 +863,74 @@ func queryOrderCancelRequest50() (msg quickfix.Message, err error) {
854863 queryHeader (msg .Header )
855864 return
856865}
866+ func queryMarketDataRequest42 () (msg quickfix.Message , err error ) {
867+ request := fix42mdr.Message {
868+ MDReqID : "MARKETDATAID" ,
869+ SubscriptionRequestType : enum .SubscriptionRequestType_SNAPSHOT ,
870+ MarketDepth : 0 ,
871+ NoMDEntryTypes : []fix42mdr.NoMDEntryTypes {fix42mdr.NoMDEntryTypes {MDEntryType : enum .MDEntryType_BID }},
872+ NoRelatedSym : []fix42mdr.NoRelatedSym {fix42mdr.NoRelatedSym {Symbol : "LNUX" }},
873+ }
874+
875+ msg = request .Marshal ()
876+ queryHeader (msg .Header )
877+ return
878+ }
879+
880+ func queryMarketDataRequest43 () (msg quickfix.Message , err error ) {
881+ request := fix43mdr.Message {
882+ MDReqID : "MARKETDATAID" ,
883+ SubscriptionRequestType : enum .SubscriptionRequestType_SNAPSHOT ,
884+ MarketDepth : 0 ,
885+ NoMDEntryTypes : []fix43mdr.NoMDEntryTypes {fix43mdr.NoMDEntryTypes {MDEntryType : enum .MDEntryType_BID }},
886+ }
887+
888+ symbol := "LNUX"
889+ var relatedSym fix43mdr.NoRelatedSym
890+ relatedSym .Instrument .Symbol = & symbol
891+ request .NoRelatedSym = []fix43mdr.NoRelatedSym {relatedSym }
892+
893+ msg = request .Marshal ()
894+ queryHeader (msg .Header )
895+ return
896+ }
897+
898+ func queryMarketDataRequest44 () (msg quickfix.Message , err error ) {
899+ request := fix44mdr.Message {
900+ MDReqID : "MARKETDATAID" ,
901+ SubscriptionRequestType : enum .SubscriptionRequestType_SNAPSHOT ,
902+ MarketDepth : 0 ,
903+ NoMDEntryTypes : []fix44mdr.NoMDEntryTypes {fix44mdr.NoMDEntryTypes {MDEntryType : enum .MDEntryType_BID }},
904+ }
905+
906+ symbol := "LNUX"
907+ var relatedSym fix44mdr.NoRelatedSym
908+ relatedSym .Instrument .Symbol = & symbol
909+ request .NoRelatedSym = []fix44mdr.NoRelatedSym {relatedSym }
910+
911+ msg = request .Marshal ()
912+ queryHeader (msg .Header )
913+ return
914+ }
915+
916+ func queryMarketDataRequest50 () (msg quickfix.Message , err error ) {
917+ request := fix50mdr.Message {
918+ MDReqID : "MARKETDATAID" ,
919+ SubscriptionRequestType : enum .SubscriptionRequestType_SNAPSHOT ,
920+ MarketDepth : 0 ,
921+ }
922+
923+ request .MDReqGrp .NoMDEntryTypes = []mdreqgrp.NoMDEntryTypes {mdreqgrp.NoMDEntryTypes {enum .MDEntryType_BID }}
924+
925+ symbol := "LNUX"
926+ var relatedSym instrmtmdreqgrp.NoRelatedSym
927+ relatedSym .Instrument .Symbol = & symbol
928+ request .InstrmtMDReqGrp .NoRelatedSym = []instrmtmdreqgrp.NoRelatedSym {relatedSym }
929+
930+ msg = request .Marshal ()
931+ queryHeader (msg .Header )
932+ return
933+ }
857934
858935func queryEnterOrder () error {
859936 beginString , err := queryVersion ()
@@ -929,3 +1006,38 @@ func queryCancelOrder() error {
9291006
9301007 return nil
9311008}
1009+
1010+ func queryMarketDataRequest () error {
1011+ beginString , err := queryVersion ()
1012+ if err != nil {
1013+ return err
1014+ }
1015+
1016+ var req quickfix.Message
1017+ switch beginString {
1018+ case enum .BeginStringFIX42 :
1019+ req , err = queryMarketDataRequest42 ()
1020+
1021+ case enum .BeginStringFIX43 :
1022+ req , err = queryMarketDataRequest43 ()
1023+
1024+ case enum .BeginStringFIX44 :
1025+ req , err = queryMarketDataRequest44 ()
1026+
1027+ case enum .BeginStringFIXT11 :
1028+ req , err = queryMarketDataRequest50 ()
1029+
1030+ default :
1031+ return fmt .Errorf ("No test for version %v" , beginString )
1032+ }
1033+
1034+ if err != nil {
1035+ return err
1036+ }
1037+
1038+ if queryConfirm ("Send MarketDataRequest" ) {
1039+ return quickfix .Send (req )
1040+ }
1041+
1042+ return nil
1043+ }
0 commit comments