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

メタトレーダー講義 第1回 ウェルカムレッスン
始めに。

FXボーイから管理を受け継いだメタバイザーです。

もともとこのメタトレーダー講義は彼が翻訳したもので、

どのようにこちらのブログで掲載していくのか迷ったのだが、

結局彼が訳してくれたものや文体は基本的にそのままに、よりわかりやすい表現に直して、

なにか補足があれば付け足すという形で掲載するという形をとることにした。

彼は何もプログラミング言語を知らない状況から訳し始めたのにも関わらず、

大変秀逸な訳文になっている。 なのであまり手直しすることもないが、

プログラミングができる身から見るとやはりいろいろ気づくところもあると思う。

その辺をさりげなく修正していき、最後に私からの補足説明を加えるという形で掲載していく。

よろしくお願いする。

以上をもって、私にとってのみなさんに対する始めに に変えさせて頂く。



こんにちはFXボーイです。これからは管理をメタバイザーに受け持ってもらうことになりました。
時々口は悪いですが、非常に誠実な石像なので、よろしくやってください。
プログラミングにも造詣が深いので、僕よりも適切な訳文にすることができると思います。

もしからしたら時々サイトに遊びに来るかもしれませんので、レアキャラになるとは思いますが、その時は宜しくお願い致します。

さて、これより先が僕から皆様に送るはじめに。になります。

メタトレーダーって敷居が高いですよね。特にC言語の知識が無い身でメタトレーダーを使いこなすようになれるのは相当難しいと思います。
特に日本では、現段階でメタトレーダーに関する情報が大変少ないので、習得するのも余計に大変になっています。
そんななか、メタトレーダーまとめwikiで紹介されていたCodersGuruさんのメタトレーダー講義がメタトレーダーの根本から解説していて、C言語の知識がない僕でも素晴らしく解りやすかったので、本人の許可を取って日本語訳を連載することにしました。

メタトレーダーまとめwikiの管理人さん、CodersGuruさん、そしてメタトレーダースレでの情報提供者の方々に謝意をこの場をお借りして申し上げたいと思います。ありがとうございます。


プログラミング言語はほぼ知らず、英語も得意じゃないので英語を韓国語に翻訳するような気分(?)ですが、頑張っていこうと思います。

CodersGuruさんのメタトレーダーレッスンの原書は↓にあります。
http://www.forex-tsd.com/lessons/208-lesson-8-variables-mql4-2.html

いろいろ読みづらいところもあると思いますが質問や誤訳等ございましたらお申し付けください。おそらく石像
メタバイザーが修正してくれると思います。



それでは始めましょう。Coders'Guruさんの登場です。



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

                             -1-
                          ようこそ

MQL4講座へようこそ。
このシリーズでは、しっかりとした例をあげながら包括的な個別レッスンをすることでMQL4の秘密や混乱を剥ぎ取っていきます。

もしあなたがC言語(もしくはC++言語)を操れるのなら、あなたはMQL4について、私の講義が始まる以前から、既にたくさんのことを知っていることになります。もしあなたがなんのプログラミング言語を扱った経験がなくても大丈夫。全く問題ありません。プログラミング初心者の方にも理解ができるように、この講義ではプログラミングの一般的な概念についても詳しく取り上げ、一から説明していこうと思っています。

それでは、最初の授業をはじめましょう。

MQL4?何?なぜ?どこ?

MQL4はMetaQuotes Language 4を表しています。要は、メタトレーダー専用のプログラミング言語だと考えてください。
メタクオーターはメタトレーダー、トレーディングプラットフォームをつくった会社です。
そして他のトレーディングプラットフォームよりも一段上の価値を提供するために、その会社はプログラミング言語をいれて、ユーザー(あなた)が自分のトレード戦略を記述できるようにしました。

MQL4言語によってあなたは以下のものを作り出せます。
    
    1エキスパートアドバイザー
    2カスタムインディケーター
    3スクリプト


    ・エキスパートアドバイザーは貴方のために自動でトレードしてくれるプログラムです。例えば
     あなたの取引通貨で、構築したトレーディングシステムに沿ったエントリー注文、手仕舞い注
     文、注文の差し替えやキャンセルを自働で行ってくれ、あなたに利益をもたらします。

    ・カスタムインディケーターは貴方の考えたテクニカル指標を使うことを可能にさせるプログラムで、
     自動売買をするものではありません。

    ・スクリプトは一つの機能を実行するためにデザインされたプログラムです。エキスパートアド
     バイザーとは違って、スクリプトは一回のみの実行で(要求次第ですが)値動きによって行
     われるものではありません。そしてもちろん、インディケーター機能にアクセスできません。

これらがMQL4とは何かなぜMQL4を使うのかでした。
さぁ今度は、MQL4をどこに書くのかです。

MQL4コードを書くにあたって、ここでも例外なく、あなたは二つの道を選ぶことができます。険しい道と、楽な道です。(険しい道は大変なことを示すだけなので斜め読みで構わないと思います)

