株価は、その企業の業績やニュース以外に、他の銘柄の値動きや、為替、日経平均株価等に影響を受けます。
A銘柄の株価が必ず上昇すると思えるようなビッグニュースがあったとしても、その日の日経平均株価が大きく値を下げて、
そのA銘柄の株価もつられて、値段を下げる。
よくある事です。
今回は、他のチャートの値動きを参考にする投資戦略をプログラムします。
株式投資をするうえで、現在最強のトレードツールは マネックス証券の トレードステーション です。(個人評価)
その、トレードステーションを自由自在に操るには、イージーランゲージ[EasyLanguage]の知識が必要です。
イージーランゲージ[EasyLanguage]?
イージーランゲージ[EasyLanguage]はプログラム言語
プログラム言語!? 「そんなの出来るはずない」 「聞いただけで鳥肌が立つ」と思う方が大半ですよね。
EasyLanguageとは?
トレードステーション上のほぼ全てのアクションは、EasyLanguageという独自の言語で構成されます。”Easy”と名付けられている通り、初歩的な英文で記述される非常にシンプルなプログラム言語になります。
例えば、移動平均線がゴールデンクロスした場合に買い注文を出すプログラムは、以下の一文で済むほどシンプルです。
”If FastAvg crosses over SlowAvg then Buy next bar at market ”
出所:https://info.monex.co.jp/tradestation/features/other/ マネックス証券の機能紹介ページ
簡単なんです。だって”Easy”って名前だから。。。。
イージーランゲージ[EasyLanguage]を学ぶには
簡単と言っても、EasyLanguageはプログラム言語です。
しっかり学びたい方におすすめなのが、マネックス証券の公開しているマニュアル
EasyLanguage ホームスタディコース(ガイドブック) です。
https://info.monex.co.jp/tradestation-support/manual.html#01; こちらのページでもらえます。
このブログでは、「EasyLanguage ホームスタディコース」の演習問題を実際に操作しながら解いてゆく、過程を紹介したいと思います。
複数データの参照
1つのチャート分析ウィンドウには最大 50までのデータ(分足など時系列足種の銘柄)を 追加することができます。
シンボルにはデータ番号” Data1”から” Data50”までが割 り振られます。
インジケーターは Data1 以外の計算をプログラム中で実行できるだけ でなく Data1 以外の計算結果も描画することができますが、ストラテジーは Data1 以 外の計算をプログラム中で行うことができるだけで、売買シグナルは Data1 に対してのみ発注することができます。
出所:Easy Languageホームスタディコース P102
※複数のチャートを同時に表示する事は出来ますが、発注出来るのは1銘柄のみです。
練習問題: *29 複数データ系列移動平均
◇学習の目的: 複数データ系列の参照。
◇詳細: Data1の終値が Data1の 20期間の終値移動平均線より高く、Data2の終値が Data2の 50期間の終値移動平均線より高いとき買い。
2銘柄をチャートに表示させる
チャートの上で右クリック ー 銘柄コードを挿入
追加したい銘柄コードを入力します。
チャートの下に追加されました。
EasyLanguage開発環境(エディタ)にコードを書き込みます
※EasyLanguage開発環境を起動させる方法は、この連載1のページ中頃をご覧ください。
ファイル名は #29 Multidata MA という名前で新規にストラテジーを作成します。
Easy Language開発環境を開き、 ファイル ー 新規作成 ー ストラテジー で新規ストラテジーを作成します。
エディターの準備が出来たら、下のプログラムコードを打ち込んでください。
(コードをコピーして貼り付けてもOK)
プログラムコードの中身はこちら===
Inputs: AvgLenD1(20), AvgLenD2(50);
Variables: AvgD1(0), AvgD2(0);
AvgD1 = Average(Close Data1, AvgLenD1);
AvgD2 = Average(Close Data2, AvgLenD2);
If Close > AvgD1 and Close Data2 > AvgD2 then Buy next bar at market
else
Sell next bar at market;
プログラムコードここまで===
スポンサーリンク
貼り付けまたは、書き込みが終わったら、プログラムコードに間違いが無いか、チエックするボタンを押して確認します。(いつものやつですね)
0エラー、0警告ならOK。
誤りがあれば修正し、チエックするボタンを再度押します。
プログラムコードの意味
Inputs: AvgLenD1(20), AvgLenD2(50);
インプット宣言文で初期値を指定して宣言しています。
インプット名が AvgLenD1 初期値は 20
インプット名が AvgLenD2 初期値は 50
移動平均線の足数を設定するインプットです。
Variables: AvgD1(0), AvgD2(0);
変数宣言文で初期値を指定して宣言しています。
変数名が AvgD1 初期値は 0 です。
変数名が AvgD2 初期値は 0 です。
移動平均の値を格納する変数を指定しています。
AvgD1 = Average(Close Data1, AvgLenD1);
Averageは移動平均を求める関数です。
分からない関数が出てきたら、まずヘルプで調べましょう。
調べ方は、 Easy Language開発環境エディターの Average の上で右クリックでしたね。
Average関数の構文(書き方の決まり)は、
Average(Price,Length) です。
今回はチャートが2つあるので、どちらの値を使うのか指定する必要があります。
AvgD1 = Average(Close Data1, AvgLenD1);
Close Data1 : 最初に表示されていたチャートの終値
同様に
Close Data2 : 追加したチャートの終値
と言う意味になります。
AvgD1 = Average(Close Data1, AvgLenD1); は、
最初に表示されていたチャートの移動平均の値をAvgD1に代入しています。
AvgD2 = Average(Close Data2, AvgLenD2);
AvgD2 = Average(Close Data2, AvgLenD2); は、
追加したチャートの移動平均の値をAvgD2に代入しています。
If Close > AvgD1 and Close Data2 > AvgD2 then Buy next bar at market
else
Data1の終値が Data1の 20期間の終値移動平均線より高く、 そして Data2の終値が Data2の 50期間の終値移動平均線より高い とき 買い。
※ Close > AvgD1 このように Data1 は 省くことが出来ます。
Sell next bar at market;
上の else の後に続いているので、
Data1の終値が Data1の 20期間の終値移動平均線より高く、 そして Data2の終値が Data2の 50期間の終値移動平均線より高く
ないとき 売り。
チャートに移動平均線を表示させる
チャート上で右クリックし、 分析テクニックを挿入
移動平均線(1本)を選んで 設定ダイアログを表示にチエックを入れます。
そしてOKボタンを押します。
データ1には 20足の移動平均線を表示させたいので、 期間に 20 を入力して、OKボタンを押します。
移動平均線が表示されました。
次に2つめのチャートにも、移動平均線を表示させます。
同様に チャート上で右クリックし、 分析テクニックを挿入
データ2 には 50足の移動平均線を表示させたいので、 期間に 50 を入力して、
そして、 まだ押さないでください OKボタンを。
一般 タブ をクリックして、 参照チャートを 2番目の銘柄に変更して、 OK ボタンを押してください。
両方のチャートに移動平均線が表示されました。
チャートにストラテジーを適応させる
チャート上で右クリックし、 ストラテジーを挿入
今回作成した #29 Multidata MA を選択して OKボタンを押します。
このページでは、トヨタ自動車と日産自動車のチャートを表示させましたが、この2銘柄で売買シグナルは発生しませんでした。
2銘柄目を いすゞ自動車(7202ーTS)に変更したところ、売買シグナルが発生しました。
日足でのストラテジーパフォーマンスレポートはこちらです。
※手数料やスリップページは考慮していません
この続きは後日とさせて頂きます。
お疲れ様でした。
動画で解説
この記事を書いた人
ゆたかドットらいふ編集部
あしおゆたか
投資歴20年の個人投資家
机上の理論ではなく、実体験に基づいた記事作りをモットーにしています。
スポーツクラブに毎週2日~3日通い、サウナ後の暴飲暴食が趣味。
◇主な投資対象
日本株式
株式ETF(上場投資信託)
日経225先物
日経225先物オプション
◇運営者情報はこちら
スポンサーリンク