« 移動平均線を作る(その1) | トップページ | バーチャル取引必勝法 »

2006年2月12日 (日)

移動平均線を作る(その2)

移動平均線を作る(その1)の続きです。
前回ウィザードで作成したスケルトンコードの説明をします。
一体どんなコードができたのでしょう?

大まかに6ブロックに分かれています。

  1. 定数値の宣言
  2. 入力引数の宣言
  3. グローバル変数の宣言
  4. init関数
  5. deinit関数
  6. start関数

では、順番に見ていきましょう。

  1. 定数値の宣言

    #property 定数名 値


    となっています。Cでいうところのdefine文ですね。自動で作成されたものは特別な意味を持ちますので消さないようにしてください。自分で定義することもできます。
    ・「copyright」は作成者(会社)の名前です。
    ・「link」は作成者(会社)のウェブサイトのURLです。
    copyrightと、linkはプログラムで使われるわけではなくコードに著作権を持たすためにつけるのだと思います。個人用の場合は気にしなくてよいと思います。
    ・「indicator_chart_window」は、ウィザードの「Indicator in seperate window」のチェックをはずしたものに対応しています。チャートとインジケータを重ねて表示します。逆は、「indicator_separate_window」です。
    ・「indicator_buffers」は、簡単にいうとインジケータの線の数です。たとえば移動平均線は1本の線で表しますので、値は1です。ウィザードの「Indexes」で登録した数に一致します。
    ・「indicator_color1」は、インジケータの色です。ウィザードでは赤を選択しましたよね。だから値はredです。
  2. 入力引数の宣言

    extern 型 変数名


    となっているのが入力引数です。Int型のMASPeriodという変数名で値のデフォルトは13を意味しています。ウィザード入力したものと一致しています。
    ちなみにこの値は、インジケータをチャートに貼り付けるときに、設定ダイアログで値を変更することができます。
  3. グローバル変数の宣言

    型 変数名


    となっているのがグローバル変数です。ここで定義した変数はスクリプト内の全てに適用されます。自分で好きなように追加することができます。
    なお、ExtMapBuffer1[]はインジケータを示す特別なバッファです。double型の配列で、配列の要素は宣言段階では不定にしています。どのように使われるかというと、移動平均線はLineですが、Lineを構成する一つ一つの要素は点です。その点の一つが配列の1個に対応します。たとえば、100、110、120の線を描きたい場合は、ExtMapBuffer1が[0]=100、[1]=110、[2]=120となります。
  4. init関数

    int init()


    この関数はインジケータがチャート上に表示される最初の1度だけ起動します。ですので、変数の初期化などを記述します。クラスでいえばコンストラクタです。
    「SetIndexStyle(0,DRAW_LINE);」は、スタイルの設定関数です。0のインデックスを持つインジケータを線で描く(DRAW_LINE)という決め事を設定しています。
    「SetIndexBuffer(0,ExtMapBuffer1);」は、バッファの設定関数です。0のインデックスを持つインジケータは、ExtMapBuffer1という変数で表現されるという決め事を設定しています。
  5. deinit関数

    int deinit()


    この関数はインジケータがチャート上から削除される最後の1度だけ起動します。クラスでいうところのデストラクタ処理に対応します。メモリの開放などを記述すればよいでしょう。
    実際、一番使用頻度は少ないと思いますし、別に記述することがなければ何も書かなくても良いです。
  6. start関数

    int start()


    この関数はレートが変わるたびに実行されます。インジケータの計算処理、表示処理はここで記述されます。いわゆるメイン関数ですね。
    デフォルトで、「int    counted_bars=IndicatorCounted();」というのがあると思います。
    この関数は、「インジケータを最後に記述した後から、変化していないバーの数」をcounted_barsに取得しています。一番最初に呼ばれるときは、0になると思います。それ以降は基本的にふえていきます。
    既にチャート上に記述されているインジケータを再度計算するのはもったいないので、この値を見て必要最小限の処理をしなさい。ということだと思うのですが、おそらくこれを使えという意味でおいてあるのでしょうね。使わなくてもいいです(笑)。

さて、基本的な知識が身につきましたね。次はこのスケルトンコードに実際のプログラムを記述していきましょう。

まずはFXの知識を深めるためにも、バーチャルFXや、外為トレード選手権「FX1」で取引の練習をしましょう!あわよくばすごい商品をゲットできちゃいます。

|

« 移動平均線を作る(その1) | トップページ | バーチャル取引必勝法 »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 移動平均線を作る(その1) | トップページ | バーチャル取引必勝法 »