1-険しい道
険しい道では、あなたの好きなテキストエディターを使ってあなたのプログラムをコンパイルするように命令します。
メモ帳は悪くない選択です。でも以下二つのことを忘れないでください。
    1-あなたが真っ白なテキストで作ったファイルを保存すること。
    2‐ファイルを保存するときに.mp4(メタエディターと一緒に開きやすくするために)とすること。
     ファイルの名前の長さは自分の好きなように保存できます。

プログラムを保存した後に、あなたのコードを適用させるための特別な手順があります。
その手順をコンパイルといいます。
コンパイルとは、あなたが書いた人が読めるような簡易プログラムから、機械が読み込めるように機械語に変換するというものです。

メタトレーダーはMetaLang.exeと呼ばれる自分のコンパイラー(あなたの簡易プログラムを機械語に変換するプログラム)をすでに持っています。

Metalang.exeとは.二つの設定値をもち、ex4file(メタトレーダーが読み込むことができるファイル)を出力する入力装置プログラムです。
一つ目の設定値はオプション設定値で、ただ-qを抜かすだけに使用されます。
二つ目の設定値はあなたの.mpl fileのフルパス(ファイル名を指定するときに、ドライブ名から始めてすべてのディレクトリ名を指定して入力すること。)です。

シンタックスで記述すると次のようになります。
metalang[options...]ファイル名


  1‐あなたのmetalang.exeのパス(ファイルやフォルダの所在を示す文字列。)をみつける。それは
   メタトレーダーのパスと同じところにあるはずです。(D:\Program Files MetaTrader4)
  2‐バッチファイル(起動するプログラムを順に列挙したファイル)をつくりそれにcompile.batと名前
   をつける(他のあなたの好きな名前でも構いません)
  3‐以下の文をそのファイルに書き込み保存する。
   cdD:ProgramFilesMetaTrader4
   metalang-q"D:ProgramFilesMetaTrader4my_first_mql4_script.mq4"
   (メタトレーダーをインストールしたパスの場所に移動させとくことを忘れないでください)
  4‐バッチファイルを起動し、もしあなたが私のようにラッキーな人間ならばこのような画面が出
   てきます。

figur1.png


2‐楽な道
メタトレーダーはメタエディターという良質なIDE(integrated development editor)を備え付けており、以下の特徴があります。

1‐テキストエディターは、MQL4言語の構造とは大きく違う特徴をもっている。

2‐メタエディターなら、ただF5をクリックするだけで、ex4fileをつくるための大変な作業をやってくれ、
  簡単にあなたのプログラムをコンパイルすることができる。
  加えて、エラータブがあなたのプログラムの問題点は何かということを教えてくれる。

3‐便利な辞書が備え付けられており、F1を押すことによって、あなたの知りたい主要なキーワード
  の特徴を知ることができる。

次の講義を受講すると、もっとメタエディターについて貴方は詳しくなるはずです。

今日は初回の授業に相応しく、自己紹介しにきただけだから、軽い授業で流しました。
明日から本格的な授業に入っていきたいと思います。次回の授業では、MQL4のシンタックス言語について取り上げたいと思います。

それでは
Coders'Guru



メタバイザーによる補足説明
これは、私、メタバイザーがプログラミング初心者の方向けに、

講義で分かりづらい、理解するのが難しいと思われる概念について追加説明をするコーナーだ。

さて、今回の講義で実際にEAやインディケーターを作成する上で諸君に覚えておいてほしい重要な点は



       無い!

初っ端からこのコーナーの存在意義が危ぶまれるが、

プログラミングって、こんなイメージなんだと掴んでもらえさえすれば大丈夫だ。

とりあえずEAが作れるようになるために覚えることはそれほど多くないので安心してほしい。

また何か質問や意見があれば、こちらの方まで遊びに来てほしい。 



人気ブログランキングに参加している。
にほんブログ村 為替ブログ FX システムトレード派へ

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

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


最後まで読んでくれたことに感謝している。
スポンサーサイト
メタバイザー
メタトレーダー講義   0

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


メタトレーダー講義 第2回 シンタックス言語
こんにちわ。FXボーイです。

さて、今回の講義はシンタックス言語についてです。

いろいろ読みづらいところもあると思いますが質問や誤訳等ございましたらお申し付けください。すぐにメタバイザーが修正します。
時々文章の中にある茶目っけやハイテンションなところはCodersGuruさんによるもので僕によるものではありません

この文章はCodersGuruさんのMQL4Lesson3の訳文です。(翻訳しての転載に本人の許可はとってあります)

それでは、Coders'Guruさんの講義が始まります。





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

                             -2-
                         シンタックス



前回の私の最初の授業となるウェルカムレッスンでは、
・MQL4とは何か
なぜMQL4なのか、
・MQL4はどこにあるのか
という非常に基本的な質問を解き明かしたが、楽しんで頂けましたか?

しかし、常にもっとも重要な質問はどのように です。その問いについての答えを、これからのレッスンによって明らかにしていきたいと思います。

さて、今、あなたの頭の中から雑念を取り除いて空っぽの状態にしていただき、次の概念を注意深く読んでください。

今日話していることはMQL4のシンタックス言語のルールにたいするものです。
そして以前あなたに言ったようにもしあなたがC言語(もしくはC++)を操ったことがあるのならば、
私がレッスンを始める前に既にたくさんのMQL4言語について知っていることになるでしょう。
なぜなら、MQL4のシンタックス言語はとてもC言語に似通っているからです。

