@@ -21,6 +21,13 @@ import (
21
21
fix44nos "github.com/quickfixgo/quickfix/fix44/newordersingle"
22
22
fix50nos "github.com/quickfixgo/quickfix/fix50/newordersingle"
23
23
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
+
24
31
"os"
25
32
"strconv"
26
33
"strings"
@@ -31,6 +38,8 @@ func queryAction() (string, error) {
31
38
fmt .Println ()
32
39
fmt .Println ("1) Enter Order" )
33
40
fmt .Println ("2) Cancel Order" )
41
+ fmt .Println ("3) Request Market Test" )
42
+ fmt .Println ("4) Quit" )
34
43
fmt .Print ("Action: " )
35
44
scanner := bufio .NewScanner (os .Stdin )
36
45
scanner .Scan ()
@@ -854,6 +863,74 @@ func queryOrderCancelRequest50() (msg quickfix.Message, err error) {
854
863
queryHeader (msg .Header )
855
864
return
856
865
}
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
+ }
857
934
858
935
func queryEnterOrder () error {
859
936
beginString , err := queryVersion ()
@@ -929,3 +1006,38 @@ func queryCancelOrder() error {
929
1006
930
1007
return nil
931
1008
}
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