Windowsアプリケーション開発に関連した他の仕事を探す
見積もり募集の結果
見積もり募集の内容
-
提示した予算
-
20,000 円 ~ 50,000 円
-
依頼概要
-
当方ソフトウェア開発を行っている会社です。
■依頼詳細
Windows10 OS上で動作する画像認識マクロ
MetaTrader 4(以下MT4と略す)上で3種類の矢印が発生するのを検知
原則ユーザーによるオペレーション無く完全自動化されている事
ただし、完全自動化システムとはいっても可用性要件はそこまでシビアではなく稼働率99%もあれば十分、また、これはメンテナンス時間を含まず、再起動中の時間も含めない。
一日一回は再起動する事が可能であるためこの点においてもさほどシビアではない
稼働率がシビアではなく、一日一回は再起動できるとは言え、メモリリークやデッドロックには注意すること(とはいえ簡易なプログラムでコードの全長が長くはならないため問題ないだろう)。
システム障害が発生した場合にはtry-catch等を利用して(コード全体をtry-catchで覆っても良いくらい)自動的にOSを再起動させる、強制オプションを忘れずに。
ハード的にはマルチディスプレイ環境でディスプレイが複数あると想定する(ある程度は融通する)。
以下仕様
1.OSの起動と同時に立ち上がり常駐する
2.OS起動直後にMT4とGoogleChromeを起動する、GoogleChromeではHighLowオーストラリアのページを開く。
GoogleChromeのウィンドウは2個同時に開く。
MT4のチャート・テンプレート・時間足等は自動で設定する必要はなく予め設定されていると想定して良い。
3.MT4上で3種類の矢印が描画されるためこれを検知。
4.タイマーが画面上に描画されている、これを画像認識により検知。
5.MT4上のチャートのロウソク右端で矢印2つ以上同時に発生した場合はGoogleChrome上のHighLowオーストラリアのページをリロードする(長時間無操作による自動ログアウトされている可能性があるため)
6.ログアウトされていた場合にはHighLowオーストラリアに自動的にログインする。
7.MT4上で矢印が描画された通過と時間足に対応するHighLowオーストラリア側のページをGoogleChrome上で開く
7.チャートのロウソク右端で矢印が2つ以上同時に発生しており、なおかつタイマーが00秒の場合にHighLowオーストラリアで矢印の向きに対応したボタンを押下する。
8.一日一回AM06:00時に自動的にOSを再起動する、再起動する場合MT4が再起動の妨げとなるためMT4の終了処理を行ってから再起動する。
9.その他何かしらの不具合が発生したときにはOSを再起動して原則ユーザーによるオペレーション無く自動的に復旧すること、この場合の再起動は強制オプションを付けること
10.どうしても自動的に復旧できない場合指定のメ
-ールアドレスにエラーを送信する。
備考
万が一インターフェイスが変わってしまっては困るのでWindows10OSとGoogleChromeは自動アップデートを停止する前提で作って良い。
HighLowオーストラリアの規定では自動化を禁止しているため一応は表面上機械的に見えないように操作する。
すなわち、ボタンを押下する座標を乱数によってランダムに決定し、ボタンを押下するタイミングも乱数によってある程度ランダムに遅延させる。
稼働時間を設定できるように設計する。
例えば08:00~22:00時までの間稼働するといった具合に。
ただし、これは必ずしもGUIである必要性はなくXMLファイルなどに記述して読み込む形式でも問題ない(当方もプログラマであるためこれでも問題なく使える)。
ただし、その場合は記述方法について簡素なもので良いのでマニュアルを用意すること。
同様に一日一回の再起動時間と自動復旧失敗時のメール送信先も設定できるようにする。
MT4やGoogleChromeのインターフェイス等は必要に応じて変更して良い。
例えばMT4上で表示される矢印の色を変更した方が画像認識しやすいと感じるのであれば変更しても良い。
MT4のチャートのウィンドウ位置等は必ずしも画像認識によって検知しなくても良い(してもよいが)。
例えば、ウィンドウの位置が常に決まっていて固定であるという想定の元に動作するというような極めて原始的かつ簡素な作りでも全く構わない。
ただし、その場合はウィンドウの表示位置について簡素なもので良いためマニュアルを用意すること。
使用するツールや言語は特に指定はない。
C#で.Net AccordやOpenCV等のライブラリを使ってもよいし、UWSCやAutoHotKey等を使用しても良い。
ただし、何を使うにしても可読性良く書くこと(と言ってもこれも簡素なプログラムでコードの全長が長くはならないため難易度は高くないだろうが)。
稼働状況がわかるよう簡素なもので良いので画面上にログを出力し続ける(矢印が発生しないと動きがなく、正常に動作しているのかしていないのか目視でわかりにくいため)。
不具合発生時に原因追求を行いやすいように原則ログを保管する。
また、不具合発生時点でのスクリーンキャプチャ等を保存して良い。
デバッグや運用テストは最大限協力します。
-
追記ですがHighLowオーストラリア及びMT4上では5分足通貨しか使わず、そして5分足通貨は7種類しかないため対応させる通貨の種類は7種類のみです。
仕様上核となる画像認識アルゴリズムさえ出来てしまえば残りは自動的に出来るような内容ばかりです。
そして画像認識の難易度それ自体もそこまで高くはないのでサクッと作ってテスト運用にたっぷり時間をかけたいです。
-
キャンセル理由:依頼内容を修正するため
タイトルの変更と若干の仕様変更を行うため
-
再登録理由:タイトルを変更するため
この仕事に似たWindowsアプリケーション開発の他の仕事を探す