スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
メタバイザー
スポンサー広告  

メタトレーダー講義 第3回 データタイプ
今回の講義で取り上げている変数です。

プログラミング初心者にとってなかなか理解しづらい概念ですが、きっちりと説明しますので、なんとか頑張りましょう。

僕個人の感想ですが、プログラミングで難しいのは配列変数ループ この3つの概念だけです。

つまり、この3つの概念さえしっかり押さえてしまえばコードの理解ができるようになりますので、頑張って修得しましょう。 その先にはメタトレーダーを使いこなせるようになれるという、大変楽しい未来が待っています!

それでは訳文に参りましょう。




この文章はCodersGuruさんの↓が原文の訳になります。(翻訳しての転載に本人の許可はとってあります)
http://www.forex-tsd.com/lessons/208-lesson-8-variables-mql4-2.html


                       メタトレーダー講義
                       Coders'guru
                        www.forex-tsd.com

                             -3-
                       データタイプ



私、Coders'GuruのMQL4の第三回目の講義へようこそ。

シンタックス講義は楽しんでもらえたでしょうか?前回の講義では以下の疑問に対してお答しました。

   ・MQL4ではどのようなフォーマットがつかえるのか。
   ・プログラミング世界を分かりやすくするためのコメントはどうやって書き込めるか。
   ・識別子とは何か。またそれを選ぶためのルールは何か。
   ・MQL4の予約語は何か。

今回は予約語の中のデータタイプ(情報様式)について取り上げます。楽しみましょう!

データタイプとは?

どんなプログラミング言語でも、データの記憶貯蔵庫(memory)の説明をする名前の型を持っています。
例えば、もし-2147483648から2147483648までの数字を記録している記憶貯蔵庫があったとすれば、ほとんどのプログラミング言語は、そのデータをInteger(整数)データタイプだと名付けるでしょう。

変数?

変数とは、データを保存すべき記憶貯蔵庫の場所はどれかを言及する名称です。

このことが鮮明にわかる助けになるように、記憶貯蔵庫は一連のサイズの違う箱であるとイメージしてください。箱の大きさは記憶容量単位(バイト)が要求する記憶貯蔵庫収容空間の大きさです。

     ・データを貯める箱を使うために、その箱は名前をつけられなくてはなりません。この過程を、
      declaration(宣言)といいます。

     ・宣言の過程において、あなたはコンピューターにどのような種類か、そしてどのようなサイズ
      の箱が使いたいかを知らせる言葉を使わなくてはなりません。そのコンピューターに伝える
      言葉をキーワードといいます。キーワードを使って宣言してるわけですね。

     ・もしあなたが情報の種類と関係がある意義のある名称を箱につけたなら、そのデータをより
      簡単に見つけられるようになります。その箱につけた名称のことを変数名(識別子とほぼ同
      義)といいます。

     ・データは、箱にいれられるときに、振り分けられながら箱にいれられます。
     
     ・あなたが作った箱に価値を付けたとき、同じ行であなたは箱に入れる値を宣言します。この
      過程を(変数生成時に指定された値である初期値を格納することになるので)initialization
      (初期化)といいます

私たちが変数を作るとき、私たちは変数に、特定の記憶貯蔵庫の長さ(大きさ)を割り振ってほしいとコンピューターに告げています。文字列や、簡単な数字、文章、大きな数字は同じ記憶貯蔵庫の場所に入れておくことができないので、コンピューターはどのような種類のデータで、どのくらいの長さのデータなのだと私たちに聞くわけです。これがデータタイプの概要になります。

例えば、もし私たちがこのコード文をコンピューターに伝える時、

int MyVaraible=0;


これは、私たちはコンピューターに4バイトの容量を私たちのつけた変数名称であるMy Variableに与えてくれと頼んでいるわけです。

いま使用した例を使って説明すると
int ←キーワード
int ←Integer data type
int ←Declaration(宣言)
MyVaraible←変数名
=0←初期化

