Delphi で使用する FIX エンジン (商用またはオープン ソース) を推奨できる人はいますか?
Delphi で QuickFIX を使用することは可能ですか?
Delphi で使用する FIX エンジン (商用またはオープン ソース) を推奨できる人はいますか?
Delphi で QuickFIX を使用することは可能ですか?
B2BITS FIX アンテナをご覧ください。次の 2 つのオプションがあります。
http://www.b2bits.com/trading_solutions/fix_engines/fix_engine_cpp.html
http://www.b2bits.com/trading_solutions/fix_engines/fix_enginenet.html
詳細が必要な場合は、お気軽に私に直接お問い合わせください。
QuickFix は C++ プロジェクトです。
Python と Ruby はどちらも SWIG を使用して、C++ クラスをネイティブの Python および Ruby クラスとして公開します。
.NET ラッパーは、C++ と C# のコードが混在しているように聞こえます。
Delphi 内に C++ クラスを直接インポートすることはできません。Delphi ユニットに外部構造体と関数をインポートするには、「フラット API」変換を使用して、すべての C++ メソッドをプレーンな C 宣言として公開する必要があります。
私の知る限り、利用可能な QuickFIX の「フラット API」はなく、Delphi コードを生成できる SWIG バージョンもありません。C++ で独自のラッパーを作成するか、Delphi で独自の FIX 実装を作成する必要があります。
私が知っている Delphi 用の唯一の FIX ライブラリは、http: //www.b2bits.com のものです。これは数年前に存在していましたが、まだ販売/保守されているかどうかはわかりません。DotNet バージョンのみを保守しているようです。いずれの場合も、価格と入手可能性について問い合わせる価値があります。
これはおそらく他の何よりもハックですが、Python4delphiを介してDelphiでPythonQuickFIXバインディングを使用できます。ただし、これは多くのレイヤーです(DelphiからPython、C ++)。
Pythonは使いやすく、習得しやすい言語であり、Pythonオブジェクト(またはPythonオブジェクトのふりをするネイティブCラッパー)を呼び出して作成し、Python4DelphiAPIから直接呼び出すのも簡単です。
それを除けば、ABouchezが言ったように、手続き型(フラット)APIを構築するのはごくわずかな作業かもしれません。100万個の関数を作成する代わりに、必要な関数のみを作成し、これらの単純な関数をVC++DLL内に実装します。
QuickFixInit;
QuickFixCleanup;
handle := QuickFixLoadFile(filename)
QuickFixSaveFile(handle)
handle2 := QuickFixGetObjectHandle(handle,index,...);
QuickFixModifyObjectProperty(handle2, propertyname, propertyvalue );
QuickFixExecuteSomeAction( handle2, actionname, param1,param2,param3 );
上記はあなたに味を与えるためだけのものです。内部APIについては何も知りませんが、上記で示したのは、ラッパーを作成するためにAPIに100%準拠する必要がないということです。おそらく(C / C ++を知っている場合)必要なことを実行する関数ラッパーを作成し、それをエクスポートしてDLLにリンクし、QuickFix.dllをPythonにインポートすることができます(専門家の2〜4時間)時間)作業、C ++クラスをインスタンス化し、C ++メソッドを呼び出すいくつかの単純なCスタイル(非OOP)関数を作成するのに十分なVisualC++を知っている場合。
QuickFIxを含むC++Builderパッケージ(BPL)を介してC ++ APIをDelphiに公開することは可能かもしれませんが、(a)いくつかのソース変更が必要であり、(b)QuickFixのC++コードまたはその依存関係が大幅な変更を加えずにC++Builderでビルドしないでください。
プロトコルを Delphi と統合する 1 つの方法は、.Net または Java ブリッジを構築することです。次に例を示します。