問題タブ [trading]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
stock - API を提供しているオンライン ブローカーは?
そのため、私は E*TRADE にうんざりしており、開発者として、API を提供するオンライン ブローカーを見つけたいと思っています。自分のトレーディング ツールを作成したり、既存のツールを変更したりできれば素晴らしいと思います。
これまでの調査に基づいて、1 つのオプションしか見つかりませんでした。Interactive Brokers は、多言語 API (Java/C++/ActiveX/DDE) を提供し、起動するためのかなりまともな手数料率を設定しています。他に検討すべきオプションがないことを確認したいと思います。何か案は?
更新:これまでの回答に基づいて、ここに簡単なリストがあります...
- インタラクティブブローカー
- ジャワ
- C++
- ActiveX
- DDE for Excel
- ピナクルトレーディング
- C++
- パール
- VB.NET
- エクセル
- MBトレーディング
java - 低レイテンシ、高可用性のための Java 分散キャッシュ
memcached、jboss キャッシュ、ehcache などの分散キャッシュ/DHT を使用したことがありません。
まず、私は Web アプリケーションを扱っていません (これらのプロジェクトのほとんどは Web アプリケーションを対象としているようです)。私は金融商社向けのサーバー (実際には注文管理システム) を作成しています。サーバー自体はそれほど複雑ではありません。これらのメッセージの一部を変換しながら、情報 (市場データ、注文、約定など) を受信して宛先にルーティングする必要があります。
以下の問題を解決するためにこれらの製品を検討しています。
サーバーの状態の安全なリポジトリ。アプリケーションのロジックを一連のトランスフォーマー (Apache Camel と同様) として構築し、状態を「安全な」場所に保存したい
このリポジトリは分散する必要があります。これらのデータ ストアの 1 つがクラッシュした場合に備えて、さらに 1 つまたは 2 つが稼働し、それらにシームレスに切り替えることができるはずです。
このリポジトリは高速である必要があります。ここでは 1 桁のミリ秒がカウントされます。つまり、このデータを消費/処理するシステムは自動化されたシステムであり、人間がリンクをクリックするのではありません。このシステムは、高スループットと低レイテンシーを備えている必要があります。データをプロセス外に送信することで、必然的にパフォーマンスが低下しますが、絶対的な生の速度とデータの絶対的な保護のバランスをとろうとしています。
このリポジトリは安全でなければなりません。複数のオンライン バックアップに関するポイントと同様に、このシステムはデータをディスク (場合によっては複数のディスク) に書き込む必要があります。
独自の「トランザクション サーバー」を作成するのは本当にやめたいと思います。jboss キャッシュや ehcache などのプロジェクトを調べているのは正しいですか?
ありがとう
c++ - 株式市場プログラムに使用できるデータ ソースは?
Linux と Windows の両方で、ライブの株式市場チャートを作成する (つまり、頻繁に更新される) 無料のオープンソース C++ アプリケーションを作成したいと考えています。
これらの問題についていくつかの指針を教えてください。
- データ ソースとして何を使用すればよいですか? 実装できる無料のサービスはありますか? Googleなどの企業と同じまたは類似の情報を使用したい。
- どの GUI ツールキットを使用するのが最適かわかりません。チャートが組み込まれているものはありますか、それとも専用のライブラリを使用する必要がありますか?
注意すべき点:
- これは、クロスプラットフォームの C++ 開発と、Linux 用の GUI アプリケーションの両方に対する私の最初の試みです。
- イギリス在住なので、ロンドン証券取引所(LON)やNASDAQなどの情報を提供しているデータソースを利用したいです。
trading - Java 取引アプリケーションの開発: 取引ルールを定義するためのパターン/フレームワークは存在しますか?
マーケットの API を使用してマーケットに注文を出す取引アプリケーションを設計中です。これは、投資銀行に見られるような複雑で高性能なアルゴリズム取引アプリケーションではありません。これは、市場の状況/トレンドに応じて、おそらく 1 日に 2 ~ 3 回取引する小さな個人用アプリケーションです
アプリケーションは、(大まかに) 次のモジュール/パッケージで構成されます:
戦略
- 実際の取引アルゴリズム
分析
- 取引を分析するためのクラス売買シグナルを生成するための市場でのライブ価格と注文
サービス
- 市場への接続を維持し、市場情報を取得し、売買注文を出すために使用されるクラス。
これまでのところ、アプリケーションに必要なものはすべてインターネットで入手できるようです。
*市場の Web サービスにアクセスするために使用される Java クラスを生成するためのApache CXF 。
*価格分析を実行するためのApache Maths
*さまざまな設計パターン (Factory、Subject/Observer、State など) の
Wikipedia 。
しかし、私が本当に行き詰まっているのはアルゴリズムです。State パターンを使用して、特定の市況が満たされたときに実行する必要があるさまざまなロジックを論理グループに分割することにしました。問題は、各状態クラスに if else ステートメントの爆発が含まれる可能性が非常に高いことがわかり始めていることです。
ここで何かが欠けていると感じずにはいられず、開発者が特定のビジネスコンテキストのすべての入力と出力を有限数のビジネスルール[アルゴリズム]を構築できるビジネスアクション[入力/出力]。つまり、アルゴリズムをハードコーディングするよりも、アプリケーションをある種のルール プロセッサにすることができるようになることを望んでいます。残念ながら、これをどこから始めればよいかわかりません。私のジレンマを十分に明確に説明したことを願っています。何か明確にしたい場合はお知らせください. ありがとうございました
java - Java、キューマネージャーによる大量メッセージ処理 (トレーディング)
大量のメッセージ (トレーディング システムなど) を処理できる単純なアプリケーション (j2ee と jms なし) を設計したいと考えています。
メッセージを受信してキューに入れることができるサービスを作成して、過負荷時にシステムがスタックしないようにしました。
次に、キューをラップし、キューからメッセージをポップアウトする pop メソッドを持つサービス (QueueService) を作成しました。メッセージが null を返さない場合、このメソッドは次のステップで「同期済み」としてマークされます。
メッセージの処理方法を知っているクラス (MessageHandler) と、新しいスレッドでメッセージを「リッスン」できる別のクラス (MessageListener) を作成しました。スレッドには「while(true)」があり、常にメッセージをポップしようとします。
メッセージが返された場合、スレッドは MessageHandler クラスを呼び出し、それが完了すると、別のメッセージを要求します。
これで、10 個の MessageListener を開いて複数のメッセージを処理できるようにアプリケーションを構成しました。
現在、常にループしているスレッドが 10 個あります。
いいデザインですよね??
そのようなシナリオを処理する方法について、誰かが私にいくつかの本やサイトを参照してもらえますか??
ありがとう、ロニー
python - 取引戦略開発のためのスクリプト言語
私は現在、クオンツまたは戦略の開発者が独自のカスタム戦略を作成できるようにするトレーディング製品のコンポーネントに取り組んでいます。開発/テストサイクルは数分である必要があるため、これらの戦略をネイティブにコンパイルされた言語 (または vm で実行するためにバイトコードにコンパイルする言語でさえも) で記述させることは明らかにできません。
これまでに lua、python、ruby を見て、本当に楽しんでいましたが、ターゲット ユーザーにとってはまだ少し「低レベル」であることがわかりました。ループ、単純な算術、論理式の評価を最小限にサポートする言語をサポートするために、何らかの形で独自のパーサー + インタープリターを作成する必要がありますか、それとも別の推奨事項がありますか? 前もって感謝します。
c++ - C++ で実行のデバッグ フローを取得する方法
多くのユーザーをサポートするグローバルな取引システムに取り組んでいます。各ユーザーは、取引を予約、修正、編集、削除できます。このシステムは、中央のディール キャプチャ サービスによって規制されています。ディール キャプチャ サービスは、発生した更新をすべてのユーザーに通知します。
問題は、クラッシュが発生したときに発生します。本番環境をテスト システムで再作成することは不可能であるため、クラッシュ ダンプとログ ファイルに頼らなければなりません。
ただし、これはユーザーが何をしてきたかを教えてくれません。
(クラッシュ時に) ユーザーが何をしてきたかの履歴をダンプするシステムが欲しいです。私が追加したものはすべてライブ環境に入れる必要があるため、パフォーマンスに大きな影響を与えることはできません。
賢明なアイデアとして、スタック トレースのように機能する各関数の上部にあるマクロを考えていました (トレード ID、ユーザー ダイアログの選択などの追加のユーザー情報を提供できるのは私だけでした..) システムはスタック トレースを記録します (スレッドごとに) 履歴を循環バッファーに保持します (サイズは、キャプチャする履歴の量によって異なります)。その後、クラッシュ時に、この履歴スタックをダンプできました。
誰かがより良い解決策を持っているかどうか、または誰かが既存のフレームワークを知っているかどうかを本当に知りたいですか?
ありがとうリッチ
python - エトレードの自動化
みなさん、Python で Etrade の株を取引するためのインターフェイスのプログラミングをどのように開始すればよいか考えていました。自動取引ボットを作成しようとしていますが、Etrade での自動取引用に公開されている API はありません。前もって感謝します。^^
c++ - トレーディングシステムで現在好まれているグリッド分散コンピューティングフレームワーク
そこにはかなりの数のグリッドコンピューティングフレームワークがあるように見えますが、低遅延の分散計算の目的で投資銀行によって実際にかなりの程度使用されているものはどれですか?Windows、Linux、クロスプラットフォームの両方をカバーする回答を聞きたいです。また、どのRPCメカニズムが最も好まれていると思われますか?
レイテンシと速度が低いため、VMで実行される計算はネイティブコードよりも数桁遅いため、計算自体はC ++/Cで記述されることがよくあると聞きました。これは実際には一般的なシナリオのように思われますか?たとえば、ネイティブc ++ / cで記述された計算を実行する分散.NETグリッドフレームワーク?
java - 計算集約型の取引ポートフォリオシミュレーション用のプログラミング言語はどれですか?
私は、非高頻度取引ポートフォリオの作成、最適化、およびシミュレーションを担当する取引ポートフォリオ管理システムを構築しています(ティックデータではなく、1分または3分のデータバーを処理します)。
アマゾンウェブサービスを利用して、アプリケーションの全負荷を引き受ける予定です。
言語として考えている選択肢は4つあります。
- Java
- C ++
- C#
- Python
これがプロジェクトスコープの両極端のスコープです。これは、おそらくこれまでの方法ではありませんが、要件の範囲内です。
- 10,000,000の取引システムの毎週のシミュレーション。
- (各トレーディングシステムには、計算コストが非常に高い特徴選択アルゴリズムなど、独自のデータマイニング手法が必要です。ラッパーを使用した500〜5000の特徴を想像してみてください。これらは決して頻繁に実行されることはありませんが、それでも考慮事項です)
- 100,000のトレーディング戦略によるポートフォリオのリアルタイム生産
- 世界中のすべての株式/先物市場から1分または3分のデータを取り込む(約100,000)
- 最大100,000の戦略を持つポートフォリオのポートフォリオ最適化。(かなり集中的なアルゴリズム)
速度が問題ですが、Javaで負荷を処理できると思います。
Javaが上記の要件を快適に処理できることを確認したいだけです。プロジェクトをC++で実行したくありませんが、必要に応じて実行します。
C#が存在する理由は、Windowsがまったく好きではなく、すべてが同じであればJavaを好むにもかかわらず、Javaの優れた代替手段だと思ったためです。
Python-PyPyとpyschoで、PythonをJITコンパイルで最適化して、C言語に近い速度で実行できると主張しているものを読んだことがあります...これが、Pythonが素晴らしい言語であり、おそらくコーディングするのに最も楽しい言語であり、これはこのプロジェクトの要因ではありませんが、特典です。
総括する:
- リアルタイム生産
- 多数のシステムの毎週のシミュレーション
- ポートフォリオの毎週/毎月の最適化
- データを収集するための多数の接続
ミリ秒または秒ベースの取引を扱うことはありません。唯一の考慮事項は、Javaが必要な量のEC2サーバーから分散されたときにこの種の負荷を処理できるかどうかです。
皆さんの知恵に感謝します。