MQL4で扱うデータタイプの種類は以下のようになります。

   ・Integer(int)  整数
   ・Boolean(bool)論理型
   ・Character(char)文字
   ・String(string)文字列
   ・Floating-point number(double) 浮動小数点数(小数点が動くので少数と整数に対応)
   ・Datetime(datetime)



1- Integer(整数)

Integerは+ーどちらかの記号から始まる数字です。この範囲の値は-2147483648から2147483648までとなっています。
MQL4は10進法もしくは16進法が使えます。
例えば、以下の数字はIntegerです。


12,3,2134,0,-230
0x0A,0x12,0X12,0x2f


int というキーワードを使うことで、整数の変数を作り出します。



int intIntger=0;
int intAnotherintger=-100
int intHexinteger=0x12


10進法と16進法について

10進法は10を基本にした数の記述で、アラビア数字(0,1,2,3,4,5,6,7,8,9)を使って数を
表します。これらのアラビア数字は時々端数の最初に小数点をつけて使われたり、+やマイナスの記号とともに数をあらわしたりします。

16進法について。
16進法は16を基本とした数表示で0~9もしくはA~Fまたはa~fの記号を使って表記されます。
例えば、10進法の79を16進法であらわすと4Fと表記することができます。


2-Boolean

Boolean変数はわずか二つの価値しかもつことのできないデータタイプ(情報様式)です。
その二つの価値とはtrue(真)かfalse(偽)で、数字で表記するとしたらば0と1で書かれます。
そしてこれは記憶貯蔵庫の1ビットを占めます。
MQL4ではfalse,FALSE,False,true,TRUE,Trueどれも同じように使えます。

Booleanは偉大な数学者Boole Georgeにちなんで名付けられました。
Boolを使うことによってboolean変数をつくることができます。



bool I=true;
bool bFlag=1
Bool bBool=False:


3-Character(文字定数)

