通常は、同型の値(同じタイプの値)のみを加算または減算することができます。 たとえば、リンゴはリンゴに追加できますが、リンゴは平方メートルまたは温度に追加することはできません。ほとんどの現代のアルゴリズム言語でも同様の制限があります。
人生の通常のオブジェクトのように、色(赤、青、黄、緑)、味(苦い、酸っぱい、甘い)、量(1.5,2,7)を特徴とする特定のタイプがあり、MQL4は特定のタイプのデータを使用します。 データ型 とは、定数、変数、関数が返す値の 型を 指します(関数の詳細については関数を参照してください)。
MQL4では、以下のデータ型が使用されます(定数、変数、関数から返される値)。
• int (整数)
• ダブル (実数)
• bool (ブール値、つまり論理値)
• string (文字列型の値)
• カラー (カラータイプの値)
• datetime (日付と時刻の値)
Contents
タイプint
Int 型の値は整数であり、整数でもあります。 このタイプには、その性質上整数である値が含まれます。 以下の値は、シンボルウィンドウ内のバーの数(16000小節)、オープンおよび保留中のオーダーの数(3オーダー)、現在のシンボル価格と注文オープン価格の間のポイントの差(15ポイント)。 そのようなものを表す数は整数に過ぎません。 たとえば、注文を開こうとする試行回数は1.5回ではなく、1回、2回、3回などとすることができます。
MQL4には2種類の整数値があります。
• 10進数の 値は0から9までの数字で構成され、10,11,12,1,5、-379,25、-12345、-1,2です。
• 16進値 は、AからF(またはaからf)までのラテン文字と、0〜9の数字で構成できます。これらは0xまたは0Xで始まり、正または負の値をとる必要があります。0x1a7b、0xff340,0xAC3 0X2DF23,0X13AAB、0X1 。
int 型の 値は 、-2,147,483,648〜2,147,483,647の範囲内である必要があります。 定数または変数の値が上記の範囲を超えていると、プログラム操作の結果は無効になります。 int 型の 定数と変数の 値 は、コンピュータのメモリの4バイトをとります。
ここでは 、プログラム内 でint型の変数 を使用する例を示し ます。
1 2 3 4 5 |
<span class="notranslate"> <span class="keyword">int</span> Art = <span class="number">10</span> ;</span> <span class="notranslate"> <span class="comment">//例整数変数</span></span> <span class="notranslate"> <span class="keyword">int</span> B_27 = - <span class="number">1</span> ;</span> <span class="notranslate"> <span class="comment">//例整数変数</span></span> <span class="notranslate"> <span class="keyword">int</span> Num = <span class="number">21</span> ;</span> <span class="notranslate"> <span class="comment">//例整数変数</span></span> <span class="notranslate"> <span class="keyword">int</span> Max = <span class="number">2147483647</span> ;</span> <span class="notranslate"> <span class="comment">//例整数変数</span></span> <span class="notranslate"> <span class="keyword">int</span> Min = - <span class="number">2147483648</span> ;</span> <span class="notranslate"> <span class="comment">//例整数変数</span></span> |
ダブルタイプ
double 型の 値は、小数部を含む実数です。
このタイプの値の例としては、サポートラインの傾き、シンボル価格、または1日以内に開かれた平均注文数などの小数部を持つ任意の値を使用できます。
時には、コードを書くときに変数を指定するときに問題を抱えることもあり ます。つまり、変数がどの型(intまたはdouble)に属するかを プログラマ が 常に知っているとは限りません 。 小さな例を考えてみましょう。
プログラムは1週間以内に12の注文をオープンしました。 このプログラムによって毎日開かれる平均注文数を考慮する 変数 Aの タイプは何ですか ? 答えは明白です: A = 12発注/ 5日。 これは、変数 A = 2.4は、この値に小数部があるため、プログラムではdoubleとみなされる必要がある ことを意味し ます。 1週間以内に発注された注文の総数が10件の場合は、 どのタイプが同じ変数 A であるべき ですか? 2(10次/ 5日= 2)に小数部分がないと、変数 A はintと考えることができます。 しかし、この推論は間違っています。 変数の現在の値は、ゼロのみからなる小数部を持つことができます。 この変数の価値はその本質によって本物であることが重要です。 この場合、変数 A もdouble型でなければなりません。 分離ポイントはプログラムの定数レコードにも表示する必要があります: А = 2.0。
実数定数と変数の値は、整数部、小数点、および小数部で構成されます。 値は正または負にすることができます。 整数部分と小数部分は、0〜9の数字で構成されています。小数点以下の有効数字の数は15までです。
たとえば、27.12、-1.0 2.5001、-765456.0、198732.07、および0.123456789012345はすべて許容ダブルタイプ値です。
double型の値は、-1.7 * e-308〜1.7 * e308の範囲で指定できます。 コンピュータメモリでは、double型の定数と変数の値は8バイトとなります。
プログラムでdouble型の変数を使用する例を次に示します。
1 2 3 4 5 |
<span class="notranslate"> <span class="keyword">ダブル</span>アート= <span class="number">10.123</span> ;</span> <span class="notranslate"> <span class="comment">//実例変数の例</span></span> <span class="notranslate"> <span class="keyword">ダブル</span> B_27 = - <span class="number">1.0</span> ;</span> <span class="notranslate"> <span class="comment">//実例変数の例</span></span> <span class="notranslate"> <span class="keyword">double</span> Num = <span class="number">0.5</span> ;</span> <span class="notranslate"> <span class="comment">//実例変数の例</span></span> <span class="notranslate"> <span class="keyword">ダブル</span> MMM = - <span class="number">12.07</span> ;</span> <span class="notranslate"> <span class="comment">//実例変数の例</span></span> <span class="notranslate"> <span class="keyword">double</span> Price_1 = <span class="number">1.2756</span> ;</span> <span class="notranslate"> <span class="comment">//実例変数の例</span></span> |
タイプbool
ブール 型 の値は、偽りや真理を含むブール型(論理型)の値です。
ブール型の概念を学ぶために、私たちの日常生活からの小さな例を考えてみましょう。 教師は生徒の教科書を考慮する必要があります。 この場合、教師はすべての生徒を1枚の紙にリストし、生徒に教科書があるかどうかにかかわらず、正しい行に目を通します。 たとえば、教師は目盛りとダッシュを表で使用することがあります。
生徒のリスト | 物理学の教科書 | 生物学の教科書 | 化学に関する教科書 | |
---|---|---|---|---|
1 | スミス | V | - | - |
2 | ジョーンズ | V | - | V |
3 | 褐色 | - | V | V |
... | ... | ... | ... | ... |
25 | トンプソン | V | V | V |
右側の列の値は、 真 または偽の 2つのタイプにすることができ ます。 これらの値は、数字ではないので上記のいずれのタイプにも帰せられません。 色、味、量などの価値ではありません。しかし、彼らは重要な意味を持っています。 MQL4では、このような値はブール値または論理値と呼ばれます。 bool型の 定数と 変数は、true(True、TRUE、1)またはFalse(False、FALSE、0)のいずれかの値をとることができます。 bool型の定数と変数の値は、コンピュータのメモリに4バイトをとります。
ここでは 、プログラム内で 変数boolを使用する例を示し ます。
1 2 3 4 5 6 |
<span class="notranslate"> <span class="keyword">bool</span> aa = True;</span> <span class="notranslate"> <span class="comment">//ブール変数。値はtrueです。</span></span> <span class="notranslate"> <span class="keyword">ブール</span> B17 =真;</span> <span class="notranslate"> <span class="comment">//ブール変数B17の値はtrueです。</span></span> <span class="notranslate">ブールハマ= <span class="number">1</span> ;</span> <span class="notranslate"> <span class="comment">//ブール変数Hammaの値はtrueです。</span></span> <span class="notranslate"> <span class="keyword">bool</span> Asd = False;</span> <span class="notranslate"> <span class="comment">//ブール変数Asdの値はfalseです。</span></span> <span class="notranslate"> <span class="keyword">ブール</span> Nol = FALSE;</span> <span class="notranslate"> <span class="comment">//ブール変数Nolの値はfalseです。</span></span> <span class="notranslate"> <span class="keyword">bool</span> Prim = <span class="number">0</span> ;</span> <span class="notranslate"> <span class="comment">//ブール変数Primの値はfalseです。</span></span> |
タイプ文字列
文字列 型の 値は、ASCII文字の集合として表されます。
私たちの日常生活では、類似のコンテンツは、たとえば店舗名、車種などに属し ます。 文字列の値 は二重引用符で囲まれた 文字の 集合として記録されます(二重引用符と混在しないでください)。 引用符は、文字列定数の先頭と末尾をマークするためにのみ使用されます。 値そのものは、引用符で囲まれたすべての文字です。
二重引用符( ")を挿入する必要がある場合は、その前に逆スラッシュ(\)を付ける必要があります。逆スラッシュ(\)に続く特殊 文字定数はすべて 文字列に入れることができます。 文字列定数の長さが最大値を超えると、右側の余分な文字が切り捨てられ、コンパイラが対応する警告を表示します。最初の2文字は、次のとおりです。逆スラッシュ(\)は、ほとんどのプログラムでは、特定のテキスト書式を実行するための指示として一般に受け入れられ、認識されています(たとえば、\ nの組み合わせは改行の必要性を示します)。 \ tは表を要求します。
文字列は、 "MetaTrader 4"、 "Stop Loss"、 "Ssssstop_Loss"、 "stoploss"、 "10 pips"などの二重引用符で囲まれた文字セットとして記録されます。 文字列の値は文字の集合です。 引用符は、値の境界線をマークするためにのみ使用されます。 内部表現は8バイトの構造です。
ここでは、プログラム内で文字列型の変数を使用する例を示します。
1 2 3 4 |
<span class="notranslate"> <span class="keyword">文字列</span> Prefix = <span class="string">"MetaTrader 4"</span> ;</span> <span class="notranslate"> <span class="comment">//文字列変数の例</span></span> <span class="notranslate"> <span class="keyword">文字列</span> Postfix = <span class="string">"_of_my_progr。OK"</span> ;</span> <span class="notranslate"> <span class="comment">//文字列変数の例</span></span> <span class="notranslate"> <span class="keyword">文字列</span> Name_Mass = <span class="string">"履歴"</span> ;</span> <span class="notranslate"> <span class="comment">//文字列変数の例</span></span> <span class="notranslate"> <span class="keyword">文字列</span> text = <span class="string">"上線\ n下線"</span> ;</span> <span class="notranslate"> <span class="comment">//テキストに改行文字が含まれている</span></span> |
タイプの色
色は カラー データタイプ として保存され ます。
「色」(青、赤、白、黄、緑など)の意味は一般的な知識です。 色の種類の変数や定数が意味するものを想像するのは簡単です。 これは定数または変数であり、その値は色です。 ちょっと変わったように見えますが、一般的に言えば、とてもシンプルです。 整数定数の値が数値であるのと同様に、 色 定数の 値は 色です。
色定数 と変数の 値 は、 リテラル、整数表現、色名の3種類のうちの1つとして表現できます。
リテラル
リテラルとして表現される カラー タイプの値は、赤、緑、青(RGB)の3つの基本カラーの強度の数値を表す3つの部分で構成されています。 この種の値は 'C'で始まり、一重引用符で囲みます。
RGB強度の数値は0〜255の範囲であり、10進数と16進数の両方で記録することができます。
例:C'128,128,128 '(灰色)、C'0x00,0x00,0xFF'(青色)、C'0xFF、0x33,0x00 '(赤色)。
整数表現
整数表現は、16進数または10進数として記録されます。 0xRRGGBBとして16進数が表示されます.RRは赤の強さの値、緑のGG、青のBBです。 10進定数はRGBに直接反映されません。 これらは、16進整数表現の小数値を表します。
カラータイプの値を整数および16進リテラルとして表現するのは、非常にユーザーフレンドリーです。 最新のテキストエディターやグラフィックスエディターの大半は、選択した色の値で赤、緑、青の各コンポーネントの強度に関する情報を提供します。 エディタで色を選択し、その説明にある値をコード内の対応する色値表現にコピーするだけです。
例:0xFFFFFF(白)、0x008000(緑)、16777215(白)、32768(緑)。
図11 定数カラー値のリテラルおよび整数表現のカラーパラメータは、最新のエディタで取得できます。
色の名前
色を設定する最も簡単な方法は、ウェブの色の表に従って名前を指定することです。 この場合、 色の 値は 色に 対応する単語として表されます。たとえば、赤は赤の色を表します。
clrBlack | clrDarkGreen | clrDarkSlateGray | clrOlive | clrGreen | clrTeal | clrNavy | clrPurple |
clrMaroon | clrIndigo | clrMidnightBlue | clrDarkBlue | clrDarkOliveGreen | clrSaddleBrown | clrForestGreen | clrOliveDrab |
clrSeaGreen | clrDarkGoldenrod | clrDarkSlateBlue | クロシエンナ | clrMediumBlue | clrBrown | clrDarkTurquoise | clrDimGray |
clrLightSeaGreen | clrDarkバイオレット | ClrFireBrick | clrMediumVioletRed | クロムメシアセイグリーン | clrChocolate | clrCrimson | clrSteelBlue |
clrGoldenrod | clrMediumSpringGreen | clrLawnGreen | clrCadetBlue | clrDarkOrchid | clrYellowGreen | clrLimeGreen | clrOrangeRed |
clrDarkOrange | clrOrange | clrGold | clrイエロー | clrChartreuse | clrLime | clrSpringGreen | クレアクア |
clrDeepSkyBlue | clrBlue | clrMagenta | clrRed | clrGray | clrSlateGray | clrPeru | clrBlueViolet |
clrLightSlateGray | clrDeepPink | clrMediumTurquoise | clrDodgerBlue | clrTurquoise | clrRoyalBlue | clrSlateBlue | ClrDarkKhaki |
clrIndianRed | clrMediumOrchid | clrGreenYellow | clrMediumAquamarine | clrDarkSeaGreen | clrTomato | clrRosyBrown | clrOrchid |
clrMediumPurple | clrPaleVioletRed | clrCoral | clrCornflowerBlue | clrDarkGray | clrSandyBrown | clrMediumSlateBlue | ClrTan |
clrDarkSalmon | clrBurlyWood | clrHotPink | clrSalmon | 青紫色 | clrLightCoral | clrSkyBlue | clrLightSalmon |
clrPlum | クラッカー | clrLightGreen | クレアクアマリン | clrSilver | clrLightSkyBlue | clrLightSteelBlue | clrLightBlue |
ClrPaleGreen | clrThistle | clrPowderBlue | ClrPaleGoldenrod | clrPaleTurquoise | clrLightGray | clrWheat | clrNavajoWhite |
clrMoccasin | clrLightPink | clrGainsboro | clrPeachPuff | clrPink | clrBisque | clrLightGoldenrod | clrBlanchedAlmond |
clrLemonChiffon | clrBeige | clrAntiqueWhite | clrPapayaWhip | clrCornsilk | clrLightYellow | clrLightCyan | clrLinen |
clrLavender | clrMistyRose | clrOldLace | clrWhiteSmoke | clrSeashell | 象徴 | clrHoneydew | clrAliceBlue |
clrLavenderBlush | clrMintCream | clrSnow | clrWhite |
カラータイプの 定数および変数 は 、4バイトのコンピュータメモリを使用します。 このような変数をプログラムで使用する例を以下に示します。
1 2 3 4 5 6 7 8 9 10 11 |
<span class="notranslate"> <span class="keyword">カラー</span> Paint_1 = <span class="string">C'128,128,128 '</span> ;</span> <span class="notranslate"> <span class="comment">//グレーの値が変数に代入されました</span></span> <span class="notranslate"> <span class="keyword">color</span> Colo = <span class="string">C'0x00,0x00,0xFF '</span> ;</span> <span class="notranslate"> <span class="comment">//青の値が変数に割り当てられました</span></span> <span class="notranslate"> <span class="keyword">カラー</span> BMP_4 = <span class="string">C'0xFF、0x33,0x00 '</span> <span class="comment">//赤の値が変数に割り当てられました</span></span> <span class="notranslate"> <span class="keyword">色</span> K_12 = <span class="number">0xFF3300</span> ;</span> <span class="notranslate"> <span class="comment">//赤の値が変数に代入された</span></span> <span class="notranslate"> <span class="keyword">色</span> N_3 = <span class="number">0x008000</span> ;</span> <span class="notranslate"> <span class="comment">//緑の値が変数に割り当てられました</span></span> <span class="notranslate"> <span class="keyword">カラー</span>カラー= <span class="number">16777215</span> ;</span> <span class="notranslate"> <span class="comment">//白の値が変数に代入された</span></span> <span class="notranslate"> <span class="keyword">色</span> Alfa = <span class="number">32768</span> ;</span> <span class="notranslate"> <span class="comment">//緑の値が変数に割り当てられました</span></span> <span class="notranslate"> <span class="keyword">色</span> A =赤;</span> <span class="notranslate"> <span class="comment">//赤の値が変数に代入された</span></span> <span class="notranslate"> <span class="keyword">カラー</span> B =イエロー;</span> <span class="notranslate"> <span class="comment">//黄色の値が変数に代入された</span></span> <span class="notranslate"> <span class="keyword">カラー</span> Colorit =ブラック;</span> <span class="notranslate"> <span class="comment">//黒の値が変数に割り当てられました</span></span> <span class="notranslate"> <span class="keyword">カラー</span> B_21 =白;</span> <span class="notranslate"> <span class="comment">//白の値が変数に代入された</span></span> |
タイプdatetime
datetime データ型は、日付と時刻に使用されます。
このタイプの値は、重要なニュース、就業日の開始/終了など、いくつかのイベントの開始または終了の瞬間を分析するプログラムで使用できます。 日付と時刻の定数は、年、月、日(または日、月、年)、時、分、秒の数値を表す6つの部分で構成されるリテラル行として表すことができます。
定数は "D"で始まり、一重引用符で囲まれています。 日付なしで、または時間なしで、または空の値として切り捨てられた値を使用することもできます。 値の範囲は1970年1月1日から2037年12月31日 までです。datetime型の定数および変数の 値は 、コンピュータのメモリに4バイトをとります。 値は、1970年1月1日00:00から経過した秒数を表します。
次に、プログラムでdatetime型の変数を使用する例を示します。
1 2 3 4 5 |
<span class="notranslate"> <span class="keyword">datetime</span> Alfa = <span class="string">D'2004.01.01 00:00 '</span> ;</span> <span class="notranslate"> <span class="comment">// 新年</span></span> <span class="notranslate"> <span class="keyword">datetime</span> Tim = <span class="string">D'01.01.2004 '</span> ;</span> <span class="notranslate"> <span class="comment">// 新年</span></span> <span class="notranslate"> <span class="keyword">datetime</span> Tims = <span class="string">D'2005.05.12 16:30:45 '</span> ;</span> <span class="notranslate"> <span class="comment">// 2005年5月12日4:30:45 pm</span></span> <span class="notranslate"> <span class="keyword">日時</span> <span class="string">N_3</span> = <span class="string">D'12.05.2005 16:30:45 '</span> ;</span> <span class="notranslate"> <span class="comment">// 2005年5月12日4:30:45 pm</span></span> <span class="notranslate"> <span class="keyword">datetime</span>コンパイル= <span class="string">D "</span> ;</span> <span class="notranslate"> <span class="comment">// D 'の[compilation date] 00:00:00'と等価です。</span></span> |
変数の宣言と初期化
この変数またはその変数がどのタイプのデータに属しているかに関するプログラムによる「疑問」を避けるために、MQL4では、プログラムの開始時に変数のタイプを明示的に指定することが期待されています。 変数が計算に参加する前に、その変数を宣言する必要があります。
変数宣言 は、プログラム内の変数の最初の言及です。 変数の宣言時には、その型を指定する必要があります。
変数の初期化 は、宣言時にその型に対応する変数に値が与えられるときです。 すべての変数を初期化できます。 初期値が明示的に設定されていない場合、数値変数はゼロ(0)で初期化され、文字列変数は空の行で初期化されます。
MQL4では、宣言時に変数の型を明示的に指定することが期待されています。 変数のデータ型は、初期化時にこの変数の名前の最初の言及で宣言されます。 2番目以降のすべての時刻に指定すると、そのタイプはもう指定されません。 プログラムの実行中に、変数の値は変更できますが、その型と名前は変更されません。 変数の型は、単一行または演算子で宣言できます。 |
変数は1行で宣言できます。
1 |
<span class="notranslate"> <span class="keyword">int</span> Var_1;</span> <span class="notranslate"> <span class="comment">// 1行の変数宣言</span></span> |
このレコードは、与えられたプログラム内に変数 Var_1 (変数宣言など)があり、この変数の型は intである ことを意味し ます。
同じ型のいくつかの変数を1行で宣言できます。
1 |
<span class="notranslate"> <span class="keyword">int</span> Var_1、Box、Comm;</span> <span class="notranslate"> <span class="comment">//複数の変数を1行で宣言する</span></span> |
このレコード は、プログラムで使用されるint型のすべての変数 Var_1 、Box、およびComm が存在することを意味 します。 これは、列挙された変数が、整数型の変数としてプログラムによって考慮されることを意味します。
変数は演算子内で初期化することもできます。
1 |
<span class="notranslate"> <span class="keyword">double</span> Var_5 = <span class="number">3.7</span> ;</span> <span class="notranslate"> <span class="comment">//代入演算子での変数の初期化</span></span> |
このレコードは、変数 の初期値が3.7であるdouble型の 変数が存在することを意味し ます。
変数の型は 、プログラムの 次の 行の どこにも指定されません 。 しかし、プログラムが変数を呼び出すたびに、この変数がその宣言で指定された型であることを "覚えている"。 プログラムで計算が進むにつれて、変数の値は変わる可能性がありますが、その型は変更されません。
変数の名前はその型とは関係がありません。つまり、変数の型名を名前で判断することはできません。 あるプログラムのあるデータ型の変数に与えられた名前は、異なるプログラムの異なる型の他の変数に使用できます。 ただし、変数の型は1つのプログラム内で1回だけ宣言できます。 宣言された変数の型は、プログラムの実行中は変更されません。
変数の宣言と初期化の例
変数は、複数の行または単一の行で宣言することができます。
1つの型の複数の変数を同時に宣言することができます。 この場合、変数はコンマで区切られ、行の最後にセミコロンが付いています。
図12 変数宣言の1行での例
変数の型は、変数の最初の言及で一度だけ宣言されます。 変数の2番目の言及とその後のすべての言及のために型はもう指定されません。
図13 変数宣言の1行での例
演算子で変数を宣言して初期化することは許可されています。
図14 変数の初期化の例
図15 複合演算子のヘッダの変数の初期化。