システムトレードでは、その銘柄の値動きのクセを知る事はとても大切です。
価格が下がり始めると、比較的に継続して下がる。
○△円以上の暴騰・暴落が高い確率で起こる。
などなど。
今回は、このような特別な事象が何回起こったか、回数を数えるプログラムを作りましょう。
株式投資をするうえで、現在最強のトレードツールは マネックス証券の トレードステーション です。(個人評価)
その、トレードステーションを自由自在に操るには、イージーランゲージ[EasyLanguage]の知識が必要です。
イージーランゲージ[EasyLanguage]?
※すぐに実習(解説)記事に進みたい方は、このページ最初の 目次 3.<実習…> をクリックしてください。
イージーランゲージ[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を足して変数の値を増加させています。
偽の場合には変数 に 0を入れて発生回数をリセットしています。Vars: UpCount(0);
If Close > Close[1] then
UpCount = UpCount + 1
else
UpCount = 0;つまり、UpCount 変数は終値が 2足以上連続上昇している場合に、その連続数を格納 しています。
連続上昇が途切れると UpCount 変数には 0が代入され、カウントを始めからやり直します。
出所:Easy Languageホームスタディコース P117
練習問題: *33 連続
◇学習の目的: 事象の発生回数をカウントするために変数を使用する。
◇詳細: 終値の連続上昇と下落をカウントして表示する。
EasyLanguage開発環境(エディタ)にコードを書き込みます
※EasyLanguage開発環境を起動させる方法は、この連載1のページ中頃をご覧ください。
ファイル名は #33 Streak という名前で新規にインジケータを作成します。
Easy Language開発環境を開き、 ファイル ー 新規作成 ー インジケーター で新規インジケーターを作成します。
エディターの準備が出来たら、下のプログラムコードを打ち込んでください。
(コードをコピーして貼り付けてもOK)
プログラムコードの中身はこちら===
Inputs: Price(Close), UpColor(green), DnColor(red);
Var: UpCount(0), DownCount(0);
If Price > Price[1] or (UpCount > 0 and Price = Price[1]) then
UpCount = UpCount + 1
else
UpCount = 0;
If Price < Price[1] or (DownCount < 0 and Price = Price[1]) then
DownCount = DownCount – 1
else
DownCount = 0;
If UpCount > 0 then begin
Plot1(UpCount, “連続”);
SetPlotColor(1, UpColor );
SetPlotBGColor(1, UpColor);
end
else begin
Plot1(DownCount, “連続”);
SetPlotColor(1, DnColor);
SetPlotBGColor(1, DnColor);
end;
プログラムコードここまで===
スポンサーリンク
貼り付けまたは、書き込みが終わったら、プログラムコードに間違いが無いか、チエックするボタンを押して確認します。(いつものやつですね)
0エラー、0警告ならOK。
誤りがあれば修正し、チエックするボタンを再度押します。
プログラムコードの意味
概要
UpCount 変数と DownCount 変数を宣言します。
UpCount 変数は連続上昇足数をカウ ントします。
DownCount 変数は連続下落足数をカウントします。次に、終値が連続上昇した場合に UpCount 変数の値を 1ずつ増やし連続上昇が途切れ た場合に、UpCount 変数に格納されている発生回数を 0にします。
または終値が連続 下落した場合に DownCount 変数の値を 1ずつ減らし、連続下落が途切れた場合に、 DownCount 変数に格納されている発生回数を 0にします。
終値はインプットで宣言します。
UpColor と UpColor をインプット宣言します。
If…then…else ブロック文を使用 して、連続上昇時セルに回数を表示すると同時にセルの背景を緑色にします。
逆に連続下落時セルに回数を表示すると同時にセルの背景を赤色にします。
この練習問題では、連続 上昇または連続下落が発生している途中に同値で変化がなかった場合には連続が続いているとみなします。
Inputs: Price(Close), UpColor(green), DnColor(red);
インプット宣言文で初期値を指定して宣言しています。
インプット名が Price 初期値は Close
インプット名が UpColor 初期値は green
インプット名が DnColor 初期値は red
Var: UpCount(0), DownCount(0);
変数宣言文で初期値を指定して宣言しています。
変数名が UpCount 初期値は 0 です。 (連続上昇をカウント)
変数名が DownCount 初期値は 0 です。 (連続下降をカウント)
If Price > Price[1] or (UpCount > 0 and Price = Price[1]) then
連続上昇をカウントする条件判断です。
Price はインプットの初期値で Close を指定しています。
この練習問題では、連続 上昇または連続下落が発生している途中に同値で変化がなかった場合には連続が続いているとみなします。
(UpCount > 0 and Price = Price[1]) は、終値が同値だった場合には連続上昇が続いていると判断するプログラムコードです。
終値 が 一つ前の終値より高ければ 又は (終値が同値だった場合には連続上昇が続いていると判断) この条件判断が 真 の場合 then 以降のプログラムを実行します。
UpCount = UpCount + 1
上の条件判断が 真 の場合 連続上昇をカウントする UpCount 変数に 1 を 加算します。
DownCount = 0;
上の条件判断が 偽 の場合 連続上昇をカウントする UpCount 変数に ゼロ を代入しリセットします。
If Price < Price[1] or (DownCount < 0 and Price = Price[1]) then
連続下降をカウントする条件判断です。
Price はインプットの初期値で Close を指定しています。
この練習問題では、連続 上昇または連続下落が発生している途中に同値で変化がなかった場合には連続が続いているとみなします。
(DownCount < 0 and Price = Price[1]) は、終値が同値だった場合には連続下降が続いていると判断するプログラムコードです。
終値 が 一つ前の終値より安ければ 又は (終値が同値だった場合には連続下降が続いていると判断) この条件判断が 真 の場合 then 以降のプログラムを実行します。
DownCount = DownCount – 1
上の条件判断が 真 の場合 連続下降をカウントする DownCount 変数から 1 を 減算します。
DownCount = 0;
上の条件判断が 偽 の場合 連続下降をカウントする DownCount変数に ゼロ を代入しリセットします。
If UpCount > 0 then begin
連続上昇が続いていれば、begin以降のプログラムを実行します。
Plot1(UpCount, “連続”); SetPlotColor(1, UpColor ); SetPlotBGColor(1, UpColor);
上の条件式が 真 の場合 プロットします。
Plot1(DownCount, “連続”); SetPlotColor(1, DnColor); SetPlotBGColor(1, DnColor);
上の条件式が 偽 の場合 プロットします。
※Easy LanguageホームスタディコースP121 では、 SetPlotColor(1, Black); となっていますが、DnColor に修正しています。
レーダースクリーンにインジケーターを適応させる
インジケーター検証後、エディタウィンドウ内で右クリック。
プロパティを選択します。
[一般]タブ で [累積計算のため追加データをロード] にチェックして [ロードする追 加バー]の設定を 20にします。
インジケーターを再検証して、レーダースクリーンに適用してください。
レーダースクリーン上で右クリックし、 分析テクニックを挿入
今回作成した #33 Streak を選択して 任意の位置に挿入します。
チャートにインジケーターを適応させる
チャート上で右クリックし、 分析テクニックを挿入
今回作成した #33 Streak を選択して OKボタンを押します。
[(インジケーターの設定)]ダイアログウィンドウの[チャートのスタイル]タブの[Type(形式)]設定を[ヒストグラム]に変更してください。
チャートに表示されました。
お疲れ様でした。
次の記事はこちらからぞうぞ。
デバッグには必須です。「プリント」と「コメント」を学ぶ。 トレードステーションとイージーランゲージ[EasyLanguage]を学び、株式投資で差をつける。34
この記事を書いた人
ゆたかドットらいふ編集部
あしおゆたか
投資歴20年の個人投資家
机上の理論ではなく、実体験に基づいた記事作りをモットーにしています。
スポーツクラブに毎週2日~3日通い、サウナ後の暴飲暴食が趣味。
◇主な投資対象
日本株式
株式ETF(上場投資信託)
日経225先物
日経225先物オプション
◇運営者情報はこちら
スポンサーリンク