基礎から学ぶシステムトレード
シストレブログ人気ランキング  

シストレ徹底攻略シストレマスターへの道ワールド・トレーディング・エッジ基礎から学ぶシステムトレードシストレニュースシストレツールシストレナビTOPへ

 

2010年02月16日(火)

return文を書く位置について [プログラミング]



またまたプログラミングの話に戻ります。

CやMQL4では、基本的にプログラムは上から下へ順に実行されます。

少しでもプログラミングをかじったことのある人にとっては当たり前かもしれませんが、初心者にとっては当たり前じゃないかもしれません。

システムトレードのプログラムを人が都合よく作ろうと思えば、こんな書き方になるでしょうか?

あるテクニカル指標がある条件になれば買い
あるテクニカル指標がある条件になれば売り
あるテクニカル指標がある条件になれば手仕舞い


売買のルールがお互いに独立していれば、それぞれのルールに順序はありません。

このように意味的な順序はないとしても、プログラムはどうしても上から順に実行されます。

プログラムの実行順に関して次のプログラムを見てください。
int start()
{
double buf[] = {1,2,3,4,5};

Print(buf[1]);
Print(buf[2]);
return(0);
Print(buf[3]);
Print(buf[4]);

return(0);
}

このプログラムでは、return(0)が最後だけでなく、途中にも入っています。

return文は関数の最後に書く「おまじない」と思っている人もいるかもしれませんが、これは、その時点で関数を終了することを意味します。

ですから、プログラムの途中でも return文があれば、そこでその関数は終了し、その後の文は実行されません。

この例では、buf[0]とbuf[1]だけを表示して終わりということになります。

このような簡単な例だと、さすがにわかるでしょうが、長いプログラムになると、意外に気がつかないこともあります。

特に条件分岐の結果によってreturnする場合に見逃しやすくなります。

プログラミングの流儀の一つ(というのは大げさかもしれませんが)として、return文を関数の最後以外に書かないというのがあります。

私の書いたメタトレーダーの本では、途中でreturn文がばんばん出てくるのですが、実は個人的にはそういう書き方はあまり好きではありません。

プログラムが複雑になればなるほど、それぞれの関数を簡潔に書く必要があるので、return文に関するルールも、どこにあるかわからないというのではなく、最後にしかないという方が、間違いが少なくてすみます。

ただ、そうすると、{}のブロックで囲んだ入れ子が多くなって、逆に見にくくなるということもあります。

結局は、どちらがいいということではなく、自分に合った書き方を身につけることが重要なんだと思います。


>>“基礎から学ぶシステムトレード”全記事バックナンバーはこちらから




Posted at 15時39分


ページのトップへ ページのトップへ

Sponsor AD

2010/2

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28            

プロフィール

豊嶋久道

2003年よりFX取引を始め、システムトレードの道へ。最近ではFXオプション取引も含めたトレーディングシステムの研究を行っている。システムトレードを基礎から正しく理解するための情報を発信する予定。

PHOTO

ランダムウォークとランダムトレード(2)

ランダムウォークとランダムトレード(2)

カテゴリーリスト

最近の記事

検索


当サイトコメントについて

当コメントは情報提供のみを目的として作成されたものであり、投資に関してはご自身でご判断くださいますようお願い致します。また、当資料は著作物であり著作権法により保護されております。無断で全文または一部を転載することはできません。

RSS1.0

[Login]


powered by a-blog
Copyright (C) 2008 PhiConcept,Inc. All rights reserved.