FC2ブログ
にほんブログ村 為替ブログ システムトレード 自作EA派へ にほんブログ村 為替ブログ ユーロドルへ

ほったらかしのメタトレードで資産1億円を目指す

今月から楽天のアフェリエイトをやっています。
サイトを経由するだけで、購入金額の1%が懐に入ってきます。
ぜひぜひ、皆様もお試しくださいね。

今月から楽天のアフェリエイトをやっています。
サイトを経由するだけで、購入金額の1%が懐に入ってきます。
ぜひぜひ、皆様もお試しくださいね。

08 | 2019/09 | 10
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 - - - - -

最強EA 9.2

無料ダウンロード

さてさて、前回のNGORKのURL自動設定も完了したので、
全システムを稼働チェックを実施している。

システムの流れとしては、
・18:00ごろ PCを自動で起動
・NGROKの立ち上げ
・メタトレードの起動


最初のPCは、BIOSの中に、決めた時刻で電源を入れる設定があったので採用した。
パソコンへのログインについては、パスワード無しに入れるように設定。
スタートアップへのバッチファイルの作成。


pythonマクロの起動。

python C:\Users\moto\Documents\GitHub\binary_robot\binary.py
cmd /k


メタトレードの起動。

python C:\Users\moto\Documents\GitHub\binary_robot\ngrok_refreash.py
cd C:\Program Files (x86)\OANDA - MetaTrader\
terminal.exe "C:\Users\moto\AppData\Roaming\MetaQuotes\Terminal\3212703ED955F10C7534BE8497B221F4\config\test.ini"



という流れだ。


ちょっと、つまずいたのであるが、メタトレードでスクリプトを起動する
INIファイルを書く際に、DLLインポートをしないと、メタトレード側でエラーになる。

ここはちょっと注意だ。


昨日、一応動作確認して、完全にシステムとして動作することを確認した。


来週から、チャットワークで受けたサインから、CSVデータをバンバンと吸い上げていく。

そして、ある程度、データが溜まった段階で、統計解析、AIパターン認識データとして
活用していくことになる。


統計解析については、だいたいJMPを使う事を想定している。

AI認識の方は、   
これまた、まだまだ未開のゾーンである。
(これが出来れば、AI技術者として応用範囲は一気に高まるだろう・・・)


急に肌寒くなってきた。

昨日は北陸出張だったが、さすがに寒かった。

もう夏は完全に終わったんだなあと実感・・・


来週末は久々の山登りに行ってくる。
https://www.facebook.com/events/1357174641096551/


あと、最近、中国語の勉強にも拍車がかかってきた。
(だいぶん、ネットの動画を見ても意味が分かるようになってきた。)

こちらの方も約9か月になるが、ようやく3合目まで来たかなあと実感。
登り続けることが大事なので、マイペースで頑張って行こう


最近のニュース
・わんこを飼うことになった。
・リップスティックを練習する(防具をamazonで頼んだ)
・冬場に向けて、家の片づけ、衣替えを開始する
・子供の参観日
・実家の法要



スポンサーサイト





2019/09/21 07:54|MT4連携TB:0CM:0
ついに完成しました。

NGROKのリフレッシュと、WEBHOOKのリダイレクト

この2本を作るために、いったいどれだけの時間がかかったことか・・・


その中で、いくつかつまずいた点があったので、簡単にメモしておく

結局のところ、doPost(e)で受審したメッセージを、
そのまま、リダイレクトするのに、
JSONオブジェクトをこねくり回すのがポイントだった。

リストを見てもらえば、分かると思うが、
入れ子のJSONというのは、かなり深い構造になっている。

JSONに始まり、JSONに終わる。

今回はJSONというものが、いったい何であるのか?
それを全くわかっていなかった自分と
どれだけ向かい合えたのか?

それが課題である。

あとWEBのPOSTメッセージというものの、
基本的な構造など、WEBアプリケーションに必要な
かなりの知識を得ることができた。


あとの課題

