こんばんは、たかはしです。


ある読者さんからインジケータが重たいというお悩みメールをコード付きで頂きました。


と言うことで、今回はプログラムの構造についてま順序良くまとめていこうと思います。


ちょっと長くなるので分割して投稿して行きます。


パソコンのスペック

スクリーンショット 2016-07-30 23.21.56
あず初めに、パソコンを買うときに要チェックポイントである、CPUとかメモリとかHDDとかの重要性についてです。


これらについて、僕なりに超簡単にまとめると上記画像のイメージになりますw


これらのスペックは物理的な最大値でありますので、それ以上の仕事を与えるとフリーズしますw


なので、パソコンを買う時とかは、パソコンでやりたい事に応じたパソコンを買うのが良いですね(´∀`*)


僕達トレーダーにとって、HDDとかはあまりいらないけど、CPUとメモリは妥協してはダメです。


特に開発者にとっては、CPUとメモリってのは作業スピードに直結するので、重要なポイントとなります。


わからない人は、パソコンを買うときに詳しい人についてきてもらうのが一番よいです。


店員の言うことを鵜呑みにして買うのは論外ですよ。


メモリとCPU

b2eb9d3188ba7be3900f5ea1b70f4125_s


要は作業場所ですので、多ければ多い程作業効率が良いのです。


Excelとかの表計算ソフトをイメージして頂ければわかりやすいと思うんですが、1つのセルに計算結果や計算元のなるデータがそれぞれのセルに入っていて、A1とかB3とかで特定できますよね?


セルがメモリみたいなもので、多ければ多いほど計算しやすいのです。


メモリはOSとか他のアプリなどでも常に使用しているので、今使っているソフトに充てれるメモリにも上限があります。


なので、Excelの表が小さいと計算しにくいし、次の計算をするために、不要となった計算結果を即座に消していかないと計算処理が追いつかないのです。


でも、物理メモリの容量が大きいと余裕があるので、平行で色々計算が出来ちゃう訳なんです。


CPUについては、最近コア7とかありますが、よく女の人がマルチタスク型と言われるようなあのイメージです。


料理をしながら掃除もして、選択も並行でやりながらきっちりテレビも見てスマホも触るみたいなw


コアは脳みそですので、別の事を考えれる脳みそが多ければ多いほど良く、更にクロック数が高ければ高いほど頭の回転が早いのです。


例えば、1個の計算に70分掛かっていたのが、コア7だと単純に7個の脳みそで並行処理させて10分とかで終わらすイメージです。


コア数が多ければ、マルチタスクで仕事量も分散できるし計算を並行稼動させやすくなるので、メモリの量とかにもよりますが、理屈的にはに早くなるのです。


もちろんメモリの大きさが大事で良い脳みそが複数あっても、物理的な作業スペースが無いと手待ちになっちゃうので、実装メモリは多ければ多いほどよいです。


メモリの使用

インジケーターとかEAにってのは、要はなんらかの数値を常に計算してそれを分かりやすく視覚化したものです。


常に計算しまくっていますので、メモリを消費します。


特に、チャートが表示されるまでの間に過去データに対して計算をしていますので、MT4起動時や、パラメータの変更、見ている時間足を変更した場合、新しい計算結果を持ってチャートに表示させますので、初期描画時に時間がかかってしまうのですね。


計算処理に時間が掛かるプログラムは重くなり使いづらくなったりますので、プログラムは軽ければ軽いほうが良いのです。


ですが、それなりに色々な基準で計算しまくっているとそれなりに重たくなってしまうのですが、コレは仕様みたいなものである程度は仕方無いのかなと思います。


では軽量化することは出来ないのか?


ロジック、つまり考え方を整理するだけで一応軽量化は可能です。


例えば「1+1=2」のような左辺と右辺を加算する式があったとして、コレを「(1*10)+(4-12)=2」のような複雑なものまで、たかが加算結果2を求めるだけなのに、いろいろな方法が無限にあります。


コンピュータの内部では、掛け算とか割り算は、足し算とか引き算をその回数分繰り返しているだけなのでので、計算に時間がかかるんです。


なので「(1*10)+(4-12)=2」は、誰が見ても効率が悪いってことになります。


なにより見ていてややこしいですw


ややこしくしてしまうと、不要なバグを生む原因にもなりますしメモリ消費量も多くなりフリーズしやすくなったり、最悪PCT再起動とかにもなる場合がありますので、メリットは何一つありません。


いかに効率よく簡素化できるかが大事になってくるんです。


設計というと大げさですが、プログラムの基本的な構造は出来るだけシンプルにかつ最適にがベストです!

この記事が気に入ったら
いいね ! しよう

Twitter で