シンタックスのプログラミング言語における項目を辞書で調べてみましょう。
"出力する際に、使用を許可されている予約語や、変数、正しい論理構造の型をシンタックス言語という"


つまり、私たちがシンタックス言語を学ぶとき、同時にシンタックス言語の文法や記述のルールを学ばなければなりません。シンタックスのルールや、文法には以下の四つが含まれています。
      ・フォーマット
      ・コメント
     ・識別子     
     ・予約語

さぁ始めましょう。


1-フォーマット



あなたがコードを書くとき、あなたは自由にスペースやタブ、改行を使って、自分が見やすいように、コードを分けたり、区切ったりすることができます。

例をあげると、これらの文はMQL4ですべて適用されます。

double MacdCurrend,MacdPrevious,SignalCurrent;

double
MacdCurrend,
MacdPrevious,
SignalCurrent;

double      MacdCurrend,      MacdPrevious,      SignalCurrent;


でも、まぁ見て頂ければ、一番最初の文が最も見やすく理解しやすいのではないでしょうか。


そして、世界万事の共通事項ですが、このルールにも例外があります。

1-"コンパイラ制御"の中で改行してはならない。

  コンパイラ制御については次のレッスンで説明するので、今はただこのことだけを記憶しておいてください。

  たとえば、次のコード分は、適応されません。

#property
  copyright"Copyright C 2004.MetaQuotes Software Corp,"



  こちらは適応されるコンパイラ制御です。

#property copyright"Copyright C 2004.MetaQuotes Software Corp,"



2-定数、予約語、識別子のなかで改行してはならない。

  たとえば、この文は適応されます。
 
 extern int MA_Period=13;


  "extern"と"int"は予約語。"MA_Period"は識別子"13"は定数です。
  次のレッスンであなたはより詳しくなるでしょう。

  次の文は適応されません。
 
 extern int MA_Period=1
  3;

  ex
  tern int MA_Period=13;

  extern int MA_Period=1    3;    (タブが1と3の間に入っている。)



2-コメント


プログラミングの世界を簡単にするために、プログラミング言語の中には、コメントを書くためのスタイルをもっているものがあります。
あなたはコード内に、コンパイラーが読み取らない文を記述することができます。それはあなたのコードを理解しやすく、はっきりさせることができます。
もしあなたが夏にプログラムを書いて、冬にそのプログラムを読み直すことがあったと仮定しましょう。
もしコメントがなかったら、あなたがもし仮にプログラマーだったとしても、パズルのような文をすべて理解することはできないでしょう。


MQL4(&C/C++)は、二種類のコメントスタイルがあります。


1-一行コメント


この一行コメントは、始まりに // をいれて、終りに改行すれば適応されます。


例えば


//これはコメント
extern int MA_Period=13;



extern int MA_Period=13//これはまた別のコメント




2-数行コメント
数行のコメントをする場合には、始まりに /* をいれ、終りに  */ をいれます。
文の一行めの始まりに /* をいれ、最後の行の文の終りに  */ を入れることによって、数行のコメントをすることができるのです。



/*これ

複数
行の
コメントです*/


以下のように、一行コメントを複数行コメントの中に入れ込むこともできます。


/*これ

複数     //別のコメントはここに入り込んでいるよ。
行の
コメントです*/


これは適応されます。


extern int /*こんにちは!ぼくはコメントだよ*/MA_Period=13;



でもこれは適応されません。

extern int //テスト MA_Period=13;



3-識別子 


識別子は、あなたが変数、定数、関数につけるのに選ぶ名前です。


たとえば、ここで使われているMA_Periodは識別子です。


extern int MA_Period=13;


識別子の名前を選ぶにはいくつかのルールや制限があります。


1-識別子の長さは31字以上になってはならない。


2-識別子は文字(小文字でも大文字でも可)もしくはアンダーバー "_" から始めなくてはならない。
 つまり、数字やアンダーバー以外のその他の記号から始めることはできない。


3-あなたは如何なる予約語も識別子として使うことはできない。
  +次の項目で予約語のリストがあります。


4-識別子の名前はとても敏感な問題であるので、
 MA_PERIODも、ma_periodも、MA_Periodも同じじゃありません。


5-アンダーバー以外の記号を使ってはならない。


例をいくつか見てみましょう。

Name1         適応
_Name1        適応
1Name         不適応(先頭が数字)
~name1        不適応(記号で使っていいのはアンダーバーだけ)
N~ame1        不適応(上に同じ)
i_love_my _country_and_my_country_loves_all_the_world  不適応(31字を超えている)
Color          適応
color          不適応(予約語のなかにcolorが入っている)



4-予約語



言葉をつかって特定の行為を引き出す語があります。

それらは言語用法として登録されているために、それを識別子や、その他の目的で使うことができません。

これはそれらの予約語のリストです。


data types memory classes  operators   other
bool        extern         break     false
color        static          case      true
datetime                  continue
double                    default
int                      else
string                    for
void                     if
                        return  
                        switch
                        while

 

例えば次の文のコードは適応されません。


