3工程目/その2/変数・関数を使ってみよう!

はてなブログをご覧の皆様こんにちは!

ブログ管理人のふらんく2ndです^^

 

プログラミング経験ゼロのおじさんが独学でEAを開発する事を記録した物です。

ツッコミどころ満載かと思いますがご容赦ください♬

 

▽1コ前の工程▽

 

eazisaku.hatenablog.com

 

mql自体、トレードを前提に開発されたプログラミング言語のため、あらかじめ関数・変数として用意されているものがあります。

 

執筆時点ではそれが豊富にあるのかそうでないのかはわかりませんが笑

 

もしも少ないのなら世間に出回るEAはある程度同じロジックを元に作られていると言えますし初心者にはそのほうがありがたいカモ!

 

真相は現時点では闇の中ですがいずれわかるでしょう。

 

さて今回は「定義済み変数・組み込み関数」について調べました。

 

一例をあげると現在時刻を表示させるHour()

や、これまでにも紹介したBid、Askなどですね。

 

一方Comment関数は変数でないので時刻を表示させても変わることが有りません。

 

この他、時間軸を表示するもの、通貨ペアを表示するものなどがあります。

 

最後に()が付いているものが「組み込み関数」

()が付いていないものが「定義済み変数」

 

 

となります。

 

今回は通貨ペア、時間軸、時間、分。

 

この4つを表示させてみます。

 

表示成功!

 

コンパイル時点で7つもエラーが出てきました!

 

しかし何行目でエラーがでているか教えてくれるので英語が読めなくても修正はカンタンです!

;や,の入力忘れが多いです(泣)

 

ようやく成功したもののなんか変ですね!

 

横一列なので、というのもありますが・・・

 

コードの段階ではひとつひとつ段落を変えて打っているのですが、デフォルトでは横一列表示になるご様子!

 

それでは次回は「段落変え」にチャレンジしてみたいと思います!

 

▽次の工程▽

鋭意作成中!

 

/

宣伝です^^

 

1日1回スマホから質問に答えるだけで上場済の暗号資産がもらえる「hi dollars」

完全招待制なので招待コード「7380fpkb」を使ってもらえると嬉しいです!

e4v7n.hp.peraichi.com

 

当ブログ特典

ブログ記事を読んでいただき、LINE登録していただいた方限定の特典となります。

今、皆様にご案内している特典はこの検証記事で使用しているEAになります。

 

あなたのFXライフにぜひ当ブログ特典のFX自動売買システム(EA)を加えてみてください!

 
自動売買システムの無料モニターへ参加希望の方は、下記公式ラインにご登録いただき
 
・お名前(フルネーム)
・運用予定資金
・システム受取用メールアドレス
 
の、3点を記載の上、「無料モニター希望」とメッセージを下さい!
 
<LINEのイメージ>

 

LINEの追加は⇣のリンクをクリック、お願いします!

 

3工程目/その1/関数・変数を理解しよう!

はてなブログをご覧の皆様こんにちは!

ブログ管理人のふらんく2ndです^^

 

プログラミング経験ゼロのおじさんが独学でEAを開発する事を記録した物です。

ツッコミどころ満載かと思いますがご容赦ください♬

 

▽1コ前の工程▽

 

eazisaku.hatenablog.com

 

前回までも少し触れました「関数」や「変数」への理解を深めていきます。

前工程ではコメント関数や現在値を変数で表したりしました。

 

目的としてはコメント関数以外の関数を使えるようになりたい!

 

という1点です。

 

関数はざっくりいうと「命令」になります。

コメント関数でいうと「チャート上に指定の文字を表示しろ」という命令です。

 

変数も「命令」ですが、決まった数字・文字ではなく、

「その時々に応じた最適な文字・数字を教えてね」という命令です。

 

お小遣いでいうと

①毎月1000円ちょうだいね→関数

②毎月余っているお金をちょうだいね→変数

 

ということです。

 

なので特定の文字を表示させたい場合、関数

状況に合わせた表示を自動で行いたい場合、変数

 

ということになります!

 

▽次の工程▽

鋭意作成中!

 

/

宣伝です^^

 

1日1回スマホから質問に答えるだけで上場済の暗号資産がもらえる「hi dollars」

完全招待制なので招待コード「7380fpkb」を使ってもらえると嬉しいです!

