Wizard In The Market
システムトレードの魔術師

*

■超直感!MT4プログラミング講座■ 第3回 関数を覚えよう!

公開日: : 最終更新日:2015/01/13 MT4(MQL4)プログラミング講座

こんばんは!キリンです。
前回の「変数の定義」のお話ですが、
やはりつまづいている方が多かったようですね。
基本的で、非常に重要なことであるにも関わらず、
分かりやすい説明がないと思っていました。
みなさんの疑問を解決することができたとすれば、私は嬉しいです。


第3回 関数を覚えよう!

前回、プログラミングの中には主立って「関数」と「変数」があると説明させていただきました。
今回は「関数」のお話です。(前回の変数と混同しないようにお気をつけてくださいね。)
関数と変数の根本的な違いの説明から入りたいと思います。
■関数とは?
■関数の使い方
■イコールの使い方
■関数の定義
■関数とは?
プログラミングっぽく専門的に書いてしまうと、非常にわかりにくいと思いますので、
直感的に説明します。
A君がB君に、
「5個のりんごの値段を計算して」
と頼みます。
するとB君は、
5個のりんご × りんご1個の単価 × (1+消費税率)
という計算をします。
計算が終わり、B君はA君に
「●●●円だよ」
と教えます。
実は、これが関数の動作なんです。
実際の関数に置き換えますと、
  ・ A君はあなた
  ・ B君は関数
  ・ りんごの個数は引数(ひきすう)
  ・ りんごの合計の値段は戻り値(もどりち)
※引数というのは、関数に値を代入する数のことです。
 上記のりんごの個数が引数だって考えてもらえば分かりやすいと思います。
※関数の結果のことを戻り値といいます。
 「~~の値を返す」というのも、「戻り値が~~である」というのと同義です。
「あなた」は「関数」に対して、「引数」を割り当ててあげれば「戻り値」が得られます。
先ほどの例題で例えるなら、
「A君」は「B君」に対して、「りんごの個数」を伝えれば「合計の値段」が得られます。
ということになります。
なんとなく伝わってきたのではないでしょうか。
ここで大事なのは、B君が計算するときに使う「りんごの単価」と「消費税率」が一定だということ。
だから、一連の作業で計算結果をすぐはじき出すことができるということです。
関数というのは、その「一連の作業」を指します。
「引数」を割り当てて、「一連の作業」をさせて「戻り値」を得る。
ちなみに、「戻り値」がない場合もあります。
一連の作業をさせればOKというときですね。
どういうときかというのは、必要なときに説明させていただきます。
では、次は実際の使い方です。
■関数の使い方
関数というのは、前回の変数と同じように「定義」します。
その定義の方法は、戻り値に依存します。
得たい戻り値が、

・文字ならstring
・整数だったらint
・小数点以下の数ならdouble
・真偽ならbool
・戻り値がいらないならvoid

です。
そして、通常の使い方は
int RingoNoGoukeiNedan(5);
という形になります。
変数との違いは、名称の後ろに「括弧()」があるという点です。
これは非常に大事ですので覚えてください。
前回の設定を、
「りんごの個数とりんごの単価」をB君に伝えて、
「消費税を含んだ合計値段」を教えてもらう
と変更したとします。
すると、関数の文章は(単価を80円とすると)
int RingoNoGoukeiNedan(5, 80)
というように、「,」で区切って値を入力します。
でも、RingoNoGoukeiNedanという関数自体には、まだ計算をするという内容が定義されていません。
それで、別枠で関数を定義させる必要があります。
その前に、イコールの使い方の説明をします。
■イコールの使い方
左に変数を置き、右に代入したい値を入れます。
int x = 10;

int x = RingoNoGoukeiNedan(5);
などですね。(5はりんごの個数です)
右側の結果が、左の変数に当てはまるということを覚えていただければと思います。
では、関数の定義の方法です。
■関数の定義
int RingoNoGoukeiNedan(int RingoNoKosuu){
int RingoNoTanka = 80;
double ShouhiZei = 1.05;
int GoukeiNedan = RingoNoKosuu * RingoNoTanka * ShouhiZei;
return(GoukeiNedan);
}
っとなるのですが・・・・
長くなってきましたので、これについてはまた次回お話させていただきますね。
最後までお読みくださり、ありがとうございます!

にほんブログ村 為替ブログへ 
Fx-Kirin

About Fx-Kirin

2009年10月にFXを開始、翌年2010年5月から脱サラをしてFX業界に専念。 2012年10月頃から本格的に勝ち始め、一月で資産を倍にする、2年半月間負けなし等、安定した収支で2013年11月に生涯FX収支が1億を超える。 投資スタイルはシステムトレード。プログラミングの知識がほぼない状態から、独学で自分がしたいと思うことであればほぼ実現することが可能なレベルまで成長。好きな言語はRuby, Python。必要となればC++からVBA、Pascal等なんでも行う。MT4/MT5のプログラミングも得意。 2011年にはFXで稼いだ資金をもとにシンガポールに移住し、留学も兼ねて起業をチャレンジするほど、ビジネスを興すことに熱意がある。国内の業者を主に使い始めたことから、2012年に帰国。零細株式会社経営中。

