問題タブ [algorithmic-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.

0 投票する
1 に答える
1094 参照

stocks - ボリンジャーオシレーターはどのように計算されますか?

アッパーバンドが計算されます:ミドルバンド+(D + sqrt(((close-ミドルバンド)^ 2)/ n))

そして、私は下のボリンジャーバンドと中のボリンジャーバンドを計算する方法を知っています。

しかし、ボリンジャーバンドを単一の振動インジケーターに結合しているボリンジャーオシレーターと呼ばれるとらえどころのないインジケーターがあります。計算方法を教えてください。可能であれば、フィールドに関連する値が含まれていると想定してSQLを使用します。

0 投票する
2 に答える
3205 参照

python - Pythonでidxmax()をローリングしていますか?

いくつかのテクニカル指標を作成しようとしている財務データを含む python DataFrame があります。要素ごとに移動するのではなく、移動ウィンドウ関数を使用してプロセスを高速化する方法を見つけようとしています。各インデックスについて、過去 30 日間の最大インデックスを返したいと思います。要素ごとのソリューションを実装しましたが、ご想像のとおり、非常に遅いです。

カスタム ローリング ウィンドウ関数を作成するにはどうすればよいですか?

0 投票する
1 に答える
291 参照

c++ - 取引クライアントで戦略を実装する適切な方法は何ですか?

この質問には、アルゴリズム取引と IB TWS API に関するある程度の知識が必要です。

私は現在、同時に取引される可能性のある多くの戦略の概念を実装する方法を検討しています. それらすべてを単一のクライアントでホストする必要があるのか​​ 、それとも1クライアント1アルゴアプローチを使用するべきなのか疑問に思います。唯一のクライアントで並行して実行される多くの戦略を選択した場合 (これは有益かもしれません)、どのパターンが最適な選択ですか?

現時点では、次のようなことを考えています。

各戦略は、いくつかの基本的な概念を実装するクラスです

したがって、実際の最も重要な部分はtrade()メソッドで終了し、すべての戦略クラスは、ポインターを含む IB の実装の同じ単一のインスタンス (つまり、1 つのソケット) で動作しPosixClient ます。EWrapperEPosixClientSocket

これは正しいアプローチですか?私はリスク管理システム (アルゴリズムなど) の経験はありますが、商用取引システムの実装は見たことがありません。アドバイスをいただけますか?

0 投票する
1 に答える
1598 参照

r - R の Websocket

次の仕様で、R で Mtgox websocket への接続を確立することができました。

https://github.com/zeenogee/R-Websocketsからダウンロードした改良された R ライブラリ「websocket」を使用しました。

接続が正常に確立されました。ただし、ソケットがブロードキャストしていないようです。簡単な関数fを作りました

websocket からデータを受信するたびにテキストを出力する必要があります。しかし、websocket は「受信」メソッドをトリガーしていないようで、何も表示されません。コードは、出力のない無限ループで終了しました。

Websocket が機能していることはわかっているので、コードに誤りがあるはずです。ブロードキャストを開始するには、何らかの方法でソケットを「ping」する必要がありますか? 誰でもそれを機能させる方法を知っていますか? ありがとう!

0 投票する
1 に答える
763 参照

c++ - データ フィードの購読を実装する方法は? オブジェクトに通知する

この質問は、この問題に実際に直面した私たちを対象としています。私は、実際に機能する高速なソリューションに興味があります。

説明:

Posix 準拠のソケットを介して tcp/ip 経由で通信し、ライブ ストリーミング データを取得できる API を使用しています。これらは金融商品の価格やその他の統計であり、すべて数値です。ソケット経由でこの接続を管理する 1 つの Posix クライアントがあります。これは Qt アプリケーションです。各フォーム (GUI) は、データ ストリームを要求し、受信した見積もりを表示できます。

問題:

すべての着信ストリームは、ソケットのコールバックを介して受信されます (今は情報を出力するだけです)

この API を介して導入されたモデルの概念は、tickerIdフィールドによってストリームが認識されるというものです。したがって、ソケットに新しいデータが表示されると、tickPriceメソッドが起動され、関連するオブジェクトに割り当て/通知などを行う必要があります。つまり、適切な GUI フォームにデータを送信して、それらを区別します。tickerId.

質問:

正しいオブジェクトにデータを送信するには、データ交換、サブスクリプション モデルをどのように実装すればよいですか? 私の最初の考えは、Posixクライアントで使用することです

tickerIdデータを要求したオブジェクトからコールバックにマップできます。オブザーバー パターンのようなもの。


現時点では、オブザーバー パターンの実装があります。これがどのように機能するかの主なアイデアです:

観測可能:

観察者:

例:

結果:

新しいデータ: 0

新しいデータ: 1

新しいデータ: 2

新しいデータ: 3

新しいデータ: 4

新しいデータ: 5

新しいデータ: 6

新しいデータ: 7

新しいデータ: 8

新しいデータ: 9

RUN SUCCESSFUL (合計時間: 93ms)


この瞬間の私の実際のコードは次のとおりです。

さらに遠く:

しかし、これには多くの欠点があります。より良い/より安い/より速いアプローチはありますか? 何を改善できますか?

0 投票する
1 に答える
509 参照

c++ - Observer パターンを MarketData オブザーバーとして実装する

Qt で GUI フォームを開発していますが、ObserverPattern を実装する方法を知りたいです。フォームは tickerId で識別される多くのデータ ストリームをサブスクライブできます。データ ストリームが到着すると (新しい見積もりが利用可能)、私の PosixClient (ソケット ラッパー) がnotifyObservers()メソッドを起動しupdate()、オブザーバーのメソッドが実行されます。

しかし:

このupdate()メソッドはvoid update()、着信データ レコードを取得してプロットし、何かを数えて、それらを使用する必要があります。どうすればこれを達成できますか、データレコードをオブザーバーに渡す方法は? データは Observable (Observable から派生した MarketData オブジェクト) で利用できます。データが到着したら、それをこの Observable にプッシュし、オブザーバーに通知します。

次に、それらのvoid update()メソッドが呼び出されます。この関数からデータを取得するために、関数ポインターboost::function<>をコールバックとして渡すことにし、Observer は、observable からの着信データを引数として GUI オブジェクトを指すこの関数ポインターを呼び出します。これは正しいアプローチですか?


ご注意ください:

私はQtシグナル/スロットメカニズムを認識していますが、私の意見では、データを動的にサブスクライブし、それらをプロットし、Qtフォームに表示し、フォームがキャンセルされたときにサブスクリプションを削除する必要がある場合、Qtシグナル/スロットはここではまったく解決策ではありません. しかし、多分私は間違っています。私ですか?理論的な論争ではなく、実生活からの実際の実用的な例を求めます。

0 投票する
2 に答える
1443 参照

python - 商品先物階層データ構造

私は一生、自分が望む構造を手に入れて適切に機能させることができないように見えるので、怒り狂って皆さんに来ます.

セットアップ: Futures_Contracts という名前のディレクトリがあり、その中に約 30 個のフォルダーがあり、すべて原資産の名前が付けられ、最後に最も近い 6 つの有効期限契約が csv 形式で含まれています。各 csv の形式は同じで、日付、O、H、L、C、V、OI、有効期限の月が含まれています。

注: OHLCV OI は、始値、高値、安値、終値、出来高、建玉 (詳しくない人向け) であり、終値は以下の決済と同義であると仮定します

フォルダ構造

タスク: ここからの目標は、最上位インデックスが基礎となる商品シンボル、中間レベル インデックスが有効期限の月-年、最後にOHLCデータ。最終的な目標は、zipline モジュールでハッキングを開始して、先物で実行できるようにすることです。視覚的に: ここに画像の説明を入力

私の弱い試み:

これはある程度機能しますが、これは実際には、最後にデータフレームを保持するネストされた dict です。したがって、スライスは非常に扱いにくいです:

利回りここに画像の説明を入力

資産、有効期限、日付、および価値全体でデータを比較できるように、各インデックスをスライスできることが最適です。さらに、matplotlib チャートでわかるように、私が見ているものにラベルを付けます。

確かにこれを行う方法はありますが、私はそれを理解するほど賢くありません.

0 投票する
2 に答える
311 参照

java - Excel ファイルから動的にデータを取得する Java プログラムを作成するにはどうすればよいですか?

私はアルゴリズム取引戦略に取り組んでおり、インターネットから株価を動的に取得する Excel シートを持っています。これらの変化する値を取得し、それらを保存し、動的にいくつかの操作を実行して結果を生成するには、JAVA プログラムが必要です。それらの値を選択する方法を親切に提案するか、誰かがそのコードを持っている場合は共有してください。