2025/02/25
先般 mam 様の
FANN(Fast Artificial Neural Network Library)を使って
最高気温をAIに予測させる Delphiでお手軽プログラミング
をそのまま使用して向こう1年間の最高気温予測アプリをアップロード
させていただきました。(感謝)
もしかしたら、売上なども予測できるのではないかと思い、
売上予測アプリも作ってみました。(感謝)
私は2023/05月からFXというのをやっていますが、2025/01月現在
うまくいっていません。
FX予測の参考資料として2024/11月に経済指標記録アプリを
アップロードしましたが、
今回更にFX予測の参考としてFX予測ツールを作成しました。
このツールはドル円に特化しています。
今回のツールはかなりマニアックなのでほとんど参考にならないかも知れませんが、
何かの役に立てば幸いです。
なお、このアプリは Windows で動作します。
マックなどでは動作しませんのでご了承願います。
使用方法
アプリケーションファイル等のダウンロード
ファイル等は次からダウンロードできます。
ダウンロードの際画面右上のダウンロードマークをクリックすると
ファイルが未確認と表示され、マルウエアの危険が表示されたら、
その下のマルウエア検査ボタンをクリックし、マルウエア検査通過後に
ファイル名がFxT1.zipとなると思います。
FxT1.zipファイルを適当な場所に移動して解凍します。
(ファイルを右クリックして解凍を選択します。)
ファイルを解凍すると、FxT1フォルダの下に次のファイル、フォルダ
が表示されます。
Data フォルダ
CSV フォルダ データベースのデータをCSVファイルに保存するフォルダです。
MTData フォルダ MT4以外のツールで作成した場合はこのフォルダに保存してください。
fannfloat.dll 機械学習用のファイルです。
FxT1.exe アプリの実行ファイルです。
OutCSV.txt MT4からCSVファイルに書出す MT4用の プログラムコードです
SQDB.DB SQLite データベースファイルです。(無料のデータベース)
SQLite のサイトを見ると、世界で一番使われていると書いてあります。
WebView2Loader.dll Edge ウエブブラウザを動作させるファイルです。
マイクロソフトから使用させていただいています。
FXデータの取得(ダウンロード)
データの取得は MetaTrader4: [MT4] という FX取引ツールを使っていることを前提として説明します。
[MT4] でなくてもデータ取得できると思いますが、その場合は独自に
取得していただくことになります。
MetaTrader4 [MT4] は
https://www.metatrader4.com/ja/download
からダウンロードできます。
ただし、私は XMTrading というところのPC用ツールからダウンロードしており、
少し環境が違うかも知れません。
https://www.xmtrading.com/jp/mt4
なお、XMTrading はデモ口座で使用することもできます。
[MT4] はプログラムを作成することが出来るのですが、
今回は自作のFXデータの取得(書出)プログラムを使用します。
MT4データ書出 プログラム作成の手順
1 新規プログラムの登録
[MT4]をインストールすると、 MetaEditor4 というプログラム作成ツールも
同時にインストールされますので、 MetaEditor4 を起動します。
画像01_メタエディタ起動 参照

上欄のファイルメニューから新規作成を選ぶとプログラムタイプ選択画面が
現れますので、スクリプトを選択してください。
スクリプトは起動されると 1回だけ実行するタイプのプログラムです。
画像02_スクリプト選択 参照

スクリプトを選択するとファイル名登録画面が出ますのでファイル名を
登録してください。
ファイル名は UOutCSV_script.mq4 としていますが、
解り易い名前にしていただければ結構です。
画像03_ファイル名登録 参照

登録が終わるとプログラム編集開始画面になりますので、
プログラムを記述します。
画像04_プログラム開始画面参照

プログラムはプログラムと同じディレクトリにある
添付文書 OutCSV.txt をご覧ください
//+————————————————-+
プログラムの編集が終わりましたら、上欄メニューの [コンパイル] を
クリックしてください。
G05_コンパイル 参照

