問題タブ [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.
algorithmic-trading - MetaTrader の非同期 Web リクエスト
PHP インターフェイスを使用してサーバーにデータを送信するために、非同期インターネット リクエストを作成できる MetaTrader 用のカスタム インジケーターを構築できるかどうかを確認しようとしています。
これらのリクエストは、ウェブサーバーが処理するのに時間がかかる可能性があるため、同期的に実行された場合、インジケーターが新しいティック データを継続的に更新するのをブロックするのではないかと心配しています。
MT4 で使用できる非同期ライブラリはありますか?
c# - VPS のメタトレーダー ターミナルで ac# DLL を使用するにはどうすればよいですか?
状態:
これDLL
は、(基本的には C に似た言語) で記述されたコードから呼び出され、MQL4
一部のデータを送り返します (管理されていないものから管理されているものに戻って)。
一般に、 はDLL
クエリをMySQL
ホストに送信し、必要に応じてデータを返します。NuGetパッケージの " Unmanaged Exports "を使用しました。Windows 8.1 x64 で実行されDLL
ている FOREX 取引プログラムでこれを使用し、すべてが完全に機能しました。MetaTrader Terminalは x86 でのみ実行されるため、C# コードは x86 でコンパイルされましたMetaTrader Terminal。
ゴール:
今、私は同じDLL
ものを使用して同じコードを使用して呼び出すことに興味がありますが、今回は VPS から実行するコードが必要です。
この VPS は Windows Server 2008 R2 SP1 x64 で動作します。
それ以外はすべて同じです。
同じバージョンのMetaTrader Terminal、
この VPS に VS 2013 (ラップトップで使用したものと同じバージョン) をインストール
し、問題なく C# コードをコンパイルしました。
Microsoft Visual C++ 2010 Redistributable もインストールしました。これが役立つことを願っていますが、まだここにいます...
ホストへのアクセスをブロックする可能性のあるファイアウォールもありません。
DLL
が VPS で実行できない原因は何ですか?
ありがとう!!
問題の切り分け:
を確認するために、VPS で短い C# プログラムを作成しましたDLL
。
( DLL
) うまくいきます。
MetaTrader Terminalが を認識していることはわかっていDLL
ます。そうしないと、その基本的な問題に関するエラーが発生するからです。
したがって、問題は と の間にあるはずMetaTrader TerminalですDLL
。
r - シグナルに応じた特定の日付での株式ポートフォリオの均等加重再配分
特定の日に戦略ポートフォリオを再配分したい:
資産価格を取得し、毎日の離散リターンを取得します
各資産に RSI 関数を適用して RSI シグナルを取得します。
戦略は次のとおりです。RSI が 30 未満の場合は資産を購入し、RSI >= 30 の場合は購入しません。
今、これは私が問題を抱えている部分です。ret.mat.rsi からのリターンは日次リターンです。たとえば、月の最初の日に rsi マトリックスを見たいとします。
RSI が 30 を下回っているため、最初の 4 つの資産をポートフォリオに均等に加重して購入し、翌月の初日まで (その後の RSI シグナルに関係なく) 月の残りの期間はポジションを変更しないままにします。
資産を購入しないことを選択した場合。
全体の問題は、特定の日付、つまり毎月の初め (毎週または 3 週間ごとでもよい) にポートフォリオの自動再割り当てをエレガントにコーディングする方法です。ポートフォリオのリターンは、再配分日に指標条件 (ここでは RSI < 30) を満たす資産のみで構成される必要があります。
r - 再配分日にエントリーシグナルとエグジットシグナルを使用したRのボリンジャー戦略
次の簡単な取引戦略があります。
参入シグナル: IBM の価格がボリンジャー バンドの上限を上回ったとき。
終値シグナル: IBM の価格が下のボリンジャー バンドを下回ったとき。
ボリンジャーバンドは次のとおりです。
ここで難しいのは、再割り当て日に IBM の価格がボリンジャー バンドの下側を下回っている場合にのみ、ポジションを決済することです。それ以外の場合は、最後の期間のシグナルを次の期間にロールします。毎週の再割り当てを行うには:
全体の問題は、適切にコード化されたシグナル関数sig.bbを定義する方法です。これは、価格が再割り当て日にボリンジャー バンドの上限を超えるとすぐに「1」を含み、価格がそれを下回るまで在庫を保持します。その後の再配分日にボリンジャーバンドを下げます。
私が試したのは、最初の観測をキャッチし、sig.bb ベクトルの最初のエントリに基づいて、次のすべての観測をロールすることです。
「NA」を返す...
sig.bbを取得 した後の進め方 (このトピックに関心のある方向け) については、こちらを参照してください:シグナルによる特定の日付での株式ポートフォリオの均等加重再配分
r - ボリンジャー戦略を資産ポートフォリオに適用する
次の単純な取引戦略に直面しています。
買い: 株価がボリンジャー バンドの上限を上回っている場合。
売り: 株価が下のボリンジャー バンドを下回った場合。
ホールド: 買いシグナルが現れたので、ある再配分日に売りシグナルが現れるまで在庫を保持します。
GSee の startpoints 関数を使用して、毎週の再割り当て日のみを考慮します。
ここまでは順調ですね!ここで、シグナルを抽出したい価格シリーズが他にもあります。
個々の資産ごとにマトリックス (ここでは「m」) を定義せずに、上記の取引戦略をこの資産のポートフォリオに適用したいと考えています。私はループで考えることに慣れていますが、ループを回避するもっと洗練された方法があるはずです。
結果は次のようになります。
machine-learning - 金融ビッグデータの機械学習
免責事項:私はビッグデータについていくつかのことを知っており、現在機械学習についていくつか他のことを学んでいますが、私が研究したい特定の分野は漠然としているか、少なくとも今は漠然としているように見えます. 私はそれを説明するために最善を尽くしますが、この質問はまだ漠然としすぎているか、実際には質問ではないと分類される可能性があります. うまくいけば、反応が得られたら、より正確に言い換えることができるでしょう.
そう、
Hadoop と Hadoop スタック (CDH を使用して取得) の経験があり、機械学習ライブラリのコレクションである Mahout に関する本を読んでいます。また、機械学習アルゴリズムの背後にある数学を理解するのに十分な統計を知っていると思います。また、R の経験もある程度あります。私の最終的な目標は、取引予測を行い、リアルタイムで金融データを処理するセットアップを作成することです。
その問題を管理する方法を理解するのに役立つ、さらに読むことができる資料があるかどうか疑問に思います。サンプル データセットを使用した書籍、ビデオ チュートリアル、演習はすべて歓迎されます。
algorithmic-trading - Web サイトから CSV にデータを取得し、5 分ごとに更新します
特定の Web ページから引き出されたいくつかのデータ スニペットを必要とする MQL4 でプログラムを開発しています。
.csv
これを5分ごとにファイルにダンプするにはどうすればよいですか?
私はこれについてどのように行くつもりなのか行き詰まっています。
構造
.html
ページからダンプされたデータの一部.csv
ファイルにプラグイン- MQL4 による読み取り
export - MT4 エクスポート スクリプト
次のMQL4
スクリプトは、MetaTrader からcsv
ファイルにデータをエクスポートします。残念ながら (少なくとも私にとっては)、生成されたcsv
ファイル内のデータの順序は 0 から 1000 までで、0 が最新 (現在から過去) です。ファイルを 1000 から 0 (過去から現在) に並べ替えたい。
以下のデータ書き込みループを次のように変更しましたfor (int bar=Export_Bars; bar==0 bar--)
が、これは単純に空のcsv
ファイルを生成しました。
過去のデータを現在の順序でエクスポートするには、スクリプトにどのような変更を加える必要があるのでしょうか?
algorithmic-trading - init() と OnInit() の違いは何ですか?
MQL4を学んでいます。参照 Web サイトでは、カスタム インジケーターの作成は次のように行われます。
しかし、MetaEditor 内から新しいインジケーターを作成すると、次のような別の構文が得られます。
なぜ違うのですか?
誰かが私に紹介できる Web リンクや本はありますか? 私が読んだ限りでは、MQL4 ウェブサイトが最良の場所でしたが、見た目が異なり、どこを参照すればよいかわかりません。
どんな助けでも大歓迎です。前もって感謝します。