extern int detetime=13;
int extern=20;
double continue=0;

楽しんでいただけたでしょうか。
次の講義は"Data type"についてです!
準備はできていますか?いよいよ難しいところがやってきましたよ!

それではまた。

Coders'Guru




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

さて、今回はメタトレーダーでプログラミングを作成していく中での記述法を解説して頂いた。

言うなれば、メタトレーダーが読み取れるようにするコードの文法を取り上げて解説したのが今回の講義ということになる。

今回の講義で実際プログラミングを書く時に特に覚えておいてほしいのが、識別子のルールの4番目。

4-識別子の名前はとても敏感な問題であるので、
 MA_PERIODも、ma_periodも、MA_Periodも同じじゃありません。


これを間違ってコンパイルエラーになるケースが多いので、大文字と小文字の区別をしっかりすることを心がけてほしい。

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

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


人気ブログランキングに参加している。
にほんブログ村 為替ブログ FX システムトレード派へ
もしよろしければ応援してほしい。どうもありがとう。

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


最後まで読んでくれたことに感謝している。



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

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


メタトレーダー講義 第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

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


アラート付きインディケーター第一弾 移動平均線クロスアラート
こんばんわ。メタバイザーです。

さて今回は、メタトレーダーが便利なことをボブにも知らしめよう企画第一弾!

移動平均線がクロスしたらアラートを鳴らすインディケーターをプレゼントだ!

このプレゼントが欲しい人は、
ボブのメールセミナーに登録してやって欲しい。

5万円以上の価値があると言われた、ツールや記事の紹介をしている。
メールセミナー後には、あなたの投資家レベルに知識は飛躍的に
上がっていることだろう。
ボブのメールセミナー

ダウンロードをしたら、Metatrader-Expert-Indicatorのファイルに入れ込んでくれれば使えるようになるぞ。

使い方を説明すると・・よっと、まずこちらを見てほしい
maalert.png
パラメーターが上から順に
FastMA      短期移動平均線の期間
SlowMA      長期移動平均線の期間
sound       音を鳴らすファイル名は何か
GoldenSound   ゴールデンクロスした時に音を鳴らすかどうか。
DeadSound    デッドクロスした時に音をならすかどうか。

となっている。

一応説明していこう。

FastMA SlowMA
FastMAに短期移動平均線の期間を、
SlowMAに長期移動平均線の期間を入力してみよう。
写真では5と40になっているので、期間5の移動平均線と、期間40の移動平均線がクロスしたらその時に音が鳴るぞ。
どちらも好きなように設定を変えることができるので、自分の好きな期間で音を鳴らしてみて欲しい。

sound

Metatrader-soundsのフォルダの中に入っているファイル名ならば、どの名前に変更しても音がなる。
どのメタトレーダーにも基本的にalert2や、newsという音源が備え付けられているので、
このパラメーターをalert2もしくはnewsに変更してみて、音の違いを楽しんでみてほしい。

わかったかボブ。

詳しく知りたければ放課後に質問するように。


GoldenSound  DeadSound 
GoldenSoundはゴールデンクロスしたときに音を鳴らしますか?
trueなら鳴らします。
falseなら鳴らしません。 という意味。

DeadSoundはデッドクロスした時に音を鳴らしますか?
trueなら鳴らします。
falseなら鳴らしません。 という意味だ。

要はスイッチみたいなものだな。

ちなみに設置するとこのようになる。
sa.png
ボブレベルだとこの移動平均線のクロスに合わせて売買していったほうが絶対成績がいいぞ。


デッドサウンドといっても死ぬ音とかでは断じてないぞ。 わかってるなボブ。

ファーファファ!



ボブ
あ、皆さんはじめまして!FX歴3ヶ月めのボブでさて、ボブの初めての自己紹介も終わったところで今日はこの辺で講義終了だ。



FX初心者 ボブ



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

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

人気ブログランキングに参加している。
にほんブログ村 為替ブログ FX システムトレード派へ

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

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


私の長い話に最後まで付き合ってくれたことに感謝している。
メタバイザー
インディケーター   0

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


アラート付きインディケーター第二弾 ボリンジャータッチアラート
a.png


 こんにちわ。メタバイザーです。 今日は久しぶりに私の凛々しい顔の

 アップ画像からお送りいたします。

 さて今回も、前回に引き続き、

 メタトレーダーが便利なことをボブにも知らしめよう企画第2弾!

 ボリンジャーバンドに価格がタッチしたらアラートを鳴らすインディケータ
 ーをプレゼントだ!

このプレゼントが欲しい人は、
ボブのメールセミナーに登録してやって欲しい。

5万円以上の価値があると言われた、ツールや記事の紹介をしている。
メールセミナー後には、あなたの投資家レベルに知識は飛躍的に
上がっていることだろう。
ボブのメールセミナー

ダウンロードをしたら、Metatrader-Expert-Indicatorのファイルに入れ込んでくれれば使えるようになるぞ。

使い方を説明すると・・よっと、まずこちらを見てほしい

soundbb.png

パラメーターが上から順に
Bandperiod  ボリンジャーバンドの期間
Deviation   偏差
sound       鳴らす音の種類
Soundon    Deviationで指定した偏差に価格がタッチした時に音を鳴らすかどうか


