フォーミュラベースの価格設定。 RDBMSでのストレージとアプリケーション層での使用
-
03-07-2019 - |
質問
商品取引アプリケーションの設計の第1段階に入ります。 このアプリケーションの主な機能は、価格情報の取得と評価です。 この市場の価格は固定されていません。通常、市場ベンチマーク+/-プレミアムです。例:(AとBは市場のベンチマークです)
- 価格= A + $ 1
- 価格= A + .5(A-B)
取引の最終価格は、合意された期間に適用される価格設定式を使用して計算されます。例えば;最終価格は、商品の積み込みの前後1週間の平均A + 1ドルになる場合があります。
現在、トレーダーはこの詳細をExcelでキャプチャしているため、必要な数式を柔軟に設定できますが、この情報は会計システムに反映されることはなく、スプレッドシートは市場ベンチマークのライブ予測とは関係なく価格予測を行います手動の遅いタスク。
アプリケーションで数式を入力、保存、評価するために使用できるツール/手法についての入力を探しています。
データベースとしてSQL ServerまたはOracleを使用し、クライアントプラットフォームはまだ修正されていませんが、WinForms / WPF、ASP.NET、またはJava webappを想定できます。
これは非常に広範な質問であることはわかっていますが、どのテクノロジーを使用するかをより具体的に説明するには不十分です。
ありがとう
解決
Excelに数式を入力する柔軟性がユーザーに気に入っているので、このようなアプローチをお勧めします:-
- さまざまな基本価格のキーワードで実際に使用する演算子のタイプを使用して、アプリケーションに数式を入力できるようにする何かを記述します。これは単に文字列として保存できます。
- ホワイトリストアプローチを使用してこれを検証します(かなり注意が必要な場合があります。スタックベースの解析アルゴリズムを調べる必要がある場合があります)。次を許可できます:+-/ *(){数値定数} {基本価格のキーワード}。
- これらの式を、SELECTリストでデータベースが理解できるものに変換します。入力する式がSQLでできることと似ている場合、これはそれほど難しくないかもしれません。キーワードは列名に変換され、他のすべてはそのままにしておくことができます。
その後、特別な形式をプラグインし、履歴データや予測に基づいて実行することで、データをSELECTして、期間全体の平均化などを行うことができます。
ステップ2にはいくつかのコツがありますが、他のすべてが簡単(かつ効率的)になります。
他のヒント
Excelとの統合を検討しましたか?そうすれば、Excel(ビジネスユーザー ADORE Excel)からExcelをry索する必要がなくなり、長年にわたって学んだすべてのトリックを使用できるようになります。 VBAを使用して、アプリとExcelの間でデータをやり取りするだけで(または、最近はExcelと統合するように言われます)、すぐに使用できます。
私は、ハンクに関連した途方もなく簡単な解決策を持っています 』提案です。データベースを作成し、Excelテーブルの後にモデル化します。 Excelデータをエクスポートし、データベースにインポートします。データベースを指すクライアントマシンでODBCコネクタを作成します。 Excelでは、データソースに接続できます。これにより、クライアントはUIの変更に問題を抱えることはありません。
興味深いシナリオ。警告:この回答は、問題に取り組むために私が持っていたいくつかのアイデアに基づいており、ベストプラクティスを反映していない可能性があります。
可能性のある式のルールをより単純な構造に要約できるかどうかを確認します。これにより、ルールを組み合わせて複雑な数式を作成できます。次に、DSLまたはXMLルールファイルのいずれかを使用して実行できる、データベース内にルールを保存できる必要があります。
あなたの現在のシナリオ、数式はエクセルで、かなりうまく機能しているようですが、いくつかの問題があります。いくつかの高度なマクロを使用することや、自動化に優れていることを検討しましたか?クライアントがエクセルを離れることなく、ほとんどの目標を達成できる可能性があります。
がんばって。
データが信頼できるソースからのものである場合(big if)、データベース式を列に格納し、その場でSELECTステートメントを作成して実行できます。
GiNaC などのシンボリック数学パッケージを使用して、入力した数式を解釈できます。テーブル。
回答ありがとうございます。
ユーザー自身がExcelから逃れたい。彼らは、データの入力と更新を試みる複数のユーザーと戦っています。 VSTOが小さなExcelシートをアプリケーションに埋め込むためにどのようなオプションを提供するかを調査するかもしれません。
埋め込みの「言語」を使用して式を保存および評価することに傾倒しています。
方程式の変数はスカラーデータポイントではなく時系列ベクトルであり、SQLアプローチでは必要な期間にわたって結果を簡単に計算できるため、単純なパーサーを使用して入力された数式をSQLに変換することはおそらく合理的な考えです。
ありがとう