MQL4はプログラミング言語Cとよく似ている言語です。
(自由度としてはあまり高くありませんが…(涙)
しかしながら、MQL4ではCには無い特別な機能(?)があります。
以下のコードをみてください。
#define π 3.14159286
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
double ラジアン = ラジアン変換(180.0);
double 度 = 度変換(3.14159286);
Comment(ラジアン, ", ", 度);
}
double ラジアン変換(double 度)
{
return (2.0*度*π/180.0);
}
double 度変換(double ラジアン)
{
return ((180.0*ラジアン)/(2.0*π));
}
普段MQL4を使っておられる方は、少し違和感を覚えるコードですね。
(MetaEditor上で上記コードをペーストしても文字化けを起こす場合は、
フォントをTerminalに変更してください。)
そう!
変数名や関数名に「日本語」を使っているのです。
そして上記のコードは、何事もなかったかのようにコンパイルできます。
もちろん「日本語」だけではなく、ロシア語、中国語、アラビア語(できるのだろうか)、etc...
枚挙に暇なく、様々な国の言葉でプログラミングができます。
なんという国際化言語。
この辺りに力を入れたMQL4の開発者は、
より多くの人にこの言語を使ってもらいたかったのではないでしょうか!
(言語としての自由度を抑えてでも…うぅ…(涙))
ちなみにオブジェクト指向プログラミング言語Javaでも国際化に対応してます。
って全然関係ないですね(笑)
日本語を使ったプログラミングの利点としては
・変数や関数名が非常に分かりやすくなる(だって日本語ですもの)。
・変数や関数名の命名に悩まない(だって日本語…(略))。
・いつもと違う雰囲気を楽しめる(だtt…(略))
逆に欠点としては
・プログラミング中に「半角/全角」キーを何度も押さなければならない。
・日本語1文字消すのに、「BackSpace」を2回押さなければならない。
・文字の消し忘れによって構文エラーが混入する可能性がある。
・表示フォントに依存する。
こんなところでしょうか。
上記の利点・欠点を踏まえて
エンジョイ MQL4プログラミング!!


スポンサーサイト
こんにちわっ!
ご無沙汰しております。
ブログの方を大分放置していました。
さてさて唐突ではございますが、
マニアなみなさんはMQL5(ファイブ)の方も少しずつ手を出し始めたりしてますか?
例によってそのリファレンスは英語でした。
なので、それをちょこちょこと日本語に翻訳していきました。
まだ全ページを翻訳したわけではありませんが、
ご利用くだされ。
MQL5 日本語リファレンス
翻訳ミスなどがあれば
こっそりかつ大胆に教えて頂けますと助かります。
宜しくお願いします!
追記 (2010.10.28.2:20)
METAQUOTES社のアジア分社(?)から、上記のMQL5 日本語リファレンスのサイトを
閉鎖するようにとの連絡がありました。
何に問題があったのかはわかりませんが、
詳細が分かり、問題が解決されるまでは
MQL5 日本語リファレンスのサイトを一時閉鎖します。
ご無沙汰しております。
ブログの方を大分放置していました。
さてさて唐突ではございますが、
マニアなみなさんはMQL5(ファイブ)の方も少しずつ手を出し始めたりしてますか?
例によってそのリファレンスは英語でした。
なので、それをちょこちょこと日本語に翻訳していきました。
まだ全ページを翻訳したわけではありませんが、
ご利用くだされ。
MQL5 日本語リファレンス
翻訳ミスなどがあれば
こっそりかつ大胆に教えて頂けますと助かります。
宜しくお願いします!
追記 (2010.10.28.2:20)
METAQUOTES社のアジア分社(?)から、上記のMQL5 日本語リファレンスのサイトを
閉鎖するようにとの連絡がありました。
何に問題があったのかはわかりませんが、
詳細が分かり、問題が解決されるまでは
MQL5 日本語リファレンスのサイトを一時閉鎖します。


