トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 2510

 
elibrarius#:

どうやら、ニュータイプ用の言葉を予約しているようです。

予約だけでなく、すでに動いているものもあります。

void OnStart()
{
  vector v(3);
  v[0] = 1.0;
  v[1] = 2.0;
  v[2] = 3.0;
  matrix m(3, 3);
  m.Random();
  Print("m = ", m);
  Print("m^-1 = ", m.Inverse());
  Print("Det(m) = ", m.Det());
  Print("m * v = ", m * v);
}
 
Aleksey Nikolayev#:

予約だけでなく、すでに何かが動いている。

ヘルプ検索では何も出てこない。
そして、マトリクスは重宝されるでしょう。
変数によるサイズ設定が有効

int m1=2; int m2=2;
行列 m(m1, m2);

以前は、動的配列に悩まされることもありました。

 
elibrarius#:

ヘルプで検索しても何も出てきません。

ここからの 情報しかないんです。

elibrarius#:

そして、マトリクスは重宝されるでしょう。
サイズを設定するための変数を操作する

int m1=2; int m2=2;
行列 m(m1, m2);

以前は動的配列を使う必要がありました。

実際、RenatはMQL5でONNXのサポートのような機械学習を約束しました。見ていきます)

 
Vladimir Baskakov#:
2つのマッシュアップの交差点に勝てる人はいない。

...であり、NS接頭辞によってラグを低減することができる))

 
elibrarius#:
SanSanych のパッケージhttps://www.mql5.com/ru/code/17468 を使って R に接続する人がいたら:

R.mqhファイルにおいて、ベクトルや 行列の 変数名がコンパイル時にエラーになるようになりました。他の名前に変更すれば、すべてうまくいきます。vectrとmatrを使いました。

エディタはこれらの言葉をint,doubleの ようなデータ型として青くハイライトします。ニュータイプのための予約語らしい。

ふーん、この図書館のことは何も知らなかったんだ。使い方、機能とは?

 
iwelimorn#:

要するに、すべては無駄であり、MOでは市場は騙せないのです。

第1図に示すようなクラス分布の特性とターゲットを発見した。

このデータセットを用いて学習させたテスト用と学習用のkatbustモデルの精度は93%であった

第2図は、対象取引のバランスとエクイティのグラフである。

3つ目の図は、学習させたkatbustaモデルのシグナルで取引した場合の残高と資本のグラフである。

では、皆さん、解散してください。

ターゲットは何なのか、どうやって見つけたのか?

トロールを追加してみてはいかがでしょうか?

誤差のバランス(クラス1は+1正解-1不正解)だけを見ると、結果は大きく異なるのでしょうか?

 
Aleksey Vyazmikin#:

ふーん、この図書館のことは何も知らなかったんだ。使い方、機能は?


MTとRの間の変数と配列の双方向伝送。そこに引用、バックリザルト、コマンド。
Function description:
/**
* Dllのバージョンを返す。戻り値の上位16ビット
* はメジャーバージョン、下位16ビットはマイナーバージョンです。この
* は、RInit() の中で、このヘッダーファイルと
* zzthe dll が適合することを確認するために使用されます。
*/
int RGetDllVersion();

/**
* これは直接呼ばれるものではなく、バージョンチェックに成功した後、RInit()によって
* 呼び出されるものである。
* 新しい R セッションを開始するには、RInit() を呼び出す必要があります。
*/
long RInit_(string commandline,int debuglevel);

/**
* Rセッションを一時停止します。これをdeinit()関数内で呼び出します。
* この後、ハンドルは無効となります。

*/
void RDeinit(long rhandle);

/**
* このハンドルに属するRセッションがまだ実行中であれば真を返します。R は、あなたが送った
* コードに致命的なエラーがあると終了してしまいます。スタート関数の先頭
* で確認し、すべてのアクションを停止する必要があります。クラッシュ前の最後の
* コマンドは、ログに記録されます。
* Rがもう動いていない場合、このライブラリは
* これ以上のログメッセージを出さず、すべてのコマンドを黙って無視します。
*/
bool RIsRunning(long rhandle);

/**
* Rがまだコマンドを実行している場合 (RExecuteAsync() の呼び出しの結果
*)
*/
bool RIsBusy(long rhandle);

/**
* コード実行、待機はしない。

* で実行されるスレッドは1つだけなので、それ以降の呼び出しは待機します。終了したかどうかはRIsBusy()で確認
*/
void RExecuteAsync(long rhandle,string code);

/**
* コード実行後、終了するまで待機。これは、
* 何かを返すことはありません。基本的には
* RGet*() 関数で同じことができます。式の評価も
* 単なるコードの実行です。唯一の違いは、これらの
* RGet*() 関数はさらに解析して
* 出力を返そうとするのに対し、RExecute() はただ実行して待ち、
* すべての出力を無視することです。
*/
void RExecute(long rhandle,string code);