入力文字に間違いがあるとエラーが表示されますので、エラーが表示されたら
入力した文字を確認してください。
私の環境ではこのプログラムで動作しています。
書出項目は次の通りです。
(サーバー時間) (ローカル時間)
日付, 時間, 始値, 高値, 安値, 終値, 日付, 時間, MA200
実際のデータは次のようなものです
2024/12/24,00:00,157.027,157.047,157.022,157.047,
2024/12/24,06:00,156.939
(ローカルの日時、MA200)
MA200(Moving Aberage 200)
というのは移動平均価格で、過去200行の終値の平均値です。
プログラムはドル円に特化しており、小数点前3桁、小数点以後3桁の
6桁で出力しています。
ドル円以外の通貨またはMetaTrader 4 以外のトレーディングソフト
を使用しておられる場合は
上記のデータの並びになるようにしてください。
桁数もできれば揃えていただくのが望ましいです。
サーバ時間とローカル時間
プログラムの初めの方で
dft = 3600 * 6; //6時間の時間差
としてありますが、MXTrading場合サーバが
アフリカの東、セーセル国にあるのでローカル時間とサーバ時間の時間差が
6時間になります。
サーバの設置国によって時間差が異なりますので、時間数を
適宜修正してください。
既に書出ファイルが存在する場合は、最終行の日時を調べて
次の日時から追加で書き出しています。
(多分その方が処理時間が短いと思います)
使うデータは前2月分ですので、ファイルが大きくなりすぎる場合は、
適宜前データを削除していただいても良いかと思います。
書出操作方法
[MT4] の操作方法はしばらく使って慣れるのが一番と思います。
[MT4] を起動して、ドル円の通貨ペアを表示させ、適当な時間軸を
選択してください。
1分の時間軸もありますが、あまりにせわしないので、
(それにファイルサイズも大きくなるので)
5-30分程度の時間軸が良いかと思います。
G06_MT4起動画面 参照

G07_スクリプト選択画面 参照

左端の [ナビゲータ] ボックスの中の スクリプトを開いていただくと
コンパイルした ファイル名(UOutCSV_script.mp4)
が表示されますので、ファイル名を右クリックして
[チャートで実行] メニューをクリックして、
[End of OutputData] と表示されると書出終了です。
書出はごく短時間で終了するはずです。
書き出したファイルの確認
書き出したファイルをファイルエクスプローラで検索してみてください。
Windows(C:) を開くと、末尾の方に [ユーザ]ディレクトリがあり、
[ユーザ]ディレクトリを開きます。
G08_ユーザ 参照

G09_出力したファイル 参照

ユーザディレクトリから ユーザ名、AppData、Roaming
とたどっていくと、 [MetaQuotes] ディレクトリにたどり着きます。
MetaQuotes ディレクトリの中の [Terminal] ディレクトリを
開きますと、 数字が並んだディレクトリがあると思いますので、
その中の [MQL4] ディレクトリの中の [Files] ディレクトリの中に
出力したファイルがあると思います。
ファイル名はUSDJPY30.CSV などとなっており、
取引通貨ペア名、末尾の数字は時間足を示します。
ファイル名で時間軸を判断していますので、ファイル名を変えないでください。
なおファイルは CSV ファイルと呼ばれる形式のファイルで、
ファイルをダブルクリックすると メモ帳 や 表計算ソフト などで
閲覧編集することができます。
なお、表計算ソフトで編集した場合は、 編集結果を
CSV ファイルとして保存する必要があります。
表計算ソフトで保存したファイルが CSV ファイルにならない場合は
ファイルメニューの エクスポート を選択する事で
CSV 形式のファイルに出力できると思います。
G10_メモ帳画面 参照

私の環境では以上のようなディレクトリに保管されています。
ファイルが確認できたら前段処理は一段落です。
お疲れ様です。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
FxT1 アプリの使用方法
FxT1.exe ファイルをダブルクリックしてアプリを起動する

