無料でロボットをダウンロードする方法を見る
Twitter上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
エキスパート

ONNXモデルによる手書き数字の認識例 - MetaTrader 5のためのエキスパート

ビュー:
418
評価:
(9)
パブリッシュ済み:
2023.11.24 07:32
mnist.onnx (25.83 KB)
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

手書き数字を認識できるエキスパートアドバイザー

MNISTデータベースは、トレーニング用画像60,000枚とテスト用画像10,000枚で構成されています。これらの画像は、米国国勢調査局から入手したNISTオリジナルの20x20ピクセルの白黒サンプルに、米国の高校生から採取したテスト用サンプルを「再ミックス」して作成されています。サンプルは28x28ピクセルサイズに正規化され、アンチエイリアス処理が施され、グレイスケールレベルが導入されました。

訓練済みの手書き数字認識モデルmnist.onnxは、GithubのModel Zoo(opset 8)からダウンロードしました。興味のある方は、最新のONNXランタイムでサポートされなくなったopset 1を使ったモデルを除き、他のモデルをダウンロードして試すことができます。驚くべきことに、出力ベクトルは、分類モデルで一般的なSoftmax活性化関数では処理されませんでした。ただし、これは問題ではありません。自分たちで簡単に実装できます。

int PredictNumber(void)
  {
   static matrixf image(28,28);
   static vectorf result(10);

   PrepareMatrix(image);

   if(!OnnxRun(ExtModel,ONNX_DEFAULT,image,result))
     {
      Print("OnnxRun error ",GetLastError());
      return(-1);
     }

   result.Activation(result,AF_SOFTMAX);
   int predict=int(result.ArgMax());
   if(result[predict]<0.8)
      Print(result);
   Print("value ",predict," predicted with probability ",result[predict]);

   return(predict);
  }


 マウスの左ボタンを押しながら、マウスを使って特別なグリッドに数字を書きます。描画された桁を認識するには、[CLASSIFY]ボタンを押します。




認識された桁の確率が0.8未満の場合、各クラスの確率を含むベクトルがログに出力されます。例として、空の未入力フィールドを分類してみましょう。

[0.095331445,0.10048489,0.10673151,0.10274081,0.087865397,0.11471312,0.094342403,0.094900772,0.10847695,0.09441267]
value 5 predicted with probability 0.11471312493085861
なぜか「9」の認識精度は著しく低くなっています。左斜めの数字がより正確に認識されます。


MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/47225

Pin bar and inside bar combination Pin bar and inside bar combination

Indicator to detect Pinbar + Insidebar combination.

移動平均線を高値側又は安値側に標準偏差分シフトし、ティックによって色が変化するライン指標 移動平均線を高値側又は安値側に標準偏差分シフトし、ティックによって色が変化するライン指標

移動平均線(MA)と標準偏差を利用し、且つ5ティックごとに反応して、線の色が変化する指標を作成しました。

トレーダーのためのMQL5プログラミング - 書籍からのソースコード。第1部 トレーダーのためのMQL5プログラミング - 書籍からのソースコード。第1部

本書の第1章では、MQL5言語と開発環境を紹介しています。MQL4(MetaTrader 4言語)と比較してMQL5言語で導入された新機能の1つは、オブジェクト指向プログラミング(OOP)のサポートです。これはC++に似ています。

トレーダーのためのMQL5プログラミング - 書籍からのソースコード。第2部 トレーダーのためのMQL5プログラミング - 書籍からのソースコード。第2部

第2部「MQL5プログラミングの基礎」では、このプログラミング言語の主要な概念を紹介します。本書のこの部分では、データ型、識別子、変数、式、および演算子について説明します。さまざまな命令を組み合わせてプログラムロジックを形成する方法を学びます。