/**
* 変数名にはboolを代入します。Rではこの型を「論理型」と呼びます
*/
void RAssignBool(long rhandle,string variable,bool value);

/**
* 変数名に整数を代入します。
*/
void RAssignInteger(long rhandle,string variable,int value);

/**
* 変数名に double を代入する。
*/
void RAssignDouble(long rhandle,string variable,double value);

/**
* 変数 namd に文字列を代入します。Rではこの型を「文字」と呼びます
*/
void RAssignString(long rhandle,string variable,string value);

/**
* 変数名にベクトルを代入します。もしサイズが
* 実際の配列のサイズと一致しない場合は、悪いことが起こるかもしれません。
*/
void RAssignVector(long rhandle,string variable,double &vectr[],int size);

/**
* 変数に文字のベクトル(文字列の配列)を代入します。もし、
* ファクターが必要な場合は、このコマンドの後に変換するコードを実行する必要があります。
* 最近のRのバージョンでは、文字列のベクトルは
* 因子よりも多くのメモリを必要とせず、新しい要素を追加するのも簡単です。
*/
void RAssignStringVector(long rhandle,string variable,string &vectr[],int size);

/**
* 変数名に行列を代入します。行列は行番号を
* 1 次元とする必要があります (生データでは byrow=TRUE が使用されます).
この関数は、行ごとに RRowBindVector() で最後に
* 新しい行を追加して、巨大な行列(数百行)を一から構築するよりもずっと速いです。
この関数は、
* 生のバイナリデータでファイルIOを使用することにより、1回の関数呼び出しで膨大なスループットを得られるように最適化されています。
* 要素数が非常に少ない行列やベクトルの場合、これはオーバーヘッドが大きすぎ、他の関数の方が高速になる可能性があります。

* 何千行もの行列を R に転送したら、
* RRowBindVector() を使用して、常に行列全体の新しいコピーを送信するのではなく、新しいデータベク トが 1 つ到着するたびにゆっくりと行列を大きくしていくだけにしてください。
*/
void RAssignMatrix(long rhandle,string variable,double &matr[],int rows,int cols);

/**
* 行を行列またはデータフレームに追加します。
* variable <- rbind(variable, vector)
* もしサイズが実際の配列のサイズと一致しない場合、悪いことが起こるかもしれません。
*/
void RAppendMatrixRow(long rhandle,string variable,double &vectr[],int size);

/**
* 変数が存在する場合はtrueを、それ以外の場合はfalseを返します。
*/
bool RExists(long rhandle,string variable);

/**
* 式を評価し、boolを返します。Expression には、論理値として評価される任意の R コード
* を指定することができます。もしそれが論理ベクトルであれば、
* 最初の要素だけが返されます。
*/
bool RGetBool(long rhandle,string expression);

/**
* 式を評価し、整数を返す。式は、整数として評価される任意の R コード
* を使用することができます。浮動小数点の場合は、
* 丸められます。ベクトルの場合は、最初の要素だけが返されます。
*/
int RGetInteger(long rhandle,string expression);

/**
* 式を評価し、doubleを返す。
Expression は、浮動小数点数として評価される任意の R コード
* である。もしそれがベクトルであれば、最初の要素のみが返される。
*/
double RGetDouble(long rhandle,string expression);

/**
* 式を評価し、doubleのベクトルを返します。Expression は
* 浮動小数点数のベクトルとして評価されるものであれば、何でもかまいません。
* 戻り値は、
* 配列にコピーできた要素数です。サイズより大きくなることはないが、小さくなることはあるかもしれない。
* サイズが一致しない場合、デバッグレベル 1 で警告を出力します。
>>> 100000要素に制限
*/
int RGetVector(long rhandle,string expression,double &vectr[],int size);

/**
* デバッグ用に print(expression) をしておく。outout は
* debuglevel 0 のデバッグモニターに送られます。
*/

void RPrint(long rhandle,string expression);

 
elibrarius#:

MTとRの間で変数と配列を双方向に転送する。引用、バックナンバー、コマンドはこちら
情報ありがとうございます。この可能性に注意します。ところで、往復の遅れはどの程度なのでしょうか?
 
Aleksey Vyazmikin#:
情報ありがとうございます、この可能性に注意します。往復の遅延時間はどのくらいですか?
非常に速い。メモリー交換で。ファイルでもピップでもない。
 
Vladimir Baskakov#:
2つの波形の交差を打ち破った者はいない。
信じられませんよね。
平均化を行えば、綿棒と同じ結果になり、信号のロールオーバータイムも数秒以内と同じになります。
---
私自身、ショックでした;)
理由: