EasyLanguage研究所

マネックス証券が提供する株式トレード&分析ツール「トレードステーション」専用のプログラミング言語、EasyLanguageについて。特にオブジェクト指向型EasyLanguage(OOEL)の情報を中心に。

EasyLanguageの予約語&関数をカテゴリ・目的別に探せる「逆引きEasyLanguage辞典」を公開しました。

EasyLanguageの予約語&関数をカテゴリ・目的別に探せる Webサイト「逆引きEasyLanguage辞典」を公開しました。https://eltraders.com/dict/<これまでの歩み> (1) トレステ付属のヘルプに掲載されている約1,400個の予約語&関数から、特によく使いそうなも…

「Tab」と書けばTab文字になるよう、関数を自作してみました。(コードはたったの1行)

最近EasyLanguageで出力した結果を Excelファイルに落としてデータ分析する機会が多いです。それで、大量データをまとめてExcelファイルに落としたい時は 前回の記事でご紹介したWorkbookクラスを使って処理するのですが・・ eltraders.hatenablog.comちょっ…

チャート表示されたすべての足情報をExcelファイルに自動書き込み(Workbookクラス使用)

チャートに表示された足情報を 直接Excelファイルに書き込んでくれるEasyLanguageコードのサンプルです。 「インジケーター」として作成し、チャートに挿入することで機能します。 前提条件 お使いのパソコンにExcelがインストールされている必要があります…

【目次】「EasyLanguage小ネタ」まとめ

Twitterでつぶやいていた 「EasyLanguage小ネタ」も50を超えてきたので、 まとめ記事を用意することにしました。それで、ただ時系列にまとめるだけでは Twitterで見るのと変わりないので、 見やすいようカテゴリ分けてみることにしました。EasyLanguage小…

レーダースクリーンに各銘柄の保有ポジション状況(取得価格、株数、未実現損益など)を表示させる方法

久々に、投稿。レーダースクリーン上に、銘柄ごとの保有ポジション状況(「取得価格」「株数」「損益(P/L)」など)を表示させる、EasyLanguageコードを書いてみました。インジケーターとして作成しております。表示する内容は、トレーディングアプリ『トレ…

銘柄を変えただけで、チャートに適用している分析テクニックやストラテジーのパラメータも自動変更する方法

今回は、EasyLanguage全般に関する小ネタです。(小ネタといいつつ、結構使えると思います)ストラテジーのバックテストで、複数の銘柄ごとに最適なパラメータを得られたけれど、以下のような悩みをお持ちの方、必見。・チャートで銘柄を変えるごとにストラ…

口座の残高や買付可能額を取得できるAccountsProviderクラスについて

オブジェクト指向EasyLanguageで利用可能なAccountsProviderクラスを使うと、口座の情報を取得できます。具体的には、トレードステーションに初期搭載されている「トレードマネージャー」の「口座状況」タブで確認できる情報が中心、といえば分かりやすいと…

AverageFC関数のパラメータを途中でいじったら計算がおかしくなった原因と対策

現在様々な手法でバックテストを実施しているのですが、移動平均線のパラメータ(日数)を期間の途中で切り替えるようなロジックを作りたくてストラテジーを書いてみたら、AverageFC関数の計算結果がおかしくなりましたorz原因と解決策をメモしておきますの…

WebBrowserクラスを発見したので自作ブラウザをワークスペース上に表示させてみました

トレードステーションに初期搭載されているトレーディングアプリの中に「ブラウザ」があります。URLを入力するとそのページがワークスペース内で表示されるだけなので、正直これだけなら別でブラウザ開いていた方が良いです(笑)しかし、オブジェクト指向Ea…

TrendLineクラスでEasyLanguageからトレンドラインを引く(マニュアル掲載コードの修正版あり)

オブジェクト指向EasyLanguageのTrendLineクラスを使うと、EasyLanguage上から自動でトレンドラインを引く事ができます。トレンドラインは、通常のEasyLanguageでもTL_Newで引く事ができますが、TrenLineクラスの方は開始位置と終了位置を「現在の足から●個…

関数の引数やクラスのプロパティの型(クラス)が分からない→そうだGetTypeを使おう

トレードステーション標準のマニュアルって、関数の引数やクラスのプロパティの型が「Object」になっている事、多いです。Objectはあらゆるクラスの基底クラスなので、「実際の型(クラス)は何なの?」と調べたい時は、ObjectクラスのメソッドであるGetType…

EasyLanguage小ネタ「Excel連携」編

(2017.11.27 追記) Excelファイルからの「読み込み Workbookクラスを使うと、Excelファイルの読み書きが可能になります。添付コードでは、8行目で指定したファイルを読み込んで、「1列1行(=A1)」の数値をPlot1に、「2列3行(=B3)」の文字列をPlot2に…

EasyLanguage小ネタ「配列」編

(2017.11.27 追記) 配列の宣言 EasyLanguageで扱える配列には、「固定長配列」と「動的配列(ダイナミックアレイ)」があります。変数は Vars: などで宣言しますが、配列は別途 Array: などで宣言する必要があります。 #EasyLanguage— しゅん@ELプログラ…

EasyLanguage小ネタ「ファイル出力」編

(2017.11.20 追記) Print命令でファイル出力 Print関数は文字列を印刷ログに出力できる機能ですが、実は1つ目の引数にFile("ファイルのパス")と書くと、出力文字列が入ったファイルを新規作成してくれます。 #EasyLanguagePrint( File("c:\test\data_001.…

複数の銘柄コードをEasyLanguageで扱う方法(3)カスタムシンボルリストのファイルを読み込み

前々回と前回で、EasyLanguageで複数の銘柄コードを扱う方法について2つご紹介しました。eltraders.hatenablog.comeltraders.hatenablog.com今回は最終回という事で、固定のカスタムシンボルリストをEasyLanguage上から直接読み込んで、銘柄コード一覧を取…

