MT4のチャートに出現するシグナル(HIGH,LOW)文字を認識しようとしていますが、旨く認識できません
表示した画面からシグナルを切り出して、24bitmapで保存した画像は下記の通りです。
https://www.dropbox.com/s/uq13ol6obc7k4cx/Low.bmp
https://www.dropbox.com/s/pgs963cbo763wdr/HIHG.bmp
スクリプトのどこが悪いのか、教えて頂きたく宜しくお願い致します。
(スクリプトは長くなりますのでコメントに書きます)
また、正しいコードをご教授下さい。
現在のスクリプトです。
-------------------------------------------------------------
ACW(GETID("21904: Land-FX MetaTrader 4 Terminal - デモアカウント - USDJPY,M1"),-8,-8,1616,884,0)
BTN(LEFT,DOWN,764,106,300)
ACW(GETID("21904: Land-FX MetaTrader 4 Terminal - デモアカウント - USDJPY,M1"),-8,-8,1616,884,0)
MOUSEORG(GETID("21904: Land-FX MetaTrader 4 Terminal - デモアカウント - USDJPY,M1"))
while true
//左上;USDJPY
IFB chkimg("C:\uwsc\HIGH.bmp",772,114,912,184) = true then
exec("C:\uwsc_html\USDJPY_B.EXE")
print "USDJPY_B"
sleep(15)
endif
IFB chkimg("C:\uwsc\LOW.bmp",772,114,912,184) = true then
exec("C:\uwsc_html\USDJPY_S.EXE")
print "USDJPY_S"
sleep(15)
endif
//右上;EURJPY
IFB chkimg("C:\uwsc\HIGH.bmp",1400,114,1550,184) = true then
exec("C:\uwsc_html\EURJPY_B.EXE")
print "EURJPY_B"
sleep(15)
endif
IFB chkimg("C:\uwsc\LOW.bmp",1400,114,1550,184) = true then
exec("C:\uwsc_html\EURJPY_S.EXE")
print "EURJPY_S"
sleep(15)
endif
//左下;GBPJPY
IFB chkimg("C:\uwsc\HIGH.bmp",772,490,912,558) = true then
exec("C:\uwsc_html\GBPJPY_B.EXE")
print "GBPJPY_B"
sleep(15)
endif
IFB chkimg("C:\uwsc\LOW.bmp",772,490,912,558) = true then
exec("C:\uwsc_html\GBPJPY_S.EXE")
print "EURJPY_S"
sleep(15)
endif
//右下;AUDJPY
IFB chkimg("C:\uwsc\HIGH.bmp",1400,490,1550,558) = true then
exec("C:\uwsc_html\AUDJPY_B.EXE")
print "AUDJPY_B"
sleep(15)
endif
IFB chkimg("C:\uwsc\LOW.bmp",1400,490,1550,558) = true then
exec("C:\uwsc_html\AUDJPY_S.EXE")
print "AUDJPY_S"
sleep(15)
endif
sleep(1)
wend
-------------------------------------------------------------
HIGHとLOW画像はスクリプトと同じフォルダに保存してください。
背景色を透過色として認識させます。
IFB chkimg("HIGH.bmp",1,772,114,912,184) = true then
https://www.dropbox.com/s/mmd2dv3mn0pvtya/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202014-06-27%2014.14.04.png
リクエスト拝見しました。
土日中メドの回答で大丈夫でしょうか
スケジュールは、土日中で構いませんので宜しくお願いします。
<使い方>
CHKIMG( [画像名, 透過色/色無視, x1, y1, x2, y2, 番号, 色幅] )
誤)chkimg("C:\uwsc\HIGH.bmp",772,114,912,184)
正)chkimg("C:\uwsc\HIGH.bmp",0, 772,114,912,184)
ご指摘を頂きまして有り難うございます。
仰せの通り、0を追加しましたら見事稼動しました。
透明色は省略できるのでは、と思っていましたが省略できないのですね。
22:19までも画像認識が出来ずにいましたが、使用方法が分かりましたのでいろいろと応用したいと思います。
重ねてお礼申し上げます。
CX20 様よりご指摘を頂きまして、修正しましたら左上4画面のシグナルは無事に稼動しました。
その他の画面も稼動するかどうか、様子を見たいと思います。
私のほうで動作を検証していた間は,
BMP画像をJPGとして保存しているためマッチしないのではないか?
という疑惑がありました。
(DROPBOXの画像を見るとぼやけていたため)
しかし,DROPBOXにアップロードした際にぼけたのであって,
お手元のBMP画像はぼけていないようですね。
※http://f.hatena.ne.jp/language_and_engineering/20140627230617
上記のコメントでで画像認識が旨く行ったと書きましたが、それは2回とも「LOW」の場合でした。
残りの2回は「HIGH」シグナルでしたが、こちらは認識しませんでした。
一旦は、出来たものと思いましたが、やはり基本的なところ分かっておりませんので土日の回答をお願いしたいと思います。
お手数ですが、宜しくお願いします。