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

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

 

2010年05月31日(月)

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



ランダムウォークでもランダムトレードでも、「ランダム」という言葉が出てきます。

「ランダム」って普通の会話でも使う言葉なので、何となく意味はわかると思います。

コインなら表か、裏か、サイコロなら1から6のどれかが適当に(正確には同じ確率ですが)出るという感じです。

例えば、サイコロの場合、出た目を順に並べると、

6,2,3,1,5,4,3,6,1,1,・・・・

のような数の並びとして表されます。

この数の並びの特徴は、次に何が出るかは予測できないということです。つまり、この数列に周期性や前後の関連性など規則はないのです。

また規則がないということは、過去に出た目に影響されないということでもあるので、いくら1の目が続いたからといって、次に1が出にくくなるわけではありません。毎回、同じ確率で1から6のどれかが出るのです。

こういう数列のことを「乱数列」と呼びます。

ところで、コンピュータのような決まったことをさせる機械に全く規則のない数列が作れるのでしょうか?

厳密には「No」です。コンピュータが作り出す乱数列には、必ず周期があります。ただ、その周期を非常に長くすれば、実用上は規則のない数列とみなすことができます。

なので、コンピュータで作る乱数列のことを「擬似乱数列」と呼んだりもします。

乱数列を生成するアルゴリズムには色々なものがあります。そのあたりの詳しいことについてはこのサイトを参考にしてください。

CやMQL4のようなプログラミング言語では、乱数を生成する関数が用意されているので、それを使うだけでOKです。

C言語では、rand()という関数、MQL4では、MathRand()という関数を呼び出すだけです。

例えば、C言語では、
#include < stdio.h >
#include < stdlib.h >

int main()
{
int i;
for(i=0; i<10; i++){
printf("%d¥n", rand());
}

system("pause");
return 0;
}

のようなプログラムを書くと、

画像(450x144)・拡大画像(641x206)

のような結果が出ます。rand()関数を繰り返し実行しているだけなのですが、毎回違う数値が現れています。

同じrand()という関数を実行しているのに、違う数が現れるというのは変な感じがしますが、プログラムの内部でrand()を実行した回数を記憶しているので、次にrand()関数を実行すると、乱数列の中の次の乱数を返すと考えるといいでしょう。

ただ、このプログラムを何度も実行させてみると気がつくと思いますが、毎回同じ結果になります。

実はこのままでは、毎回同じ結果なので乱数として使えません。

毎回違う乱数列を発生させるにはどうすればよいかということですが、乱数を生成するアルゴリズムの中のパラメータを変えてやればよいのです。

ここで、具体的にアルゴリズムを知らなくても構いません。単にそのパラメータを変える関数が用意されているのです。

C言語では、srand()、MQL4では、MathSrand()という関数です。この関数の引数を変えることで、違う系列の乱数列を生成させることができます。

具体的には次のように使います。

#include < stdio.h >
#include < stdlib.h >
#include < time.h >

int main()
{
srand(time(NULL));

int i;
for(i=0; i<10; i++){
printf("%d¥n", rand());
}

system("pause");
return 0;
}

main()関数の最初に srand(time(NULL)); と書くだけです。

ここでsrand()の引数にtime(NULL)とあるのは、現在時刻によって毎回違う値が代入されるようにするためです。

但し、srand()は、プログラムの最初に一度だけ実行させればよいということに注意してください。毎回のrand()の直前にsrand()を実行してしまうと、乱数列ではなく、違う系列の乱数列の最初の乱数が順次現れるだけになってしまいます。


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




Posted at 17時28分


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

Sponsor AD

2010/5

            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 29
30 31          

プロフィール

豊嶋久道

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

PHOTO

Excelでヒストグラムの作成

Excelでヒストグラムの作成

カテゴリーリスト

最近の記事

検索


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

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

RSS1.0

[Login]


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