となっている。

細かく説明していくぞ。


Bandperiod
ボリンジャーバンドの期間だ。初期設定は20で設定されている。


Deviation
偏差。つまりシグマだ。 一応統計学的には全ての値動きの95%は2シグマの内に収まるとされているが。
FXでは嘘だな。 
それよりもバンドの幅が小さい時に、ボリンジャーに価格があたったらバンドウォークを狙ったトレンドフォローのほうが成績が良い場合が多い。

今度検証してみようか。


sound

鳴らす音の種類。(音源ファイルの指定)
Metatrader-soundsのフォルダの中に入っているファイル名ならば、どの名前に変更しても音がなる。
どのメタトレーダーにも基本的にalert2や、newsという音源が備え付けられているので、
このパラメーターをalert2もしくはnewsに変更してみて、音の違いを楽しんでみてほしい。

わかったかボブ。

詳しく知りたければ放課後に質問するように。


Soundon 
Soundonは指定した偏差のに価格が当たった時に音を鳴らしますか?
trueなら鳴らします。
falseなら鳴らしません。 

というもので、要はスイッチみたいなものだな。

ちなみに設置するとこんな画面になる。
fafagaga.png




この文章構成はほとんど前回と一緒だぞ? わかってるなボブ。

しかし、一点違う点がある。今回はお前にもう少し話させてやろう。


ボブ
ホントですか!?どうも、FX歴3ヶ月めのボブです!いや~先生、メタトレーダーって便利ですね!
 僕はボリンジャーバンドが大好きなん


さて、ボブが私が言ってほしいことを言ってくれたところで今日はこの辺で講義終了だ。


FX初心者 ボブ




メタバイザー:また次回の講義で会おう。お疲れ様↑

ボブ:・・・・・・・

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



人気ブログランキングに参加している。
にほんブログ村 為替ブログ FX システムトレード派へ

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

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


私の長い話に最後まで付き合ってくれたことに感謝している。
メタバイザー
インディケーター   0

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


ボブとメタバイザーによる、メタトレーダーとはなんぞや?前編
ボブ
皆さんこんにちわ! 好きな時間足は30秒足。FX初心者のボブです。

皆さんはメタトレーダーってご存知ですか?? なんか最近流行っているらしいんですよね。

噂によると、いろいろ便利らしいんですが・・・

        まぁでも、いろいろ面倒くさそうだし、そんなのいっかwww ボリンジャー使える業者なら。

a.png





喝!!








ボブ:うわっ!!!

メタバイザー(以下メタ):この愚か者が!そんな思考だからいつまでたっても頭の上のがとれないのだ。

ボブ先生だっていつも顔でかいじゃないですか・・・・

メタあっ?

ボブい、いや、なんでもないです!  と、ところでメタトレーダーメタトレーダーって言われてますけど
    具体的に他のチャートと何が違うんですか??
(汗) 

メタ:ふむ。さすがはなんでマンだな。ボブ。頭に?をつけてるだけあって、意外と良い質問じゃないか。

ボブちょっ、やめてくださいよ先生。ボブですから。ボブ。

メタ:今日はそんななんでマンのために、メタトレーダーって何?具体的になんでマンである僕に対し
   てどんな利点があるの?っていうところをお教えしよう。

ボブ気持ちいいくらいの全無視ですね。



メタトレーダーの利点ってそもそも何?

さて、これから講義に入る。なんでマン君には後で質問の時間をとるから、黙って聞いてるように。

そもそもメタトレーダーとは何なのか。一体それは、初心者にとっても使って便利なのかということを説明していこう。メタトレーダーを使うことによって我々が得られる利点は以下のようなものがある。


・自分のオリジナルのインディケーターを作ることができる。
メタトレーダーには、自分でインディケーターを作る専用のプログラミング言語が搭載されており、使い方を覚えれば、自分ですきなようにインディケーターを作成することができます。

・移動平均線がクロスした時に音を鳴らすなどの設定ができる。
従来の価格がある地点に達したら音を鳴らすという機能はもう忘れてください。
インディケーターを作成することで自分の取引スタイルに合わせたタイミングで音を鳴らすことができるようになります。

・何千通りにも及ぶインディケーターを使うことができる。
その結果として、十人十色のインディケーターがWeb上に溢れています。貴方はその他人が開発したインディケーターを使うことができます。

・売買検証機能が搭載されている。
特にメタトレーダーでは以下の3点によりその他の売買検証ソフトよりも大幅に優れているということができます。
1.自分の作った取引手法を、全ての通貨ペア、全ての時間足において検証するこができる。
2.パラメーターの最適化を自動で行うことができる。
3.トレーディング関数というものが搭載されているので、自分でMACDや移動平均線等の計算式を記述する必要が無い。

・自分の作った取引手法で自動売買を行わせることができる。
売買検証機能によって良い成績をあげたものを、実際にメタトレーダーと提携している業者を使用することで自動売買をすることが可能です。

実際にプロのディーラーもメタトレーダーを使用して取引している人はたくさんいる。
株式会社ガンパウダーの代表取締役の鈴木隆一氏などもその一人だ。鈴木氏は、外為どっとコムのセミナー等をしているから、気になれば受講してみると言い。