Adsense

  • このエントリーをはてなブックマークに追加
  • Pocket
  • 67 follow us in feedly

関連記事

no image

■超直感!MT4プログラミング講座■ 第16回 インディケーターの実働部分

こんばんは。キリンです。 先ほどHey!Hey!Hey!の大阪の歌特集をやっていました。 Dreams Come Tru

記事を読む

no image

■超直感!MT4プログラミング講座■ 第1回 プログラミングって何?

こんにちは!キリンです。 今日から一週間に一回くらいの更新頻度を目標に、 MT4プログラミング講座を更新していきます。

記事を読む

no image

■超直感!MT4プログラミング講座■ 第28回 決済スプリクトの作成(1)

こんにちは!キリンです。 引越しも終わり、かなり落ち着いてきました。 時間的制約が皆無になると、セルフコントロール能力が

記事を読む

no image

■超直感!MT4プログラミング講座■ 第2回 変数を覚えよう!

こんばんは。キリンです。 この講座の第1回で、非常に大きな反響をいただけました。 MT4のプログラミングに興味持っている

記事を読む

no image

■超直感!MT4プログラミング講座■ 第12回 配列の応用方法を覚えよう!

こんばんは。キリンです。 TopGunの運用で、初めて3機目まで導入されてしまいました。 最後に投入するということもあり

記事を読む

no image

■超直感!MT4プログラミング講座■ 第29回 決済スプリクトの作成(2)

こんにちは。キリンです。 住民票の変更も行い、年金も国民年金に切り替えました。 免許証の住所変更にもこれから行く予定です

記事を読む

no image

■超直感!MT4プログラミング講座■ 第24回 インディケーターの補足

こんばんは。キリンです。 第24回 インディケーターの補足 ■インディケーターをサブウィンドウに表示する ■グラフに

記事を読む

no image

■超直感!MT4プログラミング講座■ 第34回 決済スプリクトをサブルーチン化する

こんにちは。キリンです。 自立ってそんなに難しくないと思うんですが、 自律は大変ですよね。 自立できれば自律を目指さなけ

記事を読む

no image

■超直感!MT4プログラミング講座■ 第25回 発注スプリクトの作成

おはようございます。キリンです。 今日から引越しの準備です。 今週はあまり仕事が進んでないです・・・。 引越しの準備とか

記事を読む

no image

■超直感!MT4プログラミング講座■ 第23回 ボリンジャーバンドのおさらい(2)

こんばんはっ!キリンです。 平日に私服で電車に乗っているのが非常に違和感を感じます。 でも、脱サラしたんだなっという感無

記事を読む

Comment

  1. りある より:

    SECRET: 0
    PASS:
    りんごなどで表現すると分かりやすいですね。
    でも、横文字ばかりになると、途端に分からなくなりますね(汗)
    特に括弧が多くなるとその並びの法則が分からないと???になりやすいです。
    教え方上手ですね。
    もしかして、厳密には消費税や合計は、int ではなくて、 double になるのですか?

  2. SECRET: 0
    PASS:
    >りあるさん
    コメント、お褒めのお言葉ありがとうございます^^
    もしかしてのご指摘は、大正解です。
    誤記でした。
    ありがとうございます^^
    合計はint型で大丈夫だと思います。
    厳密に言えば四捨五入とかあるのですが。
    そのあたりは今回は含むと、混乱を招くので割愛しますね。
    お読みいただきありがとうございます!

  3. より:

    SECRET: 0
    PASS:
    ■関数の定義
    int RingoNoGoukeiNedan(int RingoNoKosuu){
    int RingoNoTanka = 80;
    double ShouhiZei = 1.05;
    int GoukeiNedan = RingoNoKosuu * RingoNoTanka * ShouhiZei;
    return(GoukeiNedan);
    }
    をmt4に入れてみました
    'RingoNoKosuu' – variable not defined C:\Program Files\FXDD Malta – MetaTrader 4\experts\indicators\asobi.mq4 (42, 22)
    'RingoNoTanka' – variable not defined C:\Program Files\FXDD Malta – MetaTrader 4\experts\indicators\asobi.mq4 (42, 37)
    とかいっぱい出てきましたりんごの個数は定義してないからだけど単価はなぜダメっていわれたんだろう

  4. むん より:

    この講座、本にしていただきたいです・・・

    私即買います。笑

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Adsense

PYPIへの登録を10秒でできるようになる方法

pip 使ってますよね Pythonを使っている人であれば、pip installでライブラリ

The art of debugging with GDB, DDD, and Eclipse の読書メモ

GDBの勉強がしたくて、下の本を原著で読んでみました。10年前の本だけど全然現役でした。

JupyterでボタンからJavascriptを実行して追加のアウトプットをさせない方法

Javascriptを実行するとアウトプットセルの行が増える これがとても面倒だった。上の

まだBokehで消耗してるの?これからはPandas-Bokehを使おうぜ

タイトルはあまり気にしないでください。全然、Bokehで消耗する価値があるとは思っています。ただ

SQLAlchemy のマイグレーションライブラリ Alembic を使ってみる。

SQLAlchemyの作者が作ったデータベースマイグレーションツール。個人的には、SQLAlch

→もっと見る

PAGE TOP ↑