いつも大変お世話になっております。
Googolyen FX Factoryのホームページを移転しましたので
ご連絡致します。
新しいアドレスは
http://googolyenfx.com/
です。
こちら
↓
(新)Googolyen FX Factory
ブックマーク等にご登録していらっしゃる場合は、
お手数をお掛け致しますが、変更を宜しくお願い申し上げます。
HPの内容等は
基本的に前と変わっていませんが、
ご依頼頂く際に、
「納期はどのぐらいになるのか?」
と聞かれることが多かったので、
納期目安の項目を追加しました。
あくまでも目安ですので、それよりも早い時もありますし
遅い時もありますが、ご参考にして下さいませ。
今後とも何卒宜しくお願い申し上げます。
Googolyen FX Factoryのホームページを移転しましたので
ご連絡致します。
新しいアドレスは
http://googolyenfx.com/
です。
こちら
↓
(新)Googolyen FX Factory
ブックマーク等にご登録していらっしゃる場合は、
お手数をお掛け致しますが、変更を宜しくお願い申し上げます。
HPの内容等は
基本的に前と変わっていませんが、
ご依頼頂く際に、
「納期はどのぐらいになるのか?」
と聞かれることが多かったので、
納期目安の項目を追加しました。
あくまでも目安ですので、それよりも早い時もありますし
遅い時もありますが、ご参考にして下さいませ。
今後とも何卒宜しくお願い申し上げます。


MQL4では『static』を使用することができます。
このstatic、実はとても便利なものなんです
(便利、便利じゃないの基準は色々あると思いますが、
私は便利と思ってます(笑))。
まずはstaticの使い方について少々。
以下のコードを見てください。
このコードを実行すると、
・counterの値はずっと1のまま
・counter_sの値は1ずつ増加する
となります。
前回この関数を呼び出した時のcount値を覚えておいて、その値に1を足している訳です。
static変数を使えば、その関数を抜けた後も、値を保持することができるのです。
値を保持する為に『グローバル変数を使っていた場面』に使えるんです。
よく見かける場面を見てみましょう。
新足が登場するとtrueを返す関数です。
この関数内で使われているAllBars変数の特徴は以下です。
・AllBars変数はグローバル領域で宣言された変数
・AllBars変数はプログラム全体の中でisNewBar()関数内でしか使われない
・AllBarsは値を保持する為に使われている
ピコーン!
staticが使えます。
そしてstaticを使えば、グローバル変数の数を1個減らすことができますね。
isNewBar()関数をstaticを使って書き換えたコードが以下になります。
たったこれだけですが、グローバル変数を減らすことに成功しました。
これで前回記事にした、グローバル変数乱用の弊害から一つ逃れることができますね。
健康的なソースファイル作りにお役立てください。
このstatic、実はとても便利なものなんです
(便利、便利じゃないの基準は色々あると思いますが、
私は便利と思ってます(笑))。
まずはstaticの使い方について少々。
以下のコードを見てください。
int start()
{
int counter, counter_s;
counter = RunningTimes();
counter_s = RunningTimes_s();
Comment(counter, ", ", counter_s);
}
int RunningTimes()
{
int count = 0;
count++;
return (count);
}
int RunningTimes_s()
{
static int count = 0;
count++;
return (count);
}
このコードを実行すると、
・counterの値はずっと1のまま
・counter_sの値は1ずつ増加する
となります。
前回この関数を呼び出した時のcount値を覚えておいて、その値に1を足している訳です。
static変数を使えば、その関数を抜けた後も、値を保持することができるのです。
値を保持する為に『グローバル変数を使っていた場面』に使えるんです。
よく見かける場面を見てみましょう。
int AllBars;
bool isNewBar()
{
bool res=false;
if (AllBars!=Bars)
{
AllBars=Bars;
res=true;
}
return(res);
}
新足が登場するとtrueを返す関数です。
この関数内で使われているAllBars変数の特徴は以下です。
・AllBars変数はグローバル領域で宣言された変数
・AllBars変数はプログラム全体の中でisNewBar()関数内でしか使われない
・AllBarsは値を保持する為に使われている
ピコーン!
staticが使えます。
そしてstaticを使えば、グローバル変数の数を1個減らすことができますね。
isNewBar()関数をstaticを使って書き換えたコードが以下になります。
bool isNewBar()
{
static int allBars = 0;
bool res=false;
if (allBars!=Bars)
{
allBars=Bars;
res=true;
}
return(res);
}
たったこれだけですが、グローバル変数を減らすことに成功しました。
これで前回記事にした、グローバル変数乱用の弊害から一つ逃れることができますね。
健康的なソースファイル作りにお役立てください。