無料だし。結構タメになることを聞けると思う。

まぁこのように、メタトレーダーは海外で発明されたチャートソフトなんだが、大変高性能で使い勝手が良いため、全世界中に急速に普及している、最先端のチャートソフトだ。

しかもこのチャートソフトは完全に無料で、誰でも使うことができる

初心者程、メタトレーダーを使った方がよい。なぜなら、相場に関する心構えができていないからだ。
よく相場に張り付いていれば勝てると勘違いしている馬鹿がいるが・・・・

相場に張り付いていたところで勝てるわけがない

上級者ならともかく、特に初心者は相場を見続ければ見続けるほど、相場の一時的な値動きに惑わされ、待ちきれなくなって適当にエントリーしてしまう。 

そうだよなボブ。 



ちなみに私もだ。

そうすると、ちょっとした値動きに惑わされ、我ながら素晴らしいと感心するほど、最悪のタイミングでエントリー、損切りすることになる。自分の逆で取引をしたら素晴らしい成績になると自慢したくなるだろう。

それなら自分で売買検証をして、優位性のある手法を発見し、その手法をメタトレーダーで自動で取引してもらった方がよいし、
優位性のある手法なしで相場に挑んでいるならそもそも相場を辞めた方がよい。

多分資金を溶かすぞ。   私は溶かした。


そこであなたはこう思うだろう。それでもプログラ・・・ん。もうこんな時間か。 ボブ、続きは次回だ。


ボブえっ!出番全然なかったケヘークシッ!

メタあ"~・・・ さて、この話は次回に続くが、何か質問や意見があれば、放課後に聞きに来てほしい。 
   それではまた会おう。お疲れ様。
ボブ・・・・・・・

人気ブログランキングに参加している。
にほんブログ村 為替ブログ FX システムトレード派へ

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

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


最後まで読んでくれたことに感謝している。
メタバイザー
はじめに   0

:FX(外国為替証拠金取引) - :株式・投資・マネー


メタトレーダー講義 第4回 演算子と式
こんにちわ。FXボーイです。

さて、今回の講義は演算子と式です。最初に翻訳した時はビッド演算子が全くわからなくて、そこの翻訳部分に2時間くらいかけた記憶があるのですが、ビッド演算子を使うことはありません。
皆さんもビッド演算子の項目を読む際に、

なんだこれ?プログラムって難いな。

みたいな感じの項目になると思うのですが、気になさらなくて結構です

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



この文章はCodersGuruさんのMQL4Lesson4の訳文です。(翻訳しての転載に本人の許可はとってあります)
    


                         メタトレーダー講座  
                         Coders'guru         
                          www.forex-tsd.com    
                               -4-
                          演算子&式

MQL4の第四回目の私の講義へようこそいらっしゃいました。
前回のデータタイプの講義では たくさんの新しい概念が出てきましたね。大変だったと思いますが理解できましたでしょうか。楽しんで頂けてましたらこれ以上の喜びはありません。

さて、今回は演算子と式です。

演算子と式ってなに?

あなたは演算子についてきっとよく知っていらっしゃいます。もし私が、+,-,*,÷が基本的な算術演算子ですと言えば、あなたはすぐに演算の意味を思い出すのではないでしょうか。

「演算はわかりました。式について説明してくれませんか?」という声が聞こえてきました。
識別子(覚えていますか?もし覚えていませんでしたら、講義2のシンタックスをご覧ください。)と演算子が一緒になると式を作り出します。

難しいですか?例を取り上げて説明しましょう。

x=(y*z)/w   (x=(y×z)÷w)
ここではx,y,z,wはすべて識別子です。
=,*,/は演算子
行全体が式です。

式同士が結合するとそれはステートメントを作り出します。
そしてステートメント同士が結合するとそれは関数を作り出し、関数同士が結合するとそれはプログラムをつくりだします。


講義の残りは、MQL4で使われている演算子の種類について話していきたいと思います。

さぁそれでは。基本的な算術演算子から始めましょう。


1‐算術演算子

MQL4には9つの算術演算子があります。
以下はそれぞれの用法についてのリストです。

演算子   名前       例         解説
+    加算演算子      A=B+C:   BにCをたして、その結果をAに当てがいます。
-    減算演算子      A=B-C;   BからCを引いて、その結果をAに当てがいます。    
+-   記号変更演算子    A=-A:    Aについている記号を逆にします。 
*    乗算演算子       A=B*C;   BとCをかけて、その結果をAに当てがいます。
/    除算演算子       A=B/C;   BをCでわってその結果をAに当てがいます。
%    剰余演算子      A=B%C;   AはB割るCの余り。(例10%2は0、10%3は1になる)
++   インクレメント演算   A++;     Aに1を足す(例 もしAが1ならそれは2になる。)
--   デクレメント演算    A--;     Aから1を引く。(例 もしAが2ならそれは1になる)

