FC2ブログ

mt4 (MetaTrader4)使い倒シストレ

メタトレーダー、自作インジケータ、自作EAで完全自動売買。使えるものは何でも使え。
インジケーター、EA(自動売買システム)製作のご依頼はこちらへ
Googolyen FX Factory
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


にほんブログ村 為替ブログ FX システムトレード派へ
--/--/--(--) --:--:-- | スポンサー広告 | Trackback(-) | Comment(-)
Precedence rules (優先順位)
以下の表にある演算子の各グループは同じ優先度を持つものである。
表のグループ内で高いもの程、優先順位が高い。
優先順位は演算子とオペランドのグループによって決定する。

()     関数呼び出し                     左から右へ
[]     配列要素への参照
!      論理否定                         右から左へ
-      符号変換演算
++     インクリメント
--     デクリメント
~      ビット否定 (補数)
&      ビット論理積                     左から右へ
|      ビット論理和
^      ビット排他的論理和
<<     左シフト
>>     右シフト
*      乗算                             左から右へ
/      除算
%      余り
+      加算                             左から右へ
-      減算
<      小なり                           左から右へ
<=     以下
>      大なり
>=     以上
==     等しい
!=     等しくない
||     論理和                            左から右へ
&&     論理積                            左から右へ
=      代入                              右から左へ
+=     加算代入
-=     減算代入
*=     乗算代入
/=     除算代入
%=     余り代入
>>=    右シフト代入
<<=    左シフト代入
&=     ビット論理積代入
|=     ビット論理和代入
^=     ビット排他的論理和代入
,      コンマ                            左から右へ


にほんブログ村 為替ブログ FX システムトレード派へ
Other operations (その他の演算)

インデックス指定

配列のi番目の要素にアクセスする場合、式の値はiの通し番号を持つ変数の値となる。

Example:
array[i] = 3; //配列のi番目の要素に3の値を代入する
整数だけ配列のインデックスになる。
4次元以下の配列が許されている。
各サイズは0からサイズ-1でインデックス化される。
具体的に言うと、50個の要素から成る1次元配列を考えたとき、最初の要素は array[0] の様に参照し、最後の要素への参照は array[49]となる。

サイズを越えてアクセスすると、サブシステムがERR_ARRAY_INDEX_OUT_OF_RANGEエラーを発生させる。このエラーはGetLastError()関数によって分かる。

x1,x2,...,xn引数での関数呼び出し

各引数は、定数、変数、または類似する型の式である。引数は、関数名の後の丸括弧の中に書き、各引数はコンマで区切られる。 式の値は、関数からの返り値である。void型の関数の場合、関数呼び出しは代入演算子の右辺に置くことはできない。
オーダー関数の引数によってどのような動きをするか確認してみてください。

Example:
double SL=Bid-25*Point;
int    ticket=OrderSend(
                        Symbol(),OP_BUY,1,Ask,
                        3,SL,Ask+25*Point,"My comment",
                        123,0,Red
                        );

コンマの働き

コンマで区切られた式は左式から右式に順番に実行される。
左式を計算した影響は右式が計算されるよりも前に現れ、その結果の型と値は右式に影響を与える。
上記のようなパラメータの羅列は以下のExampleのように使われる。

Example:
for(i=0,j=99; i<100; i++,j--) Print(array[i][j]);


にほんブログ村 為替ブログ FX システムトレード派へ
Bitwise operations (ビット演算)
ある変数値の補数。この式は、nの各ビットを反転させた値になる。

b = ~n;
xの2進数表記はyビットほど右シフトされる。
右シフトとは論理シフトである。
すなわち左端のビットはゼロで埋まる。

x = x >> y;
xの2進数表記はyビットほど左シフトされ、右端のビットはゼロで埋まる。

x = x << y;
2進数化したx、yの論理積の表現。
この式の値は、x、yの各ビット毎の論理積をとった値が0ではない時の値となる。

b = ((x & y) != 0);
2進数化したx、yの論理和の表現。
この式の値は、x、yの各ビット毎の論理和をとった値となる。

b = x | y;
2進数化したx、yの排他的論理和の表現。
この式の値は、x、yの各ビット毎の排他的論理和をとった値となる。
各ビットが異なるビット値を持っていた場合、そのビット値は1となり、同じビット値を持っていた場合0となる。

b = x ^ y;
ビット演算子は整数にのみ実行可能である。