1 機械学習による 10コマ後の高値、安値、終値の予測
10コマというのは選択した時間足の10フレーム後
5分足(刻み)を選択した場合 50分後
15分足(刻み)を選択した場合 2時間半後
30分足(刻み)を選択した場合 5時間後
というように時間足10フレーム分後の値をを予測します。
上部の [FX読込] ボタンをクリックする。
上記 「書き出したファイルの確認」 項目で調べた場所を
辿っていき、調べたい時間足のファイルを選択する。
2回目からは前回の場所を表示しますので辿っていくのは最初だけです。
G12_ファイル選択 参照

[FX読込]ボタンの右に表示日数を入力することで表示日数を20日まで
伸ばすことができます。
日数は ↓↑ キーを押すことで変化します。
ただしあまり長いと予測の表示が短くなり、表示が見にくくなりますので、
表示期間は長くない方が見やすいかと思います。
初期値は 3日としています。
ファイルを選択すると読込終了の表示が出ますので、[OK] ボタンを
クリックしてください。(リターンキーも可)
続いて 1000回学習します の表示が出ますので、[OK] ボタンを
クリックしてください。
学習が終わると グラフを表示します の表示が出ますので[OK] ボタンを
クリックしてください。
G13_グラフ表示 参照

グラフの下欄に
最終値、予測値、予測との差値が
高値、終値、安値の順番で表示されます。
これが相場変化の目安となるものと思います。
予測値は10コマ先の値です。
30分足で計算した場合は 5時間後の予測値となります
グラフ表示後、
[3機学] ページ に機械学習の関係図とMSE値(最小二乗誤差)が
表示されます。
MSE値(誤差)は小さい方がよいようです。
学習回数を増やすと多少誤差は少なくなるようですが、時間がかかるし、
イベントがあると予測は大きく変わる場合が多く、予測の信頼度は
あまり向上しないと思われます。
従って1000回程度の学習が妥当と思われます。
G14_機械学習図 参照

機械学習関係図はよくわかりません。
上段の青丸5個は 年 月 日 時 分 を表し
下段の青丸3個は 終値、高値、安値を表しているようです。
CSVから読み込んだデータと、予測値 10コマは4FX表 ページ に
表示されます。
この表はメモリ上のデータですので、アプリが終了すればデータは消えます。
データを保存したい場合は
8CSVタブを開いて 1 のFX予測 行にカーソルを置いて
[CSV書出] ボタンをクリックすることで
Data\CSV フォルダ内に CSVファイルとして保存します。
2 プロの目 プロの見方
プロの目では現在の為替レートが上がり方向なのか下がり方向なのか
その原因は何かをウエブで検索します。
ウエブの参照は
mam様の TEdgeBrowserでWebView2を使う 記事
https://developer.microsoft.com/ja-jp/microsoft-edge/webview2/
を参照させていただきました。(感謝)
プロの持つ情報量は素人の情報量と比較にならないほどの差が
あると思います。
例えば政府の〇〇さんが〇〇とおっしゃった、などの情報は
初心者マークの私はわかりませんので、ウエブで教えてもらい、
参考にさせていただくのですが、要約して、
結論を上昇↑ 下降↓ 横ばい→ で示し
理由と参照ウエブサイトを記録しておくことで
判断の根拠となるのではないかと考えました。
プロの目といっても、はっきり結論がある場合と
結論も理由も曖昧な場合とがあるようです。
特に横ばいの状態は、結論も理由もわからない場合が多いようです。
変動が大きくなったときがチャンスであることは初心者の私にも
わかりますが、変動の理由を知っておくことは変動の
大きさと期間を推測する上で大切なことと思い、この項目を設けました。
2.プロの目の使用方法
[2プロの目] タブをクリックすると次の画面になり、
日付入力欄にフォーカスが移ります。
日付欄と次の時間欄は現在の日付時間が表示されています。
日付時間が良ければ [Enter] キー(Returnキー)で飛ばしてください。
日付時間を修正する場合は ↓↑ キーで変更できます。
G15_プロの目画面 参照