メモ: 剰余演算子は次のように働きます。
10%5=0
なぜなら10割る5は2で余りがないからです。余り0なので値は0になります。
10%8=2
これは1余り2ですね。8×1+2=10になることからも証明できます。値は2です。
100%15=10
100を15でわれば余りは10ですね。
これはどうでしょうか?6%8
答えは6になります。なぜなら8×0+6だからです。余りは6として考えられます。

メモ:インクレメント演算子とデクレメント演算子は、他の式と一緒にしてはいけません。
以下のような記述は適応されません。


A=(B++)*5

次のように書く事ならできます。

A++:
B=A*5

メモ:上の例はどうやって記述するのか。ちょっとやってみましょう。
int A=1; //Aは整数値をとり、1だと指定します。
int B; //Bは整数値をとると宣言しました
A++;  //Aに1を加えます。 現在A=2です。
B=A*5 //この意味はB=2*5です。


2‐代入演算子

いくつかの式の目的が結果を生み出している時、代入演算子はその結果を左の演算数に設定しています。


A=B*C;

ここではBとCを乗じ、その結果の割り当てがAになります。
ここでは(=)が代入演算子になります。
他の役割も開設すると以下のようになります。
A,B,C←演算数
* ←乗算演算子(先ほどの算術演算子の一つ)
=  ←代入演算子

MQL4では11の代入演算子があります。
これがその用法のリストになります。


演算子   名前        例       解説
=   代入演算子     A=B     BをAに割り当てる
+=  加算代入演算   A+=B;    A=A+Bと同じ。BをAに加算し、その結果をAに割り当てる
-=  減算代入演算   A-=B;    A=A-Bと同じ。BからAを減算し、その結果をAに割り当てる。
*=   乗算代入演算    A*=B;    A=A*Bと同じ。 AとBを乗じ、その結果をAに割り当てる。
/=   除算代入演算    A/=B;    A=A/Bと同じ。AをBで割り、その結果をAに割りあてる。
%=   剰余代入演算    A%=B;    A=A%Bと同じ。AをBで割った余りをAに割り当てる。
>>=  左シフト代入演算  A>>=B;   Aのビットを右に、Bで指定したビット分動かします。
<<=  右シフト代入演算  A<<=B;   Aのビットを左に、Bで指定したビット分動かします。
&=   AND代入演算    A&=B;    詳しくはビット演算子の説明項目をみてください。
|=   OR代入演算     A|=B;     詳しくはビット演算子の説明項目をみてください。
^=   XOR代入演算    A^=B;    詳しくはビット演算子の説明項目をみてください。




3-関係演算子


関係演算子は二つの値(演算数)を比べ、真か偽かの値をだす働きをします。
「ジョンはアルフレッドよりも高い?YesかNoか」といった質問ににています。
もしその結果が偽ならば0、真だったら0以外の数が生み出されます。



4==4;    //真
4<4;     //偽
4<=4;    //真


MQL4では、六つの関係演算子があります。
それぞれの使用法リストをみてみましょう。


演算子   名前     例       解説
==    等値演算子  A==B;    もしA=Bなら真で、そうでないなら偽
!=    非等値演算子 A!=B;    もしA=Bでないのなら真で、そうでないなら偽
>     右不等演算子 A>B;    もしAの値がBより大きければ真、そうでなければ偽
<     左不等演算子 A<B;    もしAの値がBより小さければ真、そうでなければ偽
<=  等価右不等演算子 A<=B;   もしAの値がBより小さいか、等しければ真、そうでなければ偽
>=  等価左不等演算子 A>=B;  もしAの値がBと大きいか、等しければ真、そうでなければ偽


4-論理演算子

論理演算子は一般的にブール代数から派生したものです。それは実際の概念の意味を考慮せずに、抽象的な概念で、真の値を機械的な方法で動かします。
実際の概念の意味というのは、ブール値での真の値は真か偽かのまさに二つしかもたないのです。
AQL4では、論理演算子をブール演算子と名付けています

MQL4は最も重要な三つの論理演算子が使われている。
これがそれぞれの用法のリストです


演算子   名前     例       解説
&&   条件AND演算子  A&&B;    両辺の値が1(真)の時のみ1(真)の値になり、それ以外
                         は全て0(偽)の値を返す。もし左の値が0(偽)ならその時
                         点で式の値は偽が決定するので右の値は考慮されない。

||    条件OR演算子   A||B:      少なくとも一方が1(真)の値なら式の値は真になる。それ
                          以外はすべて0(偽)の値がくる。左の値が0でないなら
                          その時点で右の値は考慮されない。       

!    論理否定演算子   !A;       真なら偽を、偽なら真の値を返す。


5-ビット演算子

ビット演算子は論理演算子と似ています。違うのは小さな尺度(2進法のデータ)でやっていることです。 
以下の演算子がMQL4では使えます。
(よほどの特殊なコードでなければMQL4で使う機会はなさそうです。)

演算子   名前      例    解説
&     AND演算子   A&B;   二つのビットをくらべて、もしその両方のビットが1なら1をそうで
                      ないなら0の値を返します。

|      OR演算子   A|B;    二つのビットを比べて、もしその二つのびっとが相補的なら1を
                      生み出し、そうでないなら0を返します。

^    排他的OR演算子  A^B:   二つのビットをくらべて、もしどちらか、もしくは片方が1なら1を
                       返します。そうでないなら0を返します。

