0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MQL5-基本関数と"Hello, World!" 2

Last updated at Posted at 2020-05-25

## はじめに
この記事は以下リンクのYoutubeビデオを翻訳したものになります。よければそちらもご覧ください。

https://www.youtube.com/watch?v=zYdt_HnGaFY&list=PLV8YK-9p3TcOmgAFIjntw-GxOJoHp9xwc&index=3

前回記事 は以下です。

https://qiita.com/James_KW/items/575eb6cfc6d64180f003
本記事の内容はこの記事の続きになります。

## 追加された関数の説明
前回記事にてテンプレートで追加された関数について説明する。関数って何というプログラミング初心者は、「文字を表示する」とか「買い注文を入れる」とか何かするための物と思ってください。

int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }

ちなみに//とするとコメントになり、//以降は読み込まれない。好きにメモを残しましょう。

さてこのOnInitはこのエキスパートアドバイザをチャートに適用した時に一度だけ実行される。
一行目の冒頭部分にある

int OnInit()

のintの部分は変数としてint型(整数型)を返すという意味である。

次の関数にうつる。

void OnDeinit(const int reason)
  {
//---
   
  }

この関数はこのエキスパートアドバイザが閉じられるときに一度だけ実行される。ここはエキスパートアドバイザをとじてクリーンアップするのに便利である。
一行目頭の"void"はどの値も返さないという意味である。

void OnTick()
  {
//---
   
  }

この関数は、チャート上で値段が変わったときに実行される。上記の2つと違って複数回実行される。

Hello, world! 今何時?

ではここから実際にコーディングを進めていく。今回は以下のような内容のコードを書く。

・チャート上に"Hello, world"と出力する。
・Hello, worldの隣に現在の時刻を出力する。

まず、OnTick関数だけを残して、それより上の関数をすべて消してしまう。今回は使わないので問題はない。チャート上に文字を出力するために今回はcomment関数を使う

Comment("内容")

この関数はチャートの左上にユーザー指定の内容を出力するというものである。ではHello,worldと出力するために、OnTick関数の中に以下のように書く。

void OnTick()
  {
   Comment("Hello, world");
  }

この状態まで行ったら、コンパイルしてストラテジーテスターで実際に実行してみる。

image.png

コンパイルは上図の[コンパイル]のボタン。ストラテジーテスターでの実行は、上図の緑色の再生ボタンのようなもの。実はそのすぐ隣の青色再生ボタンもストラテジーテスターによる実行になるのだが、細かい違いはそのうち。。。

もし、この二つの再生ボタンがグレーアウトしていて押せない場合は、一番最初のテンプレートを作成する際に、名前を変更するときに、"Expart¥"を消してしまっていないか確認しよう。

image.png

ここまでうまくいっていると、チャートが新しく表示されて、エキスパートアドバイザの適用するかどうか問われて[OK]を押すと、チャート左上にComment関数で表示させた内容、ここでは"Hello,world"と表示されるはずである。さてこの次に、このHello,worldの隣に現在時刻を表示させる。以下のようにOnTick関数の中身を変更しよう。

void OnTick()
  {
   Comment("Hello, world",TimeLocal());
  }

変更したら、ここからさらに同様にコンパイルして実行しよう。

image.png

うまくいけば、上図のように現在時刻も表示されるはずである。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?