NGROKが適当な時間でEXPIREされる。
これを適宜ウォッチングして、もしEXPIREなら
再起動して、リフレッシュを行う

これを完成させれば、もうすべてのプログラムが完成したことになる。

というわけで、来週からCSVデータをがっちり集めていくぞ!!


-----------------------------
function doPost(e){
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/12pSM7h3C4vmCp9u22lAZLe8rRfYOINNMZMjXWCA9CxI/edit#gid=0");

var param = e.postData.getDataAsString();
var js = JSON.parse(param);
var sheet = ss.getSheets()[0];
var lastRow = sheet.getLastRow();
var url = sheet.getRange(lastRow, 2).getValue();
var sheet = ss.getSheets()[1];

var data = {
"webhook_setting_id": js.webhook_setting_id,
"webhook_event_type": js.webhook_event_type,
"webhook_event_time": js.webhook_event_time,
"webhook_event":{
"from_account_id": js.webhook_event.from_account_id,
"to_account_id": js.webhook_event.to_account_id,
"room_id": js.webhook_event.room_id,
"message_id": js.webhook_event.message_id,
"body": js.webhook_event.body,
"send_time": js.webhook_event.send_time,
"update_time": js.webhook_event.update_time
}
}

var options = {
'method': 'post',
'contentType': 'application/json',
'payload': JSON.stringify(data)
}

var response = UrlFetchApp.fetch(url,options);
}

-----------------------



2019/09/16 18:52|MT4連携TB:0CM:0
現在のシステムでは、WEBHOOKを受けるための
ローカルホストに、NGROKを使っているが、
NGROKの有効期間があるために、ときどき再起動しなければならない

再起動時には、アドレスが毎回変わってしまうので、
これは面倒である。

流れとしては、pythonの方でタイマーを仕掛けて、
NGROKを再起動させることと、
GOOGLE APP SCRIPT側に、アドレスを送信して
それをSPREAD SHEETに転記しておく

CHATWORK側からのWEBHOOKを受けるための
トンネルサーバーを作っておき、URLをリダイレクトさせるという仕組みだ。

このためには、GASには、POST関数を2つ作っておく必要がある。
(最初は1つのスクリプトで、送信先で分岐処理しようと思ったが、
別にスクリプトを分ければいい)

それを、この記事を書いていて気が付いた。

うーん、やはりブログに書き留めることで、
頭の整理ができて、問題解決につながるものである。


という訳で、今週は飲み会が2回もあり、来週は中国出張ということで、
プログラムができるのは、しばらく先かなあ・・・


台風が去って、日本列島はとんでも無い状態になっている。

次の台風が来る前にも、やはり備えは重要・・・


1)飲料水
 山用のグッズで、飲み水に替えるものがある。

2)電気
 太陽電池式のモバイルバッテリー

他にも、ネタがあれば、こちらも書き留めておく。


中国語の勉強も、しばらく止まっている。
(これはプログラム言語よりも、ずっと高度で時間がかかる)


というわけで、そろそろ会社に行く
(那么,时间就没有了,我差不多要上班了)

2019/09/11 07:38|MT4連携TB:0CM:0
ついに最終段階!!

と、思いきやトラブルに見舞われています。

string symbol = sep_str[0]+ sep_str[1];  //通貨ペアの文字列

if(Symbol()!=symbol){
for (long i = ChartFirst(); i!=-1; i = ChartNext(i))
{
ChartSetSymbolPeriod(i,symbol,ChartPeriod(i));
}
}

通貨ペアを受け取ってから、ChartSetSymbolPeriodにて、
シンボルを切り替えようとすると、

・サーバーのスクリプトが停止する
・シンボルは切り替わるが、タイムラグが10秒ぐらいかかる
・ときどきメタトレードが落ちる

ちょっとこれは致命的だぞ・・・


うーむ、やはり想定した通貨ペアのチャートを複数出しておき、
そこからスイッチングさせるしかないのだろうか・・・

仕方なく、6個のチャートをマークすることにした。

USD/JPY LOW
EUR/JPY LOW
AUD/USD LOW
AUD/JPY LOW
USD/JPY LOW
GBP/JPY LOW


