В QuickFix, как я могу получить имя тега из номера тега с помощью Python? Например, как для OrdStatus преобразовать номер тега 5 в строку «OrdStatus_CANCELED»?
Номер тега для строки имени
comment
Какую версию QuickFIX вы используете? QuickFIX/Н? QuickFIX/J? С++?
- person hunch_hunch   schedule 25.10.2014
Ответы (1)
.NET:
Если вы используете QuickFIX/N, вы можете добиться этого, используя экземпляр DataDictionary
с любым источником данных, который вы хотите (например, FIX42.xml). Обратите внимание, что вы можете получить экземпляр DataDictionary
, связанный с данным Session
, или с самим приложением со свойствами SessionDataDictionary
и ApplicationDataDictionary
Session
соответственно.
Рассмотрим эту тривиальную программу на C#:
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++ DataDictionary
имеет метод 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;
}
Следующие фрагменты (с добавленными комментариями) из одного из Модульные тесты Python DataDictionary показывают, как использовать getValueName
с экземпляром DataDictionary
.
# 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", "")
person
hunch_hunch
schedule
24.10.2014
Можете ли вы также привести пример с использованием Python? Спасибо!
- person user3092887; 27.10.2014
Обновлен с примером Python.
- person hunch_hunch; 27.10.2014