e4v7n.hp.peraichi.com

 

当ブログ特典

ブログ記事を読んでいただき、LINE登録していただいた方限定の特典となります。

今、皆様にご案内している特典はこの検証記事で使用しているEAになります。

 

あなたのFXライフにぜひ当ブログ特典のFX自動売買システム(EA)を加えてみてください!

 
自動売買システムの無料モニターへ参加希望の方は、下記公式ラインにご登録いただき
 
・お名前(フルネーム)
・運用予定資金
・システム受取用メールアドレス
 
の、3点を記載の上、「無料モニター希望」とメッセージを下さい!
 
<LINEのイメージ>

 

LINEの追加は⇣のリンクをクリック、お願いします!

 

2工程目/その4/応用編

はてなブログをご覧の皆様こんにちは!

ブログ管理人のふらんく2ndです^^

 

プログラミング経験ゼロのおじさんが独学でEAを開発する事を記録した物です。

ツッコミどころ満載かと思いますがご容赦ください♬

 

▽1コ前の工程▽

 

eazisaku.hatenablog.com

 

さて今回は「応用編」

敷居が高いですがチャレンジしてみたいと思います!

 

前回、文字をMT4に表示させることが出来ました!

 

今回はEURUSDのチャートに現在値を書いてみます!

 

相変わらずコメント関数を使います。

 

コメント関数以外使えません笑

 

・目的・

MT4上にEURUSDの現在値を表示する

 

・コード・

 

  {
//
   
 Comment("売値=",Bid);
    
  }

 

です。

 

早速手慣れてモノで(??)コンパイルをしていきます。

 

一発クリア!!!

 

売値

できました!!

 

  {
//
   
 Comment("売値=",Bid);
    
  }

 

こちらの工程を念の為記しておきます

 

①{}を用意する

②//には特に書くことが思いつかなかったので放置

③Comment関数を置く

④()とセミコロンを用意する

 

私の場合ここまでコピペです^^

()の中身ですが

⑤"売値=" ここは人間語で表示させたいのでダブルクオートで囲みました。

⑥Bidは変数なのでダブルクオートで囲みませんでした。

 

変数というのはその状況にあわせて勝手に数値を拾ってくれる便利機能です!

 

サイトを見ると「定義済み変数」ということで、あらかじめMql(メタクオーツ言語)で準備された装置(スイッチ)のように考えています。

 

つまりBidやAskをダブルクオートで囲めば人間語、囲まなければ機械語として認識していただけるそう。

 

ありがたや笑

 

(Bid)→これは機械語なので現在値が表示される

 

("Bid")→これは人間語なのでチャートにはBidとだけ書かれる

 

ということですね!

 

ただ変数が表示されているだけではBidなのかAskなのか?

 

もしくはそれ以外の数値か全くわからないため

 

今回は⇣のようなコードにして

  {
//
   
 Comment("売値=",Bid);
    
  }

MT4では

売値=1.4....

のような表示にしてみました。

 

売値買値

売値買値を同時に表示してみました!

改行のやり方や色の指定、文字の大きさ・・・などよくわかりませんが

これを使うと日本時間の表示などをすることが出来るような気がしています😁

 

しかしこれまで取り上げたようなことはすでにあるインジケーターで対応できるので

あくまで学習の一環ですね^^;

 

 

▽次の工程▽

 

eazisaku.hatenablog.com

 

/

宣伝です^^

 

1日1回スマホから質問に答えるだけで上場済の暗号資産がもらえる「hi dollars」

完全招待制なので招待コード「7380fpkb」を使ってもらえると嬉しいです!

e4v7n.hp.peraichi.com

 

当ブログ特典

ブログ記事を読んでいただき、LINE登録していただいた方限定の特典となります。

今、皆様にご案内している特典はこの検証記事で使用しているEAになります。

 

あなたのFXライフにぜひ当ブログ特典のFX自動売買システム(EA)を加えてみてください!

 
自動売買システムの無料モニターへ参加希望の方は、下記公式ラインにご登録いただき
 
・お名前(フルネーム)
・運用予定資金
・システム受取用メールアドレス
 
の、3点を記載の上、「無料モニター希望」とメッセージを下さい!
 
<LINEのイメージ>

 

LINEの追加は⇣のリンクをクリック、お願いします!

 