結論 欄に入ると何も記録されていない状態なら [7.ブラウザ] ページに移りますが、何か記録されていれば移りません。
ブラウザページに移りたい場合は [F12] キーを押すことで
ブラウザページに移れます。
ブラウザページでは
グーグルクロームで [ドル円] と入力した状態になります。(はずです)
G16_ドル円図 参照

この画面を下にスクロールして トップニュース 項目があると思いますので、
G17_トップニュース図 参照

任意の項目を選択すると次の画面となって、
G18_プロの目 参照

下欄の結論、理由を控えて [検索元に戻る] ボタンをクリックすると
元の画面に戻ります。
画面にブラウザページで記録した結論、理由、URLが記録されていると
思いますので(はずです)、[登録(R)]ボタンをクリック 又は
ボタン上で [Enter] キーを押せば登録し、登録内容が上表に
表示されます。
登録内容を修正したい場合は表内で [F3] キーを押すことで修正できます
G19_結果登録 画面参照

3 イベント(主に経済指標)
イベントには経済指標の他、要人発言、商習慣などいろいろな要素が
あるようです。
主に経済統計や、利上げ、利下げなど、経済指標が中心ですが、
例えば総理大臣が代わり、今度の総理大臣は硬派だから利上げが
ありそうだ、とか、国会議員の選挙期間中は、過去の例では上昇する
など、実際の金利変化がなくても雰囲気で相場が動くことがあります。
また、3月は国や多くの企業の決算月で、大きな決済が行われたり、
五十日[ゴトオビ]のように企業の決済に伴って相場が動くことも
あります。
つまり何かの出来事(イベント)をきっかけに景気の先行きを見越した
相場(為替レート)の変化が起こることになりますが、
日本での出来事の場合は日中の相場に変化が起きますが、
米国の場合は日本時間の夜、9時頃から12時頃にかけて経済指標の
発表などが行われるため、相場が動くのは夜中になることが多い。
また、日本のイベントに較べ、米国のイベントによる相場への影響が大きい
ため、主な経済指標や、その数値の変化に応じた、過去の相場への
影響(ドル円レートの変化)を記録しておくことで、ある程度相場の変化を
予測できるのではないかと考え、イベントの記録をしてみることにしました。
為替レートの前価格後価格を検索表示しますが、データを読込んで
いることが前提です。
前価格は発表時間の直前終値、後価格は発表時間の1時間後の
終値を表示します。
ただし、経済指標の発表日と発表時間がない場合の前後価格は
表示しません。
主な経済指標として、次の経済指標を収録しました。
これらは経済指標カレンダーに掲載されますので、記録できると思います。
なお、この経済指標記録アプリは以前作成したものに、経済指標
インディケータ値の差とインディケータ発表前後のドル円値を追加した
ものですが、チャートは省略しました。
経済指標を追加することもできますので、必要に応じて追加してください。
追加した経済指標の検索URLは調査願います。
CES Current Employment Statistics 米非農業部門雇用者数
UR Unemployment rate 米失業率
ADP ADP National Employment Report ADP非農業雇用統計
FOMC Federal Open Market Committiee FOMC声明
FFR Federal Funds Rate FF金利
GDP Gross Domestic Product GDP国内総生産
ISM ISM Manufactuaring Report ISM製造業景況指数
ISM ISM Non Manufactuaring Report ISM非製造業景況指数
TB Trade Balance 貿易収支
CPI Consumer Price Index CPI消費者物価指数前年比コア
CPI Consumer Price Index CPI消費者物価指数前月比コア
RS Retail Sales 小売売上高前月比コア
PCE Personal Consumption Expenditures
PCE個人消費支出価格指数
CCI Consumer Confidence Index 消費者信頼感指数
IPI Industrial Production Index 鉱工業生産指数前月比
HSBP Housing Starts & Building Permits 住宅着工件数
EHS Existing Home Sales 中古住宅販売戸数
日銀金利
要人発言
日銀介入
選挙
五十日(ゴトオビ 毎月の 5,10,15,20,25,30日 の締日)
これらの経済指標は Investing.com 様のサイトを参照させていただいて
をります。(感謝)
https://jp.investing.com/economic-calender/
経済指標記録の使用方法

G20_イベント記録1 参照
[5イベント] タブをクリックすると、イベント区分欄に入ります。
上表はイベントを記録したものです。
イベント区分は 経済指標、要人発言、日銀介入、時季 の
4つの区分にしていますが区分を増やすこともできます。
イベント区分欄で ↓↑ キーを押すことでイベント区分を選べます。
[Enter]キーを押すと次の イベント和名 欄に移ります。
[Escape]キーを押すと前の項目に戻ります。
やはり ↓↑ キーで イベント和名 を選ぶことができます。
新しい イベント区分 や イベント和名 を作成する方法は
後ほど説明します。
今回は ISM製造業購買担当者景況指数 を選びました。
[Enter] キーを押すと、 [7ブラウザ] ページで、 ISM 指数を
閲覧します。
画面をスクロールしていくと数値が見えてきます。
G22_イベント検索 参照

画面下の発表日、時間、結果値、期待値欄にそれぞれ入力してください。
日付 時間は ↓↑ キーで選択出来ます。
[Enter]キーを押すと次の 項目に移ります。
[Escape]キーを押すと前の項目に戻ります。
結果値、期待値は小数点を入れないでください。
0.25 の場合は 025 と記録する要領です。
[検索元に戻る] ボタンをクリック または [Enter] キーを押すと
ブラウザページに飛ぶ前の イベント記録 ページに戻ります。
ブラウザページでメモした 発表日、時間、結果値、期待値が
当該欄に転記されています。(はずです)
[検索元に戻る] ボタンをクリックしないと転記されません。
[Enter] キーで次の項目に移っていくと、差値、前価格、後価格、差額
を計算して各項目に数値が入れられていると思います。
差値 は イベント(経済指標)値の 期待値と結果値の差です。
前価格は 指標が発表される直前の終値です。
(小数点を抜いています)
後価格は 指標が発表された 1時間後の終値です。
差額は 前価格と後価格の差額です。
G23_イベント記録2 参照

イベント区分名、イベント名の新規登録、変更方法

G24_イベント表 参照
6.1 イベント表
イベントを記録した表です。
表内で修正もできますが、修正後は ↓↑ キーで他の行に移り、
修正を確定させてください。
表の下の入力欄で修正する場合は表内で [F3] キーを押して
修正モードにして修正してください。
新規入力の場合は各項目に入力し、
[登録] ボタンをクリック又は [Enter] キーを押すことで登録できます。
各項目は [Enter] キーで次の項目に移り、 [Esc] キーで前の項目に
戻ります。
イベント区分欄では ↓↑ キーで選択出来ます。
イベントの表示順番を変える方法
表内で CNT 番号を表示したい順番に変えることで順番を変える
ことができます。
6.2 イベント区分表
イベントを区分した表です。
経済指標、要人発言、日銀介入、時季の区分を作っています。
新しい区分を作る場合は下欄の区分名、摘要欄に入力して
登録ボタンをクリックまたは [Enter] キーを押すことで登録できます。
[7.ブラウザ]ページ
検索ワード初期値は [経済指標] となっています。
その状態で [Enter] キーを押すと
楽天銀行様の 経済指標カレンダー が表示されます。(感謝)
https://www.rakuten-sec.co.jp/web/market/calendar
他は普通のブラウザと同様です。
[8.CSV] ファイルの書出・読込
このアプリ内のデータを CSV ファイルに書出、またはCSVファイルからの読込は、
[8.CSV] ページの表内ファイル名欄にフォーカスがある状態で
[CSV書出] または [CSV読込] ボタンをクリックすることで読書できます。
書出の場合は問題ありませんが、読込の場合は現在のデータを消して、
読込を行うので、現在のデータは消えてしまうことに留意してください。
以上
この説明を見ていただくだけでも嬉しいですが、
使っていただければもっと嬉しいです。
最後までご覧いただきありがとうございます。
コメント