mt4 (MetaTrader4)使い倒シストレ

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


にほんブログ村 為替ブログ FX システムトレード派へ
--/--/--(--) --:--:-- | スポンサー広告 | Trackback(-) | Comment(-)
#defineを使って健康的に
何かと便利な「#define」ですが、皆さん使っておられるでしょうか?

「#define」を使う利点としては
①値自体に意味を持たせることができ、ソースファイルの可読性がUPする
②設定値を一発で変更することができる

などが挙げられると思います。

①を体験してみましょう。
以下のソースを見てください。

int start()
{
if (DayOfWeek() == 3) {
Print("DayOfWeek function return 3");
}
return (0);
}

このソースファイルを見た瞬間に、何曜日を指しているかお分かりでしょうか?
少し考えたら、
「0が日曜日のことだから、3は水曜日のことだ」
ということは分かると思いますが、
瞬間的に理解するのは「数値と曜日の関係を覚える」以外にありません。

しかし、「#define」を用いて以下のようにソースを書くとどうでしょう。

#define SUNDAY 0 //Sunday
#define MONDAY 1 //Monday
#define TUESDAY 2 //Tuesday
#define WEDNESDAY 3 //Wednesday
#define THURSDAY 4 //Thursday
#define FRIDAY 5 //Friday
#define SATURDAY 6 //Saturday
int start()
{
if (DayOfWeek() == WEDNESDAY) {
Print("DayOfWeek function return 3");
}
return (0);
}

今度はソースコードを見ただけでWEDNESDAY(水曜日)だと理解できますね。
このように「#define」を使えば、値自身に意味を持たせることができるため、
分かりやすいソースコードを書くことができます。


続いて②です。

#property copyright "googolyenfx"
#property link "http://googolyenfx.blog18.fc2.com/"

int init()
{
Comment("Created by googolyenfx http://googolyenfx.blog18.fc2.com/");
return (0);
}

インジケータの表示部に署名を表記したい場合には、上記のようなプログラムになると思います。

しかし突然ブログのURLが変更になった場合のことを考えてみてください。
ソースファイル中の全てのURLを書き変えなくてはなりません。
今はURLが2か所しか書かれていないため、修正は簡単なのですが、
あっちにもこっちにもURLを書いていたらどうなるでしょうか?
(そんなに署名したがる人もいないと思いますが、例え話ですので(笑)。)

そこであらかじめ「#define」を使っておくと、このような状況でもすんなりとURL変更できます。

#define LINK "http://googolyenfx.blog18.fc2.com/"
#property copyright "googolyenfx"
#property link LINK

int init()
{
Comment("Created by googolyenfx " + LINK);
return (0);
}

これでソースファイル中に書かれているURLは1か所になりました。
「#define」で定義されているURLだけを変更すれば、一発で他の場所のURLも変更されるというわけです。



この他にも「#define」を使う場面は多種多様です。


健康的なソースファイル作りにお役立てください。


にほんブログ村 為替ブログ FX システムトレード派へ
Comment
≪この記事へのコメント≫
勉強になります><
2008/12/29(月) 01:14:42 | URL | クリスマスは一人 #-[ 編集]
>クリスマスは一人さん

コメントありがとうございました!
ぼちぼちプログラム的な事も書いていこうかと思っています。
2009/01/12(月) 21:08:15 | URL | googolyen #F7lUkdrY[ 編集]
コメントを投稿する
URL:
Comment:
Pass:
Secret: 管理者にだけ表示を許可する
 
Trackback
この記事のトラックバックURL
≪この記事へのトラックバック≫
Designed by aykm.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。