2工程目/その3/MT4に文字を表示させよう!コンパイルしよう!

はてなブログをご覧の皆様こんにちは!

ブログ管理人のふらんく2ndです^^

 

プログラミング経験ゼロのおじさんが独学でEAを開発する事を記録した物です。

ツッコミどころ満載かと思いますがご容赦ください♬

 

▽1コ前の工程▽

 

eazisaku.hatenablog.com

 

それでは早速用意したスクリプト上に文字を入力しMT4に表示させます。

 

コメント関数

19行目にコメント関数なるものを記述いたしました!

Cは大文字 全て半角です!

全角だとエラーがでるようです。

先頭のcを小文字に打ち替えてみましたがやはりエラーがでました。

「エラーが出る」といってもアラートがでるわけでなく文字が紫色に変わらないといった感じです。

逆に言えば紫色になれば関数の記述としては間違っていないということですかね?

 

次に()の中に表示させたい文字を入力します。

 

前回は調子に乗って失敗。

恥ずかしい思いをしたため素直にhello world!と書いてみます。

 

ハローワールド

次にダブルクオート→  

で文章を囲みます!

ダブルクオート

今度は緑色に変わりました!

これでようやく完成??

コメント関数が波括弧で囲まれていないけど大丈夫かな?

 

波括弧の中にプログラム言語を記述するお約束だったような・・・

 

言語完成??

とりあえず波括弧で囲んでみました。すると波括弧が赤色に変わりました。

なんか赤って「エラー」を連想させますね><

 

怖いけれどこのまま進めてみます!

 

ちなみにコメントの最後にはここで終わり!のサインをだしてあげるためにセミコロンが必要とのことです。

 

つまり

Comment("表示したい文字");

こうなるわけですね!

 

⇣のように1行につめたほうが見やすい気もしますがお手本どおりにやっていきます!

{Comment("表示したい文字");}

 

次はいよいよMT4への表示です。

 

作成したプログラムを実行させるには「コンパイル」という作業が必要です!

余談ですがコンパイルというと「ぷよぷよ」しか思い出せません><

 

IT用語辞典というサイトによると

コンパイルとは、プログラミング言語で書かれたコンピュータプログラム(ソースコード)を解析し、コンピュータが直接実行可能な形式のプログラム(オブジェクトコード)に変換すること。そのためのソフトウェアをコンパイラ(compiler)という。

要はプログラムに異常がないか調べてくれて、問題がなければGOサインをだしてくれる機能のようです。

 

ではさっそく人生初の「コンパイル」!

アルル、見守っていてくれ笑

 

コンパイル

 

コンパイルボタンを押します!

 

・・・ゴクリ。

 

エラー

はい。

エラーでました!

しかも2つも??

 

あれ?セミコロン消えてる!と思い入力し再度コンパイル

 

あれ?エラーが4つに増えてる!

 

こうなりゃあヤケです!

 

色々試してみます!

 

コンパイル

 

コンパイル!!

 

コンパイル!!!

 

メラゾーマ!!!!

コンパイル成功!

試行錯誤の結果、デフォルトで表示されていた1行目以降をがっつり削除して

1行目にvoid OnStart()をもってきたらエラーがなくなりました!

 

成功するとゼロerrors ゼロwarningsと表示されます!

 

ちなみに{}が赤色になっていたのはやはりエラーでした><

 

全角だったようです。

 

半角の{}をだすのが本当に面倒なので次からはコピペします泣

 

さて気を取り直して次の作業、いよいよ表示です!

 

メタエディターから通常のMT4に切り替えます。

 

ナビゲーターの中の「スクリプト」をダブルクリック。

 

そうすると

ナビ

 

sample001というフォルダが出来ています! 

 

sample001をダブルクリックすると~

 

表示成功!

 

EURUSD、H4に「Hello world!」が表示されている!

 

なんたる奇跡!!!!!

 

大げさかもしれませんがそれくらい感動中です^^

 

表示もそうですが、「コンパイル」ってすごくないですか?

 

プログラマーでもないのになんかプログラマーっぽい!

 

文系なのに理系っぽい!!

 

会社で飲みに誘われたら「今日はコンパイルせなあかんもんで堪忍してや~」

とか言いたい!

 

コンパイル部長」と呼ばれたい笑

 