複数の銘柄コードをEasyLanguageで扱う方法(2)シンボルリスト選択ダイアログの利用

前回の続き。前回は配列で直接定義することで、複数の銘柄コードを扱う方法をご紹介しました。eltraders.hatenablog.com今回は『シンボルリスト』選択ダイアログを利用する方法についてご紹介します。 方法2:『シンボルリスト』選択ダイアログを利用 トレ…

複数の銘柄コードをEasyLanguageで扱う方法(1)配列で直接定義

トレーディングアプリ開発をしていると、EasyLanguage上で複数の銘柄コードを扱いたい場合が出てきます。 複数の銘柄コードに対して、株価情報などの取得を一括で行ないたい ドロップダウンリストで銘柄コード一覧を表示させ、フォーム上で銘柄コードを選択…

ダブルクオーテーションやタブなどの特殊文字を扱うための予約語など

Print出力したり、文字列の検索や置き換えなどをする時、改行やダブルクオーテーションのような特殊文字を扱いたい時に困る場合があります。プログラム言語によっては、エスケープ文字を使ったり文字コード指定の関数を使ったりしますが、EasyLanguageではい…

フォームを拡大縮小した時にDataGridViewの縦幅&横幅も拡大縮小させたい時のレイアウト術【画像あり】

オブジェクト指向EasyLanguage(OOEL)のフォームで、以下のような動作(レイアウト)を実現したい時です。フォームの右下端を広げたら、上部のTextBoxやButtonの位置はそのままで、下部のDataGridViewのみが拡大する感じです。フォームを広げた時はこのよう…

分析テクニックやストラテジーの挿入や削除で発生するAnalysisTechniqueイベントの動きを検証

分析テクニックやストラテジーは、オブジェクト指向EasyLanguageから見るとAnalysisTechniqueクラスとして定義されています。AnalysisTechniqueクラスには「Initialized(挿入時)」「UnInitialized(削除時)」「WorkSpaceSaving(ワークスペース保存時)」…

現在利用できる全ストラテジー名称が取得できるAvailableStrategiesヘルパークラス(ただし英語名のみ?)

そういえばTradeStationで使える全ストラテジーの名称を取得する方法ってないのかしら?と思ってたんですが、「Optimization API」の英語マニュアルを調べている時にたまたま発見。AvailableStrategiesヘルパークラスというものが使えるようです。といっても…

EasyLanguage小ネタ「文字列操作」編

EasyLanguageにおける文字列操作関連の命令など。 文字列で改行やタブを扱いたい時は? Print命令などで改行やタブを扱いたい時。改行はNewLineが用意されていますが、タブは無い様子。でも実は「”」「Tabキー」「”」の順で入力すると、タブ文字として認識し…

EasyLanguage小ネタ「開発環境とデバッグ」編

EasyLanguageの開発環境やエディタの使い方、 デバッグ時に気をつけたいポイントなどをまとめました。 エディタのおすすめ初期設定 TradeStation開発環境のEasyLanguageエディター。とりあえず「ライン番号」と「フォントの大きさ」だけは設定しておくと見や…

EasyLanguage小ネタ「算術計算」編

数値の切り上げ、切り捨て、四捨五入 小数点以下を整数に丸めたい時は、Ceiling/Floor/Roundが使えます。正数の場合、Ceilingで切り上げ、Floorで切り下げ、Roundで四捨五入。Excelの数式に慣れている方ならおなじみの関数でしょうか? #EasyLanguage— しゅ…

EasyLanguage小ネタ「トレステ操作」編

EasyLanguageの話ではないですが、トレステの操作に関するTipsなど。 マウス操作無しで分析テクニックやストラテジーをチャートに追加するには? EasyLanguageではなくトレステの小技ですが、チャート開いている状態でコマンド「.IAT 英語の分析テクニック名…

EasyLanguage小ネタ「色関連」編

EasyLanguageで色を扱う2つの方法 EasyLanguageで色を使いたい場合は、「Red」「Green」「Blue」など予め用意された色定数を使う方法と、RGB関数を使う方法があります。RGB関数はR/G/Bをそれぞれ0~255の範囲で指定する形式です。 #EasyLanguage— しゅん@E…

EasyLanguage小ネタ「ストラテジー」編

ストラテジーで直近のエントリー価格を取得 EntryPriceは、直近のエントリー価格を取得してくれる便利な命令。「エントリー価格から何%の含み益で利益確定したい」ような場合には必須です。 #EasyLanguage— しゅん@ELプログラマー (@eltraders) 2017年10月…

EasyLanguage小ネタ「関数紹介」編

日本式ローソク足パターンの関数も充実 日本式のローソク足パターン用も結構用意されています。関数は C_ から始まるものが多い(全部?)です。例えば C_3WhSolds_3BlkCrows が赤三兵&黒三兵、 C_MornStar_EveStar が明けの明星&宵の明星、など。 #EasyLa…

EasyLanguage小ネタ「日時関連」編

EasyLanguageにおける、 日付や時刻などに関する小ネタをまとめました。 Dateから必要な部分だけを取得 Year/Month/DayOfMonth/DayOfWeek で、EasyLanguage日付の「年」「月」「日」「曜日」を取得できます。Dateが現在足のEasyLanguage日付なので、Year(Dat…

EasyLanguage小ネタ「文法」編

EasyLanguageの文法などに関する小ネタです。 変数宣言(Vars)は複数箇所で可能 変数を宣言するVars(VarやVariablesなども可)ですが、実はコード内の複数個所で記述できます。好みの問題もありますが、使う箇所が限定されるような変数は、使う箇所の近く…