~      補数演算子    ~A;    演算数のすべてのビットを反転させるために使います。

>>    右シフト演算子  A>>B;  右側の遠いビットを削除し、ビットを右に動かす。そして一番左
                       のビットの値に0を割り振る。それぞれの有効な右の動きひと
                       つにつき対象の整数を2で割っていく。

<<    左シフト      A<<B;  左側の遠いビットを削除し、ビットを左に動かす。そして一番右
                       のビットの値に0を割り振る。それぞれの有効な左の動きひと
                       つにつき対象の整数1に2を掛けていく。

メモ:ビット演算子で結びついた演算数はどちらも(AもBも)整数でなければならない。


6‐その他の演算子

MQL4では、今紹介してきたどのカテゴリーにも入らないオペレーターがいくつかある.

   1-配列添字演算子( [] )
   2-関数呼び出し演算子( () )
   3-関数引数分離演算子( , )

   配列と関数については次の講義でとりあげますね。ですので、この3つの演算子はただ"その他   の演算子"とここでは記憶しておいてください。


演算子の優先順位

もしあなたが合成した式の中の演算子が自分の思ったように機能するような命令を明確に指示していないなら、その命令はその式の用途の中で優先順位が高く割り当てた演算子によって決定されます。つまり、優先順位の高い演算子は最初に処理されます。たとえば、除算演算子は加算演算子よりも高い優先順位にありますので、下の二つの例は同じように働きます。


x+y/100
x+(y/100) //上の式をより明確にしたもの。


結合した式を書くとき、かっこ()を使ってどの演算子を最初に処理するか明確に指示さなければなりません。その試みはあなたのコードを読むのを、また保持するのを簡単にしてくれるでしょう。

以下の表は、MQL4で優先順位が割り当てられている演算子を示したものです。その表の中に入っている演算子は、先行命令リストです。演算子の優先順位が高いものを上から順にならべてあります。
優先順位の高い演算子はそれと比べて優先順位の低い演算子よりも先に処理されます。同じグループの演算子は同じ優先順位です。同じ優先順位の演算子が同じ式で表れたら、どちらが先に処理されるかは、ルールにのっとって処理されます。代入演算子以外のすべての2進法演算子は左から右に処理されます。代入演算子は右から左に処理されます。


() 関数呼び出し    左から右
[] 配列要素区間

! 否定           左から右
~  2進法の排他
+- 記号変換演算子

* 乗算         左から右
/ 除算
% 剰余

+ 加算          左から右
- 減算

<< 左シフト       左から右    
>> 右シフト

<  左不当       左から右
<= 等価左不等
>  右不等
>= 等価右不等

==  等価        左から右
!=  非等価

& 2進法AND演算子    左から右
  
^ 2進法排他的OR演算子 左から右

&& 論理AND演算子    左から右

||  論理OR演算子     左から右

=  代入           右から左
+= 代入加算
-= 代入減算
*= 代入乗算
/= 代入除算
%= 代入余剰
>>= 代入右シフト
<<= 代入左シフト 
&= 代入ビットAND
|= 代入ビットOR
^= 代入排他的OR

,  コンマ              左から右

楽しんでいただけましたでしょうか。

それでは。
Coders'Guru





FXボーイです。難しいですね!早くインディケーターの解説にいかないかなとか思いながら訳してます。今回ビットのことがよくわからずにopとかあまりわからないまま訳している形になってしまいました。Coders'Guruさんの講義でそのうち取り上げられるのでしょうか。。
opわかる方いらっしゃいましたら教えていただけると幸いです。

追記
opはおそらくオペランドであるということを指摘してくださった読者の方がいらっしゃいました。
以下引用します。

、「op1」という単語はよくわからないのですが、おそらくここでは「ビット列を1つ右にずらすと、左オペランドを2で割った数になる」という意味のことが書かれていると思います。(op1=左オペランドのこと?)
そして、ビット列を右にずらすと、左端のビットに補完が必要になるので、「一番右のビットに0を割り振る」は「一番左」だと思うのですがいかがでしょうか。
参考URL
http://www.hellohiro.com/basic/shift.htmです。

なるほど!おそらくそのとうりだとおもいます。
ご指摘ありがとうございました。参考URLも大変わかりやすいですね。

ビッド演算子はプログラミング経験のある方でないと理解しづらいと思うのですが、メタトレーダーではビッド演算子を使うことはほとんどありません。ですのでもしよくわからないという方がいらっしゃいましたら心配なさらないでください。






ともかくお疲れ様でした。最後までお読み頂きありがとうございました。



メタバイザーによる補足説明
今回は基本的なところだったので、特に解説する必要はないようだ。

ちなみにEAやインディケーターを作る時に、演算子の優先順位を全く気にしないで作っているが、問題になったことが無い。
演算子の優先順位に関しても、聞き流す程度で大丈夫だぞ。

どうせ使わない知識なんて記憶できないからな。


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

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

人気ブログランキングに参加している。
にほんブログ村 為替ブログ FX システムトレード派へ

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

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


最後まで読んでくれたことに感謝している。
メタバイザー
メタトレーダー講義   0

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


| HOME |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。