「今日は嫁がちょっとコンパイルなもんで」(意味不明)

 

世の中の人間は2種類に分けられる

君にはわかるかね?

 

・・・・・それは

 

 

コンパイルする側とされる側じゃあああ!

 

 

初めてのコンパイルで自分を見失っているので今回はここまでにします笑

 

 

 

▽次の工程▽

 

eazisaku.hatenablog.com

 

 

/

宣伝です^^

 

1日1回スマホから質問に答えるだけで上場済の暗号資産がもらえる「hi dollars」

完全招待制なので招待コード「7380fpkb」を使ってもらえると嬉しいです!

e4v7n.hp.peraichi.com

 

当ブログ特典

ブログ記事を読んでいただき、LINE登録していただいた方限定の特典となります。

今、皆様にご案内している特典はこの検証記事で使用しているEAになります。

 

あなたのFXライフにぜひ当ブログ特典のFX自動売買システム(EA)を加えてみてください!

 
自動売買システムの無料モニターへ参加希望の方は、下記公式ラインにご登録いただき
 
・お名前(フルネーム)
・運用予定資金
・システム受取用メールアドレス
 
の、3点を記載の上、「無料モニター希望」とメッセージを下さい!
 
<LINEのイメージ>

 

LINEの追加は⇣のリンクをクリック、お願いします!

 

2工程目/その2/スクリプト作成で疑問噴出!

はてなブログをご覧の皆様こんにちは!

ブログ管理人のふらんく2ndです^^

 

プログラミング経験ゼロのおじさんが独学でEAを開発する事を記録した物です。

ツッコミどころ満載かと思いますがご容赦ください♬

 

▽1コ前の工程▽

 

eazisaku.hatenablog.com

 

メタエディター

なんだか難しそうですね!

参考にしているサイトやnoteでは「簡単!」「怯むな」「乗り越えろ!」

と叱咤してくれているポイントです。

まるでビリー隊長やん!

ということで、スクリプトを作成したいと思います。

 

私はなぜ今からスクリプトを作るのか?全くわかっていません。

そもそもスクリプトって??な状況です。

 

この状況って料理に例えると「カレー」の作り方を習いに来たのに

「まずはエプロンの作り方からじゃあ!」

と言われているように感じてしまいます。

「こっちはEAつくりたいんじゃああ!」

と思わぬこともないんですが、参考サイト様がおっしゃるので素直に従います。

 

呪文のような英語や記号ですが波括弧(なみかっこ)が重要とのこと。

「ふむふむ・・・」

{}の間に記述したことを実行してくれるそうです!

偉い!

//←こういうのは基本的に無視でいいようです。

な・・・なるほど・・・とは言え気になるぞ^^;

 

//プログラミング言語ではなく人間語(私の場合、日本語)を記述するところのようです!

 

{「ある」条件で決済する」というプログラミング言語を入れる}

//決済するぞー!

 

こういう事のようです。

合ってますかね><

人に確かることが出来ないのが独学のつらい点です。

 

まぁ動かしてみればわかるか(楽観視)

 

では//から確かめてみましょう!

 

ハローワールド

 

19行目にハローワールド!的なものを書きました。

 

!の右の|←はマウスカーソルです^^;

 

さてこの文字をMT4画面に表示させたいのだけれどどうしたらいいんだろう?

 

文字の大きさや色、表示位置は??

 

デフォルトでいい感じの場所に表示される??

 

謎が謎を呼んでいます。

 

そもそも//ってなんて読むんだ~??

 

後記

 

//の横はあくまで「メモ書き」に使うようです。

 

ここでHello world!とかっこよくキメてもなにも表示されません笑

 

恥ずかしい・・・

 

本来の使い方は

{ }このなかに複雑な指示を書いたときなどに

//上のやつは●●したときに☓☓するプログラムだよ~

のように使うのが正しいようです

 

つまりMT4上には表示されず、製作者があとで見返すための便利機能ってわけですね。

 

さすがプログラミング未経験おじさん。

 

恥ずかしいです><

 

じゃあ文字を表示するにはどうしたらいいの?が次回です!

 

<次の工程>

eazisaku.hatenablog.com

 

 

 

/

宣伝です^^

 

1日1回スマホから質問に答えるだけで上場済の暗号資産がもらえる「hi dollars」