にほんブログ村 為替ブログ FX システムトレード派へ
Boolean operations (ブール演算)
論理否定演算 (!で表わされる否定演算)は算術型でなければならない。
オペランド値がFALSE (0)の場合、結果はTRUE (1)になる。
非FALSE (0) であればFALSE (0)となる。

if(!a) Print("not 'a'");
xとyの論理和 (||)。
x、yのどちらかが真(非空値)の時、この式はTRUE (1)となる。
そうでなければFALSE (0)となる。
論理式は厳密に計算される。
いわゆる "Short estimate (簡単な見積もり)" はこれらには適応されない。

if(x<0 || x>=max_bars) Print("out of range");
xとyの論理積 (&&)。
x、yがどちらも真(非空値)の時、この式はTRUE (1)となる。
そうでなければFALSE (0)となる。

if(p!=x && p>y) Print("TRUE");


にほんブログ村 為替ブログ FX システムトレード派へ
Operations of relation (比較演算)
論理値のFALSEは整数値の0として表わされ、と同時に論理値のTRUEは非ゼロとして表わされる。
比較演算や論理演算を含む式の値は、0 (FALSE)か1 (TRUE)である。

aとbが等しければTRUE        a == b;
aとbが等しくなければTRUE    a != b;
aがbより小さければTRUE      a < b;
aがbより大きければTRUE      a > b;
aがb以下であればTRUE        a <= b;
aがb以上であればTRUE        a >= b;
正規化されてない浮動小数値を == や != 演算子で比較することはできない。
その場合、二つの値の差が必要で、その差を正規化した結果と空値を比較すればよい。

にほんブログ村 為替ブログ FX システムトレード派へ
Assignment operation (代入演算)
与えられた演算を含む式の値は、代入後の左オペランドとなる。

yにxの値を代入する              y = x;
以下の演算は算術演算子や、ビット演算子に代入演算子が付いたものである。:

yにxを加算する                       y += x;
yからxを減算する                     y -= x;
yとxを乗算した結果をyに代入          y *= x;
yをxで除算した結果をyに代入          y /= x;
yをxで割ったあまりをyに代入          y %= x;
yを左にxビットシフトした結果をyに代入  y >>= x;
yを右にxビットシフトした結果をyに代入  y <<= x;
yとxの論理積をyに代入                y &= x;
yとxの論理和をyに代入                y |= x;
yとxの排他的論理和をyに代入          y ^= x;
これらは1つの式に対して1つしか使えない。
ビット演算は整数値にしか機能しない。
シフト演算では5桁の2進数 (10進数:31、16進数:0x1F)より小さい数を用いる。
それよりも大きな数は使えない。
というのは0(2^0)から31(2^5)ビットまでの範囲でしかシフトできないからである。
%= 演算子 (yをxで割った余り)を用いることによって、結果の符号が割る数の符号と等しくなる。

にほんブログ村 為替ブログ FX システムトレード派へ
Arithmetical operations (算術演算)
算術演算は加算、乗算演算を含むものである。

和                                 i = j + 2;
差                                 i = j - 3;
逆符号                             x = - x;
積                                 z = 3 * x;
商                                 i = j / 5;
余り                               minutes = time % 60;
変数値に1加算する(インクリメント)  i++;
変数値から1減算する(デクリメント)  k--;
インクリメント、デクリメント演算は式中では使えない。

Examples:
int a=3;
a++;              // 有効な式
int b=(a++)*3;    // 無効な式


にほんブログ村 為替ブログ FX システムトレード派へ
Expressions (式)
式は一つ以上の演算の対象となる数値および変数と演算子で成り立つ。式は複数行で書くこともできる。

Examples:
a++; b = 10;
x = (y * z) /
    (w + 2) + 127;
セミコロン (;)で終わる式が文である。

にほんブログ村 為替ブログ FX システムトレード派へ
Operations & Expressions
文字やその並びは特別重要な意味を持つ。これらは演算子と呼ばれる。例えば:

+ - * / %     算術演算子
&& ||         論理演算子
= += *=       代入演算子
演算子は式中で使われ、適切な変数が与えられた時に機能する。

句読点は重要で、丸括弧、中括弧、コンマ、コロン、セミコロンも同様である。

演算子、句読点、空白はプログラムの要素を分けるために使われる。



にほんブログ村 為替ブログ FX システムトレード派へ
Designed by aykm.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。