システムトレード

[EasyLanguage]例題でわかる!システムトレードのオブジェクト型記述に慣れよう

EasyLanguage PriceSeriesProvider

前回『作成したストラテジーでバックテストをしてみよう』までで、ストラテジーを作って、バックテストをして、パラメーターの最適化までしてきました。

すでにかなりトレードステーションおよびEasy Languageを使いこなせてきています。

ここからは、より高度な取引をしたいという方向けに、紹介していきたいと思います。

そのためには、オブジェクト指向に慣れる必要があります。

マネックス証券が、オブジェクト指向によるEasy Languageのプログラミングに関して、マニュアルを出してくれています。

そのマニュアルはたくさんの例題があって、実践的に学べるのですが、あまり詳しく書かれていません。

あくまでも、他のプログラム言語(C#とかJavaとか)をある程度知っている前提で話が進められています。

私のように、「高校とか大学の授業でちょっとやっただけで、全然知識がない。。」という方は置いていかれます。。

なので、マニュアルの補足説明も兼ねて、より高度なストラテジーが書けるように順を追って紹介したいと思います。

今回は、オブジェクト指向のマニュアルの「例題1」をやってみましょう。

ここでは、マネックス証券のマニュアルを使いますので、まだ持っていない方は以下よりダウンロードしてください。

『マネックス証券 オブジェクト指向マニュアル』

マネックス証券 オブジェクト指向 マニュアル
タートル 投資手法 バックテスト
この結果を見てもまだシステムトレードしないのか【タートル流投資手法の驚くべきバックテスト結果】タートルが取ったとされる投資手法をプログラム化して、バックテストを行いました。その結果としては、かなりのリターンが期待できるものでした。トレンドフォローの投資手法は、まだまだ現役であるようです。...

目次

そもそもオブジェクト指向とは

そもそもオブジェクト指向とは何でしょうか。ネットで調べると、いろいろと解説されているのがありますが、多くのサイトで「概念だから説明が難しい」とされています。

というわけで、ぶっちゃけ私もこれという回答はできません。。(笑)

ですが、やっていくうちにこんなもんかと思えるようになるかと思います。

そもそも名前を知らなくてもなんとかなるので大丈夫です(笑)

パンダはし
パンダはし
オブジェクト指向についてがっつり知りたい人は、ネットで調べてほしいんだなー

例題に取りかかろう

早速ですが、例題に取りかかってみましょう。

とりあえずやってみたらなんとなくわかってきます。学生の頃やった勉強と一緒です。手を動かしてみるのが、一番早く習得できると思います。

マネックス証券のマニュアルの例題01(#01_DailyBarClose)をやってみましょう。

ストラテジーを作ったときのように、トレードステーションのEasy Languageを立ち上げてください。

その後、新規作成で「インジケーター」を選んでください。

パンダはし
パンダはし
ストラテジーではないから気を付けてね

新規作成できたら以下の画像のようになると思います。左の方にある、「ツールボックス」をクリックしてください。

例題01(PriceSeriesProvider)

ツールボックスが開くので、その中にある「PriceSeriesProvider」をダブルクリックしてください。

例題01(PriceSeriesProvider)

この「PriceSeriesProvider」がオブジェクトの第一歩です。

ダブルクリックすると、以下の画像のように、下の方に「PriceSeriesProvide1」が追加されます。

追加されているのが確認できたら、右の方にある「プロパティ」をクリックしてください。

例題01(PriceSeriesProvider)

以下の画像のように、①が「PriceSeriesProvide1」となっていることを確認して、マニュアル通りに赤枠を書いてください。

ここで注意してもらいたいのは、以下の画像の②にあるように、「Load」を「False」から「True」に変えるのを忘れないようにしてください。

マニュアルではいつのまにか「True」に変わっていますので気を付けてください。

例題01(PriceSeriesProvider)

それでは、プログラムを書く準備ができたので、マニュアル通り書いてみましょう。

例題1なので、非常にシンプルです。

Plot1(PriceSeriesProvide1.Close[0],”DailyClose”); 

「PriceSeriesProvide1」には、先ほどまでに設定した情報が盛り込まれています。

つまり、Symbol(銘柄)、InterbalType(どの間隔で参照するか(足種))、InterbalSpan(その間隔はいくつか)、Range(対象範囲はどこか)の情報が入っており、その条件での、株価の情報が入っています。

いまの設定の場合、

銘柄…チャート分析に表示されている銘柄

データを参照する間隔…1日ごと

データ取得範囲…2年間分

となっています。

「PriceSeriesProvide1」のあとに、「.」がついています。これは、「PriceSeriesProvide1」の中にある「Close」を参照するという意味になります。

「PriceSeriesProvide1」という箱の中から「Close」を持ってきてね。という表現になります。

箱の中に複数の情報があれば、それぞれ呼び出せるようになっています。

この辺りが、これまでになかった表現方法ですね。

Closeは足の終値でしたね。Plotは描画するコマンドなので、このプログラムの内容は、

「チャート分析ウィンドウに現れている銘柄に足して、1日ごとに、足の終値を結んでください」というプログラムになります。

プログラムの記述を終えたら、以下の画像のように、画面上で右クリックをして、「プロパティ」を選択してください。

例題01(PriceSeriesProvider)

「スケーリング」タブを開いて、スケール位置を「元データの軸に合わせる」としてください。そして「OK」をクリックしてください。

例題01(PriceSeriesProvider)最後に「F3」キーを押して、プログラムを検証してください。エラーがでなければプログラム完成です。

チャート分析上に、分析テクニックを挿入してください。(方法の詳細は前回を見てください)

例題01(PriceSeriesProvider)

無事、インジケーターが挿入されました。

例題01(PriceSeriesProvider)
パンダはし
パンダはし
細かいところはいろいろと説明を省いたけど、なんとなくわかったかな?

「Load」が「False」のままだったら?

「Load」は「True」にしてくださいと上の方で書きました。

ちなみに、「False」のままならどういったことが起こるでしょうか。つまり、以下の画像のように、「False」のままとしたらどうなるでしょうか。

オブジェクト インジゲーター失敗例1

「チャート分析」ウィンドウで、インジケーターを挿入しようとしてみると、「[プロバイダー]のデータは、オブジェクトが[ロード済み]になるまでアクセスできません」というエラーが出ます。

ロードできませんよ。というエラーです。

なので、「Load」の設定を「True」にする必要があります。

このエラーが出たときには、プロパティの設定を確認してみてください。

オブジェクト インジケーター失敗例1-2(Load)

さいごに

オブジェクトによる記述は、プログラムに慣れていない方には難しいかと思いますが、いかがでしたか?

「なんとなく追ってはいけるけど詳しくはわかっていない」という方が多いかもしれません。

でも大丈夫です!徐々に例題に親しんでいけば、誰でも身に付けることができます。

次回もマニュアルに載っている例題を解説していきたいと思います。

タートル 投資手法 バックテスト
この結果を見てもまだシステムトレードしないのか【タートル流投資手法の驚くべきバックテスト結果】タートルが取ったとされる投資手法をプログラム化して、バックテストを行いました。その結果としては、かなりのリターンが期待できるものでした。トレンドフォローの投資手法は、まだまだ現役であるようです。...

Prev→『バックテストをしてみよう』Next→レーダースクリーンにインジケーターを反映しよう($MNKって何?)

Nocchi_nochilog(のっち)
少額投資をこよなく愛する1児のパパ&サラリーマン。
お小遣い制でも負けずに投資をしています。

知るだけで暮らしが豊かになる知識を発信中!
若いうちから投資することの重要性を伝えるべく、ブログの記事を更新しています。

特にインスタグラムでは、1日1分で自然とお金の知識が身につくような情報を発信しています。
ぜひ合わせてご覧ください!

下のアイコンから飛べます!
\ Follow me /

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です