完全招待制なので招待コード「7380fpkb」を使ってもらえると嬉しいです!

e4v7n.hp.peraichi.com

 

当ブログ特典

ブログ記事を読んでいただき、LINE登録していただいた方限定の特典となります。

今、皆様にご案内している特典はこの検証記事で使用しているEAになります。

 

あなたのFXライフにぜひ当ブログ特典のFX自動売買システム(EA)を加えてみてください!

 
自動売買システムの無料モニターへ参加希望の方は、下記公式ラインにご登録いただき
 
・お名前(フルネーム)
・運用予定資金
・システム受取用メールアドレス
 
の、3点を記載の上、「無料モニター希望」とメッセージを下さい!
 
<LINEのイメージ>

 

LINEの追加は⇣のリンクをクリック、お願いします!

 

 

2工程目/その1/ナビゲーターウィンドウを見ていこう

<1コ前の工程です>

eazisaku.hatenablog.com

 

メタエディターを起動させ勝利の雄叫びをあげたところで、次にナビゲーターウィンドウです。

ナビ画面

上からEA・インジケーター・スクリプトです。

EAはもうご存知ですよね?

インジケーターも無料のものを使った方がおおいと思いますので割愛。

私、このスクリプトは初めて使います。

 

いまさらになりますが、私経験値0 レベル0の初心者EA職人はですねぇ・・・

じつは検証なしにリアルタイムでブログを書いています^^;

 

①参考記事を読んで

②実際の操作を行って

③画像を保存して

④画像をアップロードして

⑤記事を数行書く→①に戻る

 

もちろんうまくいかなかった事も気にせず記載していきます☆

 

さてナビゲーターの話に戻りますが

恐れ多くも「ナビ」してくれるわけですからこの無骨なツールに愛着を持つために

「ナビ」のキャラクターをつけてあげることにしました。

末永くつきあっていくわけですから、当たり前ですよね(笑)

私のナビのイメージってロックマンのキャラクターなんですよね。

なぜか。

 

それはそうとして先にすすみます!

 

それではメタエディターの「新規作成」というボタンを押します。

MQL4初期画面

ここではいきなりEA(エキスパートアドバイザー)を使用せずに

スクリプト」なるものを選択します。

 

MQLスクリプト

名前は日本語でも英語でも大丈夫でした。

名前と著作者のみの記入だけで「完了」を押します。

 

サンプル001

 

そうするとこのような画面になります。

左上にこのスクリプトの名前が出てきました。

小さくて見づらいかもしれませんが「sanple001」と私がつけた名前が表示されています。

 

実はいま時点で「スクリプト」がどのようなものかわかっていませんが^^;

 

私がつけたsanple001が表示されているだけで感動です。

 

これってよくきく

hello world!

の感動と似ているかもしれません。

 

いや全く違うかもしれません。。。

 

次回は「スクリプトの作成」に工程を進めます。

<次の記事>

eazisaku.hatenablog.com

1工程目/

<1コ前の工程です>

eazisaku.hatenablog.com

 

①MT4を立ち上げます

 

メタエディター

 

②メタエディターを開く

メタエディターを開く



メタエディターとは

メタエディタMetaEditor)はMQLプログラミングをする一番ベーシックなエディタ

 

つまりプログラミングソフトとかんがえてもらって大丈夫・・・だと思います。

 

RPGツクール的な?

 

なにせ初心者がブログ記事やyoutubeを参考にEA職人!?へと成長していくブログですので曖昧な表現、ご容赦ください!

 

指摘があればいつでも直します!

 

メタエディター初期画面

 

上がメタエディター初期画面です。

 

なんとも愛想が無いですね。。。

もともとMT4もMT5もこの令和の時代にそぐわない旧態依然とした佇まいなんですがさらにですね!

なにか初心者を寄せ付けないような雰囲気さえ醸し出しています。

宮本武蔵のような・・・いや、宮本さんのこと全く知らないですけどね!!

 

さて、準備完了。

 

これでいつでも超絶爆益の無敵EAが作れるぜ!

 

の土俵には立てたと思います笑

 

で・・す・・・よね??

 

まぁ超絶爆益かどうかはさておき、私立文系卒・ちょっとPC触れる程度のEA製作初心者、レベル0の管理人がどこまで成長できるか?

 

見守っていただけると嬉しいです!

 

<次の記事です>