как получить значение от повторяющейся группы в quickfixj - PullRequest
0 голосов
/ 06 мая 2020
• 1000 является одним из членов группы
 <group name='NoMDEntries' required='Y'>
                <field name='MDEntryType' required='Y' />
                <field name='MDEntryPx' required='N' />
                <field name='Currency' required='N' />
                <field name='MDEntrySize' required='N' />
                <field name='MDEntryDate' required='N' />
                <field name='MDEntryTime' required='N' />

Я попытался использовать

double price = message.getDouble(MDEntryPx.FIELD);
         String priceAsString = String.valueOf(price);

, но я не могу получить значение этой цены. так как же получить эту цену от повторяющейся группы?

Ответы [ 2 ]

1 голос
/ 06 мая 2020

Похоже, вы никогда не читали документацию о повторяющихся группах.

https://quickfixj.org/usermanual/2.1.0/usage/repeating_groups.html

0 голосов
/ 06 мая 2020

Вы можете использовать StringTokenizer для разделения тегов FIX, а затем функцию разделения, чтобы получить пару тегов имя-значение, так что из этого вы можете получить требуемый тег 270 или любой тег.

public static void ParseFixString() {


    String fixString = "8=FIX.4.4^A9=198^A35=W^A34=4^A49=OZ_UAT_Q^A52=20200506-02:35:16.521^A56=DXTR_UAT_Q^A55=XAUUSD^A262=eYZDMS^A268=2^A269=0^A270=82.18^A271=1000000^A276=A^A282=FD1^A299=78781576^A269=1^A270=82.38^A271=1000000^A276=A^A282=FD1^A299=78781577^A10=035^A";
    String sDelimeter = "^A";
    StringTokenizer mytoken = new   StringTokenizer(fixString,sDelimeter);
    String sTag=null;

    while (mytoken.hasMoreTokens()) {  
         sTag = mytoken.nextToken();  

         if(sTag!=null) {
             String[] aTag =  sTag.split("=");
             if(aTag!=null && aTag.length==2) {

                 //you can put your required  tag comparison here...

                System.out.println("Tag =" + aTag[0] + "   Value=" + aTag[1]);
             }
         }
         //System.out.println(mytoken);

     }  
}
...