MQL4は、このデータタイプをLiteral(文字の)と名付けています。
Aというアルファベット文字は、ASCII(American Standard Code for Information Interchange)が定められているアルファベット、数字、特殊なキー等計256種類の中の一つの”文字”(整数値)である。
“文字”はASCIIの位置と一致している整数の価値をもちます。
あなたは文字定数を書くときに、その文字の周りにクオーテーションマーク(')をつけなければなりません。(補足です。MQL4では、アルファベットや数値に対してそれぞれ決められた整数値が与えられています。下記のASCIItableをみて頂きたいのですが、たとえば0なら10進法で48の整数値が、Nなら78の整数値が与えられているわけです。character変数では' 'で囲むことにより、ASCIIに対応してない僕らが普段使っているアルファベットとして使えるようになります。)



‘a’, ’$’, ’Z’

chr キーワードを使ってcharacter変数を作り出すことができます。



int chrA=’A’;
int chrB=’$’;


いくつかの文字の中で特別文字と呼ばれている文字があり、それはクオーテーションマークで囲まれても直接あらわすことができません。なぜならば、MQL4言語で、特別な用法として予約されているからです。
ここに私たちが特別な文字を表すためにエスケープシークエンス(拡張表記)とよばれるものを使います。そして、それはバックスラッシュを(╲)その文字の前につけることで表します。
尚、バックスラッシュはキーボード右下の「ろ」のところにおかれていますが、\がでてくるだけでバックスラッシュは通常でてきません。しかし\で代用できます。
 


int chrA=’╲╲ ’:  //スラッシュ
int chrB=’ ╲n’; //改行


これらはMQL4におけるエスケープシークエンスです。


╲r       復帰(現在の行の先頭位置へ移動する)
╲n       改行
╲t       水平タブ(次の水平タブ位置へ移動する)
╲╲       逆斜線
╲’       ‘
╲”       “
╲xhh       hhは任意の桁数の16進法
  

ascii.png
                   ASCIItable

4-String(文字列)

String データタイプは、ダブルクオーテーションマーク(”)で囲まれた一続きの文字列のことです。

一続きの文字列は文字が次々と続いていく配列で、その最初の添字は0からはじまります。
最後の文字データのあとに、NULL文字が次の配列の場所に置かれます。そのあとに使われていない配列の場所があろうが関係ありません。

NULL文字は、特別文字(ASCIIコードの0で表わされる。)で、文字列タイプの終わりの目印として使われます。

下の図をみてください。文字列定数のhelloの、文字配列について説明したものです。(CodersGuruさんのpdfファイルより転送)
 null

MQL4には文字列変数の大きさを255字を限界としており、どのような文字でも255字時を超えると、一般的に次のエラーがでるでしょう(too long string(255 characters maximum))

あなたは上で論じた特別な文字をどれでも前にバックスラッシュ(╲)をいれることによって、文字列定数でも使うことができます。

stringキーワードを使って文字列変数を作り出せます。



string str1=”Hello world。Coders guruです”;
string str2=”CopyrightC2005, ╲”Forex-tsd forum ╲”.”  // (“)に注目して
↑これはCopyrightC2005, ”Forex-tsd forum ”. のように表示されるのだと思います(バックスラッシュをいれなければ”はプログラミング上で表示されません。)
string str3=”1234567890”;


5-浮動小数点(double)

浮動小数点は実数(これは、整数の部分とわけるためにドット.をつけて分数部分も含めることができる。)例をあげれば3, 0, -115, 5, 15, 0.0001等

浮動小数点のとれる値の範囲は-2147483648から2147483648です。

doubleキーワードを使うことによって浮動小数点変数を作り出すことができます。




Double dbnumber1=10000000000000;
Double dbnumber3=1/4;
Double dbnumber3=5.75;


6-Color

Color データタイプはMQL4の特別なデータタイプです。MQL4は自分のExpert AdviserもしくはCustom Indictorを作った時に、メタトレーダーのチャートに表す色をもっています。そしてユーザーはExpert AdviserもしくはCustom Indictorのプロパティーを使って色を変えることができます。

あなたはcolor変数を以下の三つの方法で定めることができます

1- カラーネームによる指定:良く知られているウェブカラーセットのカラー名をcolor変数に指定することが可能です。ウェブカラーセットは下を見てください。

2- 文字描写による指定:この方法は、あなたはキーワード(C)のあとにクオーテーションマーク(‘)を二つ使います。二つのクオーテーションマークの間に、赤、緑、青の明度を指定します。これらの明度は0~255までで指定してください。この明度は、10進法でも16進法でも記述することが可能です。

3-整数値による指定:ウェブカラーのすべてのカラーはそれぞれ整数値をもっています。あなたは10進法でも16進法でも記述することができます。そしてあなたはcolor変数を、その色が割り当てられた整数値で指定することができます。16進法での色指定の記述はこのようになります0xBBGGRR BBは青GGは緑RRは赤の明度を表します。



//1のカラーネームによる指定
Red
Yellow
Black

//2の文字描写
C’128,128,128’ //灰色
C’0x00,0x00,0xFF’//青

//3の整数値での描写
0xFFFFFF  //白
16777215  //白
0x008000  //緑
32768    //緑

colorキーワードを使ってcolor変数を作り出します。



color clrl=Red;
color clrl=C’128,128,128’;
color clrl=32768;

ウェブカラー

7-Date time

Datetime データタイプはMQL4の特別なデータタイプで、それは、データとタイムデータをもちます。あなたはキーワード(D)と、それに続くふたつのクオーテーションマーク(‘)を使用してDatetime変数を設定することができます。
二つのクオーテーションマークの間に、あなたは年、月、日、時間、秒の5つの値の文字列を記述します。
Datetime定数は1970年1月1日から2037年12月31日までの値をとることができます。


D’2004,01,01 00:00’//新年
D’1980.07.19 12:30:27’
D’19.07.1980 12:30:27’
D’19.07.1980 12’ // =D’1980.07.19 12:00:00’
D’01.01.2004’ //=D’01.01.2004 00:00:00’


datatimeキーワードを使うことでdatetime変数をつくりだすことができます。



Datetime dtMyBirthDay=D’1972.10.19 12:00:00’;
Datetime dtl=D’2005.10.22 04:30:00’;

楽しんでいただけましたでしょうか?
次のレッスンは、Operations&Expressionsです。
それでは
Coders’Guru





メタバイザーによる補足説明

お疲れ様。今回の講義は大変だったんじゃないかな? 寝ている生徒もちらほらいたようだが・・・。

今回の講義は寝てたらダメだ!

何事もそうだが、学習の基本は徹底して基礎を固めること

プログラミングの土台がわかっていないと、絶対に応用できないし、自分で新しいインディケーターや、自動売買ソフトを作ることはできないと断言できる。

なんとなく流して今回の講義を受けていた人は、今から言う箇所だけでもしっかりと復習してほしい。

データタイプとは
変数?
1Integer(整数)
5Double(浮動小数点)


この4つのパートは確実に押さえておこう。

最後に今回の講義を実践的な知識へと昇華させるために、実際メタトレーダーを使用していく上でそれぞれのデータタイプはどのような時に使用するかを教えておくぞ。

Integer double
用意したい値が整数のときはInteger、少数の時はdoubleと考えよう。
移動平均線の値を算出したいときは double
移動平均線の期間を使いたいときは int
の変数を用意する。

例えばドル円の20期間移動平均線で、今値が95.35円だったとしよう。
もしも移動平均線の値を入れる変数をintにしてしまったら、整数でしかあつかわれないので、移動平均線の値は95円ということになってしまうので注意が必要だ。

逆に期間の値を入れる変数をdoubleにして、20の値を初期値としていれておいても、そちらは問題ない。20.000というふうに認識されるからな。
しかし見栄えも悪いし処理スピードも少し遅くなるので、整数しか値を指定しない時はintと宣言するほうが、メタトレーダーに対して親切だ。

boolean
これはスイッチのon offの時に使う。例えば音を鳴らすようなインディケーターを作成したとしよう。
それでも音を鳴らしたくない時がある。(実際に作ってみればわかる)
そのような時に活躍するのがbooleanのデータタイプだ。

電気のスイッチみたいにtrue falseでonとoffに切り替えられるようになる。

まぁ初心者には縁のない話なので参考程度に聞いておいてくれればいい。

character
これは何か意味があるのだろうか?私はこのデータタイプを使ったことが無い。

覚えなくても大丈夫だ


string
ここは変数としてではなく、メタトレーダーに文字列を入力たいときは、会話を「」で囲むように""(ダブルクオーテーション)で囲む必要があるということだけ覚えておけばよい。

stringを変数として使うときは、通貨ペアの指定、アラーム音のファイル名の指定をしたいときくらいしか使い道はない気がする。

まぁこれも中級者~上級者向けの話になるので、そうなんだとだけ思ってくれればいい。

datatime
こちらは時間のデータを扱いたいときに使用する。

例えば、指値注文の有効期限を設定したいときや、指定の時間にアラートを鳴らすようにしたいとき等
に使用する。

これも最初のうちはほとんど使うことはないのであまり気にしなくていいぞ。

color
これは必要ない。寝て聞き流しても大丈夫だ。


また何か質問や意見があれば、メタバイザーの放課後まで遊びに来てほしい。 

それではまた会おう。お疲れ様。


人気ブログランキングに参加している。

にほんブログ村 為替ブログ FX システムトレード派へ

もしよろしければ応援してほしい。 どうもありがとう。

ちなみにブログをやっているメタトレーダー仲間は から見ることができる。


メタバイザー
メタトレーダー講義   0

:システムトレード - :株式・投資・マネー


http://metavicer.blog61.fc2.com/tb.php/58-66942b40
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。