Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Tag number to Name string

In QuickFix, how can I get the name of the tag from the tag number using Python? For example, for OrdStatus, how do I convert tag number 5 to the String "OrdStatus_CANCELED"?

like image 555
user3092887 Avatar asked Mar 16 '26 12:03

user3092887


1 Answers

.NET:

If you are using QuickFIX/N, you can achieve this using a DataDictionary instance with whatever data source you want (e.g., FIX42.xml). Note that you can get the DataDictionary instance associated with a given Session or the application itself with Session's properties SessionDataDictionary and ApplicationDataDictionary, respectively.

Consider this trivial C# program:

namespace QuickFixTests
{
    using System;

    using QuickFix;
    using QuickFix.DataDictionary;
    using QuickFix.Fields;

    class Program
    {
        static void Main(string[] args)
        {
            var qfm = new Message();
            qfm.SetField(new OrdStatus('4'));
            var ordStatus = qfm.GetField(Tags.OrdStatus);
            var dd = new DataDictionary("FIX42.xml");
            Console.WriteLine(dd.FieldsByTag[39].EnumDict[ordStatus]); // Prints CANCELED
        }
    }
}

C++/Python:

The C++ DataDictionary class has a method getValueName:

bool getValueName( int field, const std::string& value, std::string& name ) const
{
  ValueToName::const_iterator i = m_valueNames.find( std::make_pair(field, value) );
  if(i == m_valueNames.end()) return false;
  name = i->second;
  return true;
}

The following snippets (with comments added) from one of the Python DataDictionary unit tests show how to use getValueName given a DataDictionary instance.

# Create a DataDictionary
def setUp(self):
    self.object = fix.DataDictionary()

# Add a dummy value
self.object.addValueName( 23, "BOO", "VALUE_23_BOO" )

# Test that the dummy value's name in the dictionary matches what was set
self.assertEquals( "VALUE_23_BOO", self.object.getValueName(23, "BOO", "")
like image 169
hunch_hunch Avatar answered Mar 19 '26 00:03

hunch_hunch



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!