• ATSとは?
  • ATSの使い方
  • CTL学習コンテンツ
  • CTLマニュアル販売
  • ストラテジー販売
  • サポート

CTL学習コンテンツ

CTL学習コンテンツ

CTLの文法

これまで、CTLのサンプルプログラムを見てきましたが、
CTLを書く上での約束ごとを覚えてしまいましょう。
文章を書く上でお約束事といえば文法です。チョット、難しそうですか?
しかし、日本語でも文章の最後に丸をつけたり文の途中で点をつけるのが自然に出来るように
そう難しい物ではありません。

まず、一つ目の約束は、文章の終わりには、必ずセミコロン「;」をつけることです。

プログラムは、いくつかの箇条書きの文から成り立っている場合がほとんどです。
各文章の行末には、必ずセミコロン「 ; 」をつけましょう。

行末にはセミコロン「;」をいつもつけよう!

たとえば、1+1であれば、以下のように記述します。

y: = 1 + 1 ;
1+1の計算結果を、Yに代入しています。
Yは、変数と呼ばれていて、計算結果を入れておく箱のようなものです。

すんなりとy=1+1ではないことに気が付かれたでしょうか?

変数を定義するときにはコロンが必要になってきます。
これが第二のお約束事です。

変数を定義するときにはコロン「:」をいつもつけよう!

もう少し大規模なプログラムになれば、このようにセミコロンが現れてきます。
プログラムの意味は、分からなくてもいいですから、行末のセミコロンの位置を覚えてください。
いろいろな場所にセミコロン「;」がありますね。
そしてコロン「:」もちらほら表れています。使い分けに注意してください。

indicator MA510;
draw ma5("MA"), ma10("MA2");
begin
ma5 := ema(close, 5);
ma10 := ema(close, 10);
end.

{ info@saza-investment.com }

括弧の使い方

続いて、括弧の使い方の文法を覚えましょう。
CTLで使うことのできる括弧は、( ) [ ] { } の三種類です。

過去データの参照用のカッコ [ ]

[ ] は、過去のバーの値を呼ぶときに使うものです。

y: = Close[i-1] + Close[i-2];
y: = High[i-2] + 2 * Low[i-2];
y: = ( Volume[i-20] + Volume[i-10] ) / 2;

数学的な演算の優先順位を決めるカッコ ( )

( ) は、数学的な計算式上での区切りや計算の優先順位を示す括弧です。
括弧を使わないと、数式がおかしくなる可能性があります。
例えば、下の計算式の答えはいくつになるでしょうか?
この数式の答えは、実は、14になります。

x: = ( 2 + 4 * 3 );

その理由は、かけ算「*」は、足し算「+」より優先して、
実行されるという暗黙のルールがコンピューターにあるからです。
最初に 4*3 = 12 が計算され、その後、2+12 = 14 が実行されるわけです。

x: = ( (2 + 4) * 3 );

もし、最初に 2+4 を計算してほしいのであれば、
以上のように記述することで、答え 18 を得ます。

このように演算子 +,-,*,/ には、優先順位がありますので、
( ) をたくさん使って計算式が自分の思った通りに実行されるように、
コンピューターを導いてやる必要があるわけです。

ぜひ、( ) はたくさん使ってください。

コメント用のカッコ { }

{ } でくくられた部分を、CTLは無視します。

括弧 { } は、半角文字で入れてください。

※ 実際には、日本語は入力できませんので、ご注意ください。

y1: = ( 1 + 1 ) / 2; { ここは無視されます}

{ y2: = Close[1] + Close[2];  ここも実はコメントです }

y3: = High[2] + 2 * Low[100];

{ y4: = ( Volume[20] + Volume[10] ) / 2;
y5: = High[2] + 2 * Low[100]; ここまでずっとコメントです}

このプログラムで、実行されるのは、実は Y1, Y3 の行のみです。

その他の { } でくくられた部分は、プログラム中に書かれた説明文として、CTLは無視してくれます。
プログラム中に、論理を説明したコメントを書き込むことで、後でプログラムを見返したときに、
どういう論理のプログラムだったのか、すぐに思い出すことができるため、
コメントは積極的に書いていきましょう。

文字列区切り ""

続いて、" " は、文字列を区切るためのものです。

indicator MA510;
draw ma5("MA"), ma10("MA2");
begin
ma5 := ema(close, 5);
ma10 := ema(close, 10);
end.

" " で区切られた文字は、足し算引き算などができる数字ではなく、単なる文字として扱われます。

コロン:セミコロン;、括弧()[]{}、カンマ,、ダブルクォーテーション"" などの使い方は、
いろいろプログラムを見ているとそのうち覚えてしまいますので、頭の片隅においておいてください。

たくさんの説明を頭に叩き込むよりも、たくさん例を見ながら、自然と覚えてください。
CTLは、言語、つまり言葉ですから、たくさん経験を積めば覚えるものなのです。

もし括弧の使い方が適切でなかったら、「Verify ( ベリファイ ) 」する際に、
CTLが間違いを指摘してくれるでしょう。見て覚えて訂正をすることにより上達していきます。

to top