今日は、ここをコーディングする気もうせてしまい
少々疲れたので、寝ようかな。。。


それとNGROKのアドレスが毎回変わる件、
GOOGLE APP SCRIPTを使われている方がいて、
それを参考にして、こっちも自動アサインを
行うようにしなければ・・・

自宅スマートホームプロジェクト~自動消灯・点灯システム~ - ピリ辛的備忘録







2019/09/04 21:53|MT4連携TB:0CM:0
平日の取引時間なので、TICKデータの吸い上げについて検証しました。

MT4側のマクロとしては、2つあります。

bop_server.mq4 ⇒ スクリプト

これはWEBサーバーです。
PYTHON側から送られた、メッセージに反応して、
CSV排出させるファイル名をCONFIG化して、
グローバル変数内の、リクエストのフラグをONにします。

tick_out_CSV.mq4 ⇒ エキスパートアドバイザ

これはTICKデータをCSVに排出させる本体です。
グローバル変数のリクエストを見て、
フラグが立っていたら、CONFIG内のファイル名を見て
ファイルをOPENして、そこにカレントの値を記入します。

いくつかポイントがありました。

タイマー
 最初はTICKの変動に対して、集計しようと思いましたが、
そもそも、TICKが変わらないと、データが更新されません。
 ゆくゆくは秒足で解析をしたいため、1秒のタイマイベントで起動するようにしました。

int OnInit()
{
//--- create timer
EventSetTimer(1);

//---
return(INIT_SUCCEEDED);
}



現在値
 これは現在の時間と、現在の価格ですが、次の関数を使っています。

FileWrite(handle, TimeToStr(Time[i], TIME_DATE), TimeToStr(TimeCurrent(), TIME_SECONDS), TimeToStr(TimeLocal(), TIME_SECONDS),Ask );

現在の時間
 Timelocal()を使っています。ローカルPCの時間を読み取っています。
現在の価格
 これはASK,BITのどっちでもいいのですが、ASKにしています。

残務

1)通貨ペアの切り替え

今回、まだ出来ていないところは、リクエストの中に通貨ペアの情報があるのですが、
現在は、EAを張り付けたチャートの通貨ペアの読み値しか入っていません。

所定の通貨ペアの値を出させるために、EA内で通貨を変える必要があるのですが、
いまいち、やり方が分かっていません。

2)タイマイベントの終了

一定の時間分のCSVデータを排出させたら(目安10分)
タイマーを停止しなければなりません。

とりあえず、起動タイマーがONになったら、終了タイマーを起動させるように
すればいいのだと思いますが、いまいちタイマーの使い方が分かっていません


上記の2点をコーディングすれば、一応目的としているAIトレードシステムの
データ収集機能は完成したことになります。


今週は火曜日ですね。

昨夜も22時まで残業だったので、帰宅して2時間ぐらいのコーディングでした。

今日も、どれだけ時間がかけられるのか分かりませんが・・・


感想

GITHUBを覚えてから、プログラムを作るのが割合快適になりました。
ただし、どうしても英語でコメントを入れないとならず、
この辺りが苦痛です。

そもそも、私のプログラムを再利用される方がまずはいないと思いますけど。。。

プログラマとして、独立自走するには、こういうマメなことを
やっていかないと駄目ですね・・・

私には、プログラマには、成れないのかもしれない。

2019/09/03 07:31|MT4連携TB:0CM:0

motochan

Author:motochan
人に感謝されることをやっていく。誰かに喜ばれること。先に歩いて、道を作っていくこと。喜ばれることを、生きがいにしていく。時代は、後でついてくるもの。自分で感じたことを、自分がやっていく。世の中にないものは、自分で考えていく。理想とするものは、自分が自ら考える。自己の満足が、他人の満足につながる。


詳細はコチラ>>

Copyright(C) 2006 テクニカル講座上級の部屋 All Rights Reserved.
Powered by FC2ブログ. template designed by 遥かなるわらしべ長者への挑戦.