EasyEditorは、EasyStockのユーザインジケータを記述すらための専用エディタです。
このマニュアルでは、ユーザインジケータについて、また、EasyEditorの使用法について説明します。
投資の世界で使用されるテクニカル指標が利用されています。EasyStockでは、このテクニカル指標の計算式をユーザが自由に設計・記述できるようになっています(当然一般的なテクニカルも記述可能です)。そして、これらのテクニカル指標は、ユーザーがxmlファイルにその内容を記述したものを利用できることになっています。
以降EasyStockでは、これらのxmlへ記述したテクニカル指標のことを「ユーザインジケータ」と呼びます。
今、ユーザインジケータの記述方法。記述する内容の大まかな構成について記載します。
ユーザインジケータは主に、以下の内容で成り立っています。
名前
これは、ユーザインジケータを識別するための文字列です。半角英字から始まる、半角英数字だけで構成されたものが使用可能です。この名前は、ほかのユーザインジケータと重複することはできません。
表示名
これは、ユーザインジケータをEasyStockランキングパネルに表示するために利用する文字列です。日本語名でもまったく構いません。自由な命名が可能です。
説明
自由に表記可能なTips文です。ユーザインジケータの内容を表す補足文としてご利用ください。なお、本「説明」はxmlファイル上には表記されません。今のところ、EasyEditor上でのみのご利用となります。
表示場所
このユーザインジケータが、EasyStock上のどこに表示されるのかを決めるための項目となります。ユーザインジケータによっては、チャートとランキングパネルの両方に表示させる必要のないものもありえます。この項目ではこれらの条件を指定します。
計算式
ユーザインジケータの内容となります。この計算式の項目に
「この指標は、その時間帯にどのような数値になるのか」
を記載する項目となります。Excelやプログラムのような表記方法となります(詳しくは後述します)。
例えば、 このユーザインジケータが25期間移動平均線を示すとするなら、この計算式は
ld_Wma(25, close())
といったものになります。
系列
例えば移動平均線などで、式の構成は同じだけれどパラメータ(上記例で言うなら25です)が違うといった場合、全てのケースに個別のユーザインジケータを記述するのは煩雑となり、望ましくありません。
EasyEditorでは、この「パラメータ」を指定することが可能です。これが系列です。
また、チャート上で表示する線の種類や色もここで指定します。
冒頭で、ユーザインジケータはxmlファイルに記述すると述べました。ホームページを作成されたことのある方ならお分かりかと思いますが、xmlファイルの表記規則に沿って上記の内容を各インジケータ毎に記載するのは大きな労力です。確かに、ユーザインジケータが記述されたファイルはxml形式でないといけないのですが、心配は不要です。EasyStockでは、このxmlファイルを作成するための専用エディタが用意されています。それが、本マニュアルで説明する「EasyEditor」となります。
以下、ユーザインジケータの編集は全てEasyEditorで行うものとして説明します。
Easyeditorの特徴は次のとおりです。
管理を簡単に
作成されたインジケータは、各アイテムごとにツリービュー形式のリストで管理できます。
計算式の入力を簡単に
リストビューからのドラッグアンドドロップ機能や、オートコンプリート(もどき)機能により、計算式をなるべく簡単に入力する事ができます。
EasyEditorでは、ユーザインジケータを表示するチャートの種類毎(価格スペースなのか、出来高スペースなのか、オシレータなのか)にアイテムを管理します。そのため、EasyEditorのインジケータ編集画面はタブで区分けされています。この項では、このタブ画面ごとの編集方法について記述します。
EasyStockの価格スペースに表示するためのインジケータを作成する画面です。
価格インジケータはメイン画面右のタブ「価格帯」をクリックすると表示されます。
入力できる項目は、
テキストボックス 「名前」「表示名」「説明」「計算式」
チェックボックス 「表示場所」です。
その他組み合わせ 「系列」以下
画面を見て上から順に説明します。
「名前」
このインジケータの名前を入力します(半角文字)。許可しない文字が入力されると注意ダイアログが出ます。また強制・自動的に、文字列先頭に「prc_」という識別子が付与されます。
(この識別子を以下、「接頭語」と呼びます)
「表示名」
このインジケータの日本語名です。ランキングパネルにはこの名前が表示されます。
「説明」
このインジケータの概要です。この項目と、名前・表示名は作成時に入力必須となります。
「表示場所」
チャート画面、ランキングパネル(数値画面)、どちらに表示するか選べます。
「計算式」
このインジケータアイテムの計算式です。計算式の記入規則については「3.Tips」に別記します。
「系列」以下
計算式にパラメータを指定した場合、ここで複数の系列が指定できます。系列は12系列まで、パラメータは3種類まで指定できます。
線の種類は
実線 − 普通の線です。
点線
太線
ポイント − ロウソクと同程度の太さを持つ点を表示します。パラボリックなど向けです。
また、表示色も指定します。
出来高帯インジケータは画面右のタブ「出来高帯」をクリックすると表示されます。
各項目は、基本的には価格帯と変わりません。
この画面で編集したアイテムは、出来高スペースにラインが表示されます。
なお、出来高帯のインジケータ名には、接頭語「vol_」が付与されます。
オシレータは、それぞれのインジケータごとに異なる意味を持っていたり、数本の線で一つのインジケータをあらわしたりするため、これらの種類をそれぞれ整理するためにクラス化します。これをオシレータクラスと呼びます。
例えば、MDIや、MACDは数本の線が一つの集まりです。この集まりのことをオシレータクラスと呼びます。
EasyStockでは、この集まり一つにオシレータスペースを一つ割り当てます。
EasyStockでは、同時に表示できるオシレータクラスは最大二つとなります。
オシレータクラス編集画面は画面右のタブ「オシレータC」をクリックすると表示されます。
入力できる項目は、
テキストボックス 「名前」「表示名」「説明」
コンボボックス 「縦軸レンジ」
となります。
テキストボックスについては上記同様です。接頭語「ocl_」が付与されます。
「縦軸レンジ」
このオシレータクラスの値の幅を設定します。(チャート縦軸の範囲です。)選択画面から選びます。
タブ内には、エクスプローラー風のツリービューとリストビューが表示されます。第一階層がオシレータクラスで、その子供がオシレータです。
これで、どのオシレータがどのオシレータクラスに属しているか視覚的に判断しやすくなります。また、このツリービューとリストビューは互いにドラッグアンドドロップが可能で、マウス操作だけでオシレータクラスとその所属オシレータの関係を設定できます。
なお、デフォルトで表示される「----」は無所属のオシレータのためのグループです。
ここに設定したオシレータは、EasyStock上には表示できません。
オシレータは画面右のタブ「オシレータ」をクリックすると表示されます。
このインジケータでは、接頭語「osc_」が付与されます。
ほとんどが価格帯インジケータや出来高帯と変わりませんが、一点だけ、異なる箇所があります。
「所属」
このオシレータが所属するオシレータクラスを指定します。なお、「所属表示名」「所属説明」はそのオシレータクラスの内容を表わします。
例えば、移動平均線とMACDなど、異なるテクニカル指標間で同じ計算式が利用されることがあります。
このためEasyStockでは、作成したユーザインジケータを他のユーザインジケータで引用することが可能です。
ユーザ関数&定数とは、チャートや数値として表記せず、引用するためだけの関数・定数を示します。
接頭語は ユーザ関数→「ul_」 ユーザ定数「ulc_」となります。
ユーザ関数&定数は画面右のタブ「ユーザ関数&定数」をクリックすると表示されます。
入力項目は以下の通りです
テキストボックス 「名前」「表示名」「説明」「計算式」
チェックボックス 「タイプ」
「タイプ」
この関数が定数を表わすかどうか示します。
例えば、25日平均線など、よく使用する数値に関してはここでライブラリ化します。
※補足 関数と定数
EasyEditorでは、関数と定数を別々のリストビューに表示します。関数、定数とはそれぞれ次のような性質を持ったものです。
関数 − ケースバイケースで値の違うもの。例えば25期間移動平均など。インジケータそのものが関数だといえます。
定数 − 固定された値。25本とか、よく利用される数値はここで管理できます。
説明がまだでした。
メイン画面にはリストビューが合計6つ表示されています。
各リストビューが表わすのは「作成したインジケータの略式名一覧」と「組み込み関数一覧」です。
(略式名とは、各インジケータの接頭語であるprcやvol,oscなどを除いたものです。)
u パラメータ使用インジケータの確認機能
計算式にパラメータを設定した場合、リストビューの表示が「*略式名」から「+略式名」か「-略式名」に変わります。ここで言う略式名は、 正式名に付与されている「prc_」や「osc_」等の修飾子を除いたインジケータ名です。
また、「+略式名」は太字表示されます。
太字表示されている項目を選択し、「Enter」「Ctrl+Tab」「ダブルクリック」してみてください。
「線の種類」が「無し」以外に設定されたパラメータの数だけ、子供項目が表示されます。
どのインジケータにパラメータを設定したか、利用しやすくなります。
ここで注意点があります。
子供項目は、略式名が「親項目名」+「_数字」です。
この子供インジケータを引用する場合は、「作成インジケータの引用方法」をご理解した上でお使い下さい。
なお、リストビューでクリックしたアイテムは、編集用のタブ画面上に展開されます。
u インジケータの参照関係の確認機能
インジケータを沢山作成すると、何がどれを参照しているのかとか分かりにくくなります。
引用する事の多いアイテムはなるべく、ユーザ関数&定数にまとめるなどすべきではありますが、これらの参照関係を確認する機能が付属されています。
リストビューのアイテムをクリックしてください。
クリックしたアイテムが他のインジケータで引用されている場合、そのアイテムの背景色が黄緑色に変わります。
例)prc_Wmaがosc_Rsaを参照している場合
osc_Rsaアイテム(表示は*Rsaとか+Rsaなどになります)をクリックしたときに、prc_Wmaアイテムの背景色が黄緑になります。
u インジケータ計算式テキストボックスへのドラッグアンドドロップ
リストビューのアイテムをクリックしてください。そのままドラッグして、編集途中の計算式テキストボックスへドロップして下さい。インジケータ名がテキストボックスに反映されます。
計算式入力テキストボックスでは、以下のような補助機能が用意されています。
u 強調表示機能に
計算式用テキストボックスへ記述した文章は、内容にあわせて強調表示されます。
「価格帯、出来高、オシレータ」を表すインジケータ名 − 文字色 緑系統
「ユーザ関数&定数」を表すインジケータ名 − 文字色 青系統
「組み込み関数」を表す文字列 − 背景色 緑系統
「open()等の主要変数名」 − 背景色 グレー
「パラメータ(@1@,@2@,@3@)」 − 文字色 赤系統
「系列番号(_数字)」 − 文字色 赤系統
などです。
現在、これらはまだ個別設定することができません。
u オートコンプリート機能
キーボード入力の際にオートコンプリート(入力補助)機能が働きます。入力補助候補は、作成したインジケータや組込み関数などとなります。
検索キーワードは、
組込み関数 ⇒ 省略名(先頭の**_ が無い表示です。 ld_Wmaなら Wmaかwmaで検索します)
ユーザインジケータ ⇒ 正式名か省略名です。(省略名は上記同様です。)
なお、この入力補助用のコントロールを呼び出すためには、 「無変換」「変換」「Ctrl+J」キーを押します。
「無変換」「変換」キーは 通常スペースキーの両隣に備わっています。
※組込み関数とは
EasyStockに用意された、関数のことをさします。 Excelを例にとると、SUMやAVERAGEがこれに相当します。
各操作はショートカットキーが設定されています。
Alt+S (もしくは Ctrl+S) ⇒ 表示のアイテムを保存
Alt+Q (もしくは Ctrl+Q) ⇒ 表示中のアイテムをコピー
Alt+D (もしくは Ctrl+D)⇒ 表示中のアイテムを削除
Alt+W (もしくは Ctrl+W)⇒ .xml出力
Alt+R (もしくは Ctrl+R)⇒ .xml入力
F2,F3 ⇒ タブ画面の切り替え
F4〜F9 ⇒ リストビューの選択
リストビュー(オシレータGのツリービュー)選択時に
Ctrl+Q ⇒ 選択アイテムを(一括)コピー
Ctrl+D ⇒ 選択アイテムを(一括、ただし全てYesNo確認します)削除
チェックボックスでは、
Alt+[横にある数字] ⇒ そのチェックボックスがオン。
計算式入力テキストボックスでは
「無変換」「変換」「Ctrl+J」のどれか⇒ 入力補助コントロールの呼び出し
ここでは、計算式の入力方法について記述します。
シンプルです。EasyStockで用意された関数を、+や-などの「演算子」でつなぎ合せたものが「計算式」となります。
イメージとしては、Excelの関数(=SUM(“A1:A3”)など)に似ています。(一行表記する必要はありませんが)
例えば、close()という関数があったとします。(終値を表します)
5本単純移動平均線を出力したい場合は、計算式テキストボックス内に
ld_Sma(5, close())
と記述します。
高値と安値の平均を、5本単純移動平均線として出力したい場合は、
ld_Sma(5, (high()+low())/2)
と記述します。
なお、関数は特定の値型を返します。この値型には2種類あります。
数値型
1や、1.1などの数値を表す型です。
論理値型
trueもしくはfalseの2種類の値を返します。Trueは、条件が成り立ったとき、falseはそうでないときの意味です。
なお、ユーザインジケータの最終的な計算結果は、全て値型を返すように記述します。
(最終的な計算結果が 1はOKですが、 trueという論理値型は不可ということになります。また、計算式中に直接”true”や”false”を記載することはできません。)
以下に、EasyStockで用意されている組込み関数、及び演算子を記述します。
u 演算子 (全て半角表記となります)
算術演算子 (数値型 同士の演算に用います。 返す値は 数値型です)
表記 |
使用例 |
意味 |
+ |
1 + 2 |
左辺と右辺を足します。 |
- |
1 – 2 |
左辺から右辺を引きます。 |
* |
1 * 2 |
左辺と右辺をかけます。 |
/ |
1 / 2 |
左辺を右辺で割ります。 |
% |
1 % 2 |
左辺を右辺で割った余りを返します。 |
比較演算子 (数値型 同士の演算に用います。 返す値は 論理値型です)
表記 |
使用例 |
意味 |
== (=が二つ) |
1 == 1 |
左辺と右辺の値が等しいか判断します。等しい場合はtrueとなります。 |
> |
1 > 0 |
左辺が右辺「より大きいか」を判断します。 |
>= |
1 >= 2 |
左辺と右辺「以上か」を判断します。 |
< |
1 < 2 |
左辺を右辺「より小さいか」を判断します。 |
<= |
1<=2 |
左辺が右辺「以下か」を判断します。 |
!= |
1 != 0 |
左辺と右辺が等しくない場合はtrueです。 |
関係演算子 (論理値型 同士の演算に用います。 返す値は 論理値です。)
表記 |
使用例 |
意味 |
&& |
1>0 && 3>0 |
左辺と右辺が共にtrueの場合は true |
|| 「半角縦線が二つ」 |
1>0 || 3>0 |
左辺か右辺が成立する場合はtrue |
なお、演算子の優先順位は
算術演算子 > 比較演算子 > 関係演算子
となります。(左側にある演算子ほど、優先的に評価されます。)
u 組込み関数一覧 (全て半角表記となります)
表の各意味は次のとおりです。
表記 − 名前です。
返_引 − 返値と引数の関係を説明します。D1_DDなどと記載します。この記載の意味は
「_」(半角アンダーバー)の左側 - 英字は、この関数がどのような型の値を返すか示します。数値はこの関数の計算に少なくとも何本のローソク足が必要かを示します。
「_」の右側 – 英字の列は、この関数がどのような引数を必要とするかを示します。英字の数は何種類の引数を必要とするかを示します。記述がない場合は引数を必要としません。
例) D1_DD ならば、「この関数は計算にローソク足を一本以上使用します。また、引数は数値型が二つ必要です。」となります。
英字の意味
D = 数値を示します。
B = 論理値を示します。
I = 「期間」を示します。(1なら1本のローソク足、2なら2本のローソク足となります)
C = 「その他の数値」(整数など)を表します。
R = ケースバイケースで数値型や論理値型を表します。
+ = これは直前の英字が一つ以上必要なことを示します。(D+ならばDが一つ以上)
使用例 − 使用例です
説明 − この関数の説明です
なお、説明中に[0]や[1]などといった記載があります。これらは全て、この関数で使用する引数を表します。[0]ならば、一番左の引数[1]ならば、左から2番目の引数を表します。[]ならば、引数全体です。
なお、関数は全て 表記名+”(引数,引数…)” (( )は半角括弧)の形式で表記します。
※期間について
期間は全て、0より大きい正の整数値を表します。さらに現在のところ、関数値を期間として利用することはできません。例としては、 例えば ld_Smaという関数があります。これはある期間のn日単純移動平均を表します。このとき、n=1とすると、計算するローソク足のだけを用います。n=2とすると、そのローソク足と一つ前のローソク足を用います。
平均などの複数期間関数はこれで問題ないとは思いますが、一つ特殊な関数があります。
lr_ValueAtという関数です。これはこのローソクを含んで(n-1)本前のローソクを基本にして計算する関数です。つまり、n=1の場合はそのローソクの値を返します。n=2で初めて一つ前のローソク足を計算します。
言い換えると、「今のローソクを1本目として、右からn本目のローソク足で計算する」となります。
EasyStockでは、該当するローソクを1本目と数えるため、このような仕様なっています。
基本関数 (以下の値は全て、RSSより取得した値を用いて算出しています)
表記 |
返_引 |
使用例 |
説明 |
open |
D1_ |
open() |
該当ローソク足の始値です。 |
high |
D1_ |
high() |
高値 |
low |
D1_ |
low() |
安値 |
close |
D1_ |
close() |
終値 |
volume |
D1_ |
volume() |
出来高 |
voll |
D1_ |
voll() |
該当ローソク足時間内の買側出来高の合計値 (EasyStockで取得したデータがあることが前提となります。また、その売買が売りか買いかはEasyStockでRSSから取得したデータを元に独自算出しているため、正確性は保障いたしません) |
vols |
D1_ |
vols() |
該当ローソク足時間内の売側出来高の合計値 |
cntl |
D1_ |
cntl() |
該当ローソク足時間内の買件数合計 (EasyStockで取得したデータがあることが前提となります。また、その売買が売りか買いかはEasyStockでRSSから取得したデータを元に独自算出しているため、正確性は保障いたしません) |
cnts |
D1_ |
cnts() |
該当ローソク足時間内の売件数合計 |
vwap |
D1_ |
vwap() |
該当ローソク足時間内のVWAP |
論理関数
表記 |
返_引 |
使用例 |
説明 |
lb_And |
B1_B+ |
lb_And(1>0, 2>1, ,,,,,) |
引数同士の論理積を表します。 全ての引数が成り立つならtrueです。 && で連結した式と同等です。 |
lb_Or |
B1_B+ |
lb_Or(1>9,2>1,…) |
引数同士の論理輪です。 ||で連結した式と同等です。 |
lb_Andr |
B1_IB |
lb_Andr(5,open()>close()) |
[0]本分のローソク足で全ての[1]が成り立つ場合にtrue そうでない場合はfalse |
lb_Orr |
B1_ID |
lb_Orr(5,open()>close()) |
[0]本文のローソク足のいずれかで[1]が成り立つ場合にtrue そうでない場合はfalse |
lb_CmpGE |
B1_DD |
lb_CmpGE(open(),close()) |
[0] ≧ [1] かどうか |
lb_CmpGN |
B1_DD |
|
[0] > [1] かどうか |
lb_CmpIE |
B1_DDD |
lb_CmpIE(open(),1,100) |
[1] ≦ [0] ≦ [2] かどうか |
lb_CmpIN |
B1_DDD |
|
[1] < [0] < [2] かどうか |
lb_CmpOE |
B1_DDD |
|
[0] ≦ [1] または [2] ≦ [0]かどうか |
lb_CmpON |
B1_DDD |
|
[0] < [1] または [2] < [0]かどうか |
lr_If |
B1_BRR |
lr_If(open()>close(), high(), low()) |
条件分岐です [0]が成立するなら[1]をそうでないなら[2]を返します。 |
lr_IfRAnd |
R1_IBDD |
lr_IfRAnd(5, open()>close(), high(), low()) |
[0]本の足で、全ての[1]が成立するなら[2]を、そうでない場合は[3]を返します。 |
lr_IfROr |
R1_IBDD |
|
[0]本の足で、いずれかの[1]が成立するなら[2]を、そうでない場合は[3]を返します。 |
ld_Match |
D1_IB |
ld_Match(5,open() > close()) |
[0]の期間を最大検索足数として、現在の足から順に、最初[1]が成立するか検索します。返り値は、現在の足までの本数を返します。検索条件にマッチしない場合は0が返ります。
例えば検索条件[1]が open() > close()で、 最初に成立するのが一つ前の足ならば、返り値は2です。
|
数学関数
表記 |
返_引 |
使用例 |
説明 |
ld_Round |
D1_DD |
ld_Round(3, open()) |
[0]の桁(負なら小数点以下)で[1]を四捨五入します。
[0] が 3 [1]が1100のとき、返り値は1000です。 |
ld_Abs |
D1_D |
|
[0]の絶対値です |
ld_Sqrt |
D1_D |
|
[0]の平方根です |
ld_Pow |
D1_DD |
|
[0]を[1]乗した値です |
ld_Log |
D1_D |
|
[0]の自然対数です |
ld_Rand |
D1_DD |
|
[0]以上[1]未満の乱数値を返します。 |
統計関数(平均系は、既存テクニカル指標関数一覧です)
表記 |
返_引 |
使用例 |
説明 |
ld_MinNts |
D1_D+ |
ld_MinNts(open(), close()) |
[]の最小値 |
ld_MaxNts |
D1_D+ |
|
[]の最大値 |
ld_SumNts |
D1_D+ |
|
[]の和 |
ld_SumaNts |
D1_D+ |
|
[]の絶対値の和 |
ld_SumpNts |
D1_D+ |
|
[]のうち正の値の和 |
ld_SumnNts |
D1_D+ |
|
[]のうち負の値の和 |
ld_Min |
D1_ID |
|
[1]の[0]期間での最小値 |
ld_Max |
D1_ID |
|
[1]の[0]期間での最大値 |
ld_Sum |
D1_ID |
|
[1]の[0]期間での和 |
ld_Suma |
D1_ID |
|
[1]の[0]期間での絶対値の和 |
ld_Sump |
D1_ID |
|
[1]の[0]期間での正の値の和 |
ld_Sumn |
D1_ID |
|
[1]の[0]期間での負の値の和 |
ld_Stdev |
D1_ID |
|
[0]期間での[1]の標準偏差 (ただし、n-1の普遍分散の根) 普遍分散とは、標本数が少ない場合に用いる分散です。 (大まかには) |
ld_Norm |
D1_ID |
|
[0]期間での[1]の正規化値 正規化値 = (値−平均値)/標準偏差 |
ld_Kurt |
D1_ID |
|
[0]期間での[1]の尖度 ※数値の大きいほうが、裾野が広い ※Excel準拠。普遍分散系 |
ld_Skew |
D1_ID |
|
[0]期間での[1]の歪度 |
ld_CcPeason |
D1_IDD |
|
[0]期間での[1]と[2]とのピアソンの積率相関係数 |
ld_CcKendall |
D1_IDD |
|
[0]期間での[1]と[2]とのケンドールの順位相関係数 |
ld_VarRank |
D1_ID |
|
[1]の[0]期間での順位(最小が1、最大が[0])。ただし、同率順位がある場合は、(順位+(同率個数-1)/2) 順位が2位で同じ個数が2つある場合は2..5位 |
ld_ValueAt |
D1_ID |
|
今日を1本目とした[0]本前を基準値とした[1]を計算する 一つ前の足なら[0]は2と書く |
銘柄情報関数
表記 |
返_引 |
使用例 |
説明 |
ld_Unit |
D1_ |
|
計算対象銘柄の単位株数です |
ld_Yobine |
D1_D |
|
[0]の呼び値を返します |
ld_TickCount |
D1_DD |
ld_TickCount(100, 10) |
[0]から([0]+[1])円まで株価が変動した場合のティック数を返します。 |
ld_TickAmount |
D1_DD |
ld_TickAmount(100, 2) |
[0]円の株価に[1]ティック分加算(減産)した場合の株価を返します。 |
ld_FrucLimit |
D1_ |
|
一本前の終値から算出される制限値幅を返します |
ld_Ref |
D1_CD |
ld_(4755, close()) |
[1]の計算式を、[0]をコードにもつ銘柄で計算します
楽天なら [0]は4755です。 |
ld_I |
I1_ |
|
現在のインデックスを返します。 一番最初のローソク足が0です。 |
既存テクニカル指標系関数
表記 |
返_引 |
使用例 |
説明 |
ld_Sma |
D1_ID |
ld_Sma(5,close()) |
[1]の[0]期間における単純移動平均 |
ld_Wma |
D1_ID |
|
[1]の[0]期間における加重移動平均 |
ld_Ema |
D1_ID |
|
[1]の[0]期間における指数平滑移動平均 |
ld_Rma |
D1_ID |
|
[1]の[0]期間における修正移動平均 |
ld_Xma |
D1_IDD |
ls_Xma(25, close(), 0.3) |
[2]を今回の重みとした、[1]の[0]期間の平滑移動平均
ただし、[2]は0以上1以下 |
ld_Sars |
D1_IDDD |
ld_Sars( 1, 0, 0.02, 0.2, 0.02) |
SARS(パラボリック) [0]は未使用。1としてください。 [1]=初期状態で「高値・安値」との差分をいくらとするか [2]=AF初期値 [3]=AF最大値 [4]=AF増分 |
ld_SarsNaf |
D1_ID |
ld_Sars( 1,0,0.02,0.2, high()/low() – 1) |
SARS(パラボリック) 変形型 [0]は未使用。1としてください。 [1]=初期状態で「高値・安値」との差分をいくらとするか [2]=AF初期値 [3]=AF最大値 [4]=今回のAF (増分ではありません) |
ld_Cross |
D2_DD |
ld_Cross( ld_Sma(25,close()) ld_Sma(5,close()) ) |
[1]が[0]を今回「以上」になったら1。 [1]が[0]を今回「以下」になったら-1 それ以外は0です。 ゴールデンクロス等の判断に利用します。 |
ld_Atr |
D2_ |
|
真の値幅です |
ld_Pdm |
D2_ |
|
+DM |
ld_Mdm |
D2_ |
|
-DM |
ld_Pdi |
D2_I |
|
[0]期間の+DIです |
ld_Mdi |
D2_I |
|
[0]期間の-DIです |
ld_Mado |
D2_ |
|
前のローソクと、今回のローソクとの窓です |
ld_CmpNL |
D2_DD |
ld_CmpNL(close(),1) |
昨足の[0]より今足の[0]が、高いなら[1]を 低いなら-[1] 同じ0を返す。OVB等に利用できます。 |
ld_RegLine |
D1_IDC |
ld_RegLine(5,close(),0) |
[1]の[0]期間における回帰直線の各種値を返します。 パラメータは [2] = 0 → 傾きを返します [2]=1 → 回帰直線の現在値を返します [2]=2 → 回帰直線の現在値/現在の[1]を返します [2]=3 → 回帰係数を返します |
ここまで読んでいただいた方が恐らく感じるであろう一つの不安があると思います。
・複雑な計算式を書くと、括弧だらけになってしまうのでは…
ご安心ください。EasyEditorでは、これらの関数を用いた計算式を書く際に有用な記述方を用意しております。
この章で用いる変数と条件分岐は、全てEasyEditor上で計算式を記述する場合にのみ利用できる方法です。
xmlファイルに直接記述する場合はご利用いただけません。
EasyEditorでは、計算式の記述に変数や条件分岐構文を利用することが可能です。
以下は一例です。
[計算式を入力するテキストボックス内にて]
$span = 25; $val = close(); $ma = ld_Wma($span, $val);
#
if ($val > $ma_val){ return 1; } else { return 0; } |
(赤字は、ポイントを目立たせるためだけで、文法上の意味はありません)
perlなど、C系の言語を扱う方には分かりやすいかもしれませんんが、以下説明文です。
u 変数設定フィールド
テキストボックス内に、「#」(半角)を記述すると、それより上(前)のフィールドは変数設定フィールドとなります。
ここで変数を記述します。
記述方法は、
$変数名 = 値;(セミコロン) (「$」を付けた単語が[変数] 「=」で区切って 「;」までが[値]となります。)
となります。
フィールド上では複数の変数を設定できます。
ただし、変数は「上から順に有効に」なります。
記述した次の行(正確には;以降)から、その変数が有効となります。
次のような使い方も可能です。
$val = close(); $ma = ld_Wma;
$maclose = $ma(25,$val); |
この場合、$macloseは ld_Wma(25,close())と同値になります。
C#で言うなら、デリゲード的に使えるわけです。
u 実体フィールド
「#」以下は「実体フィールド」と名づけます。
一番最初に上げた例を、下にもう一度記載します。
$span = 25; $val = close(); $ma = ld_Wma($span, $val);
#
if ($val > $ma_val){ return 1; } else { return 0; } |
これでいう、「if」以下です。
ここには、最初に挙げたEasyStock文法規則の原則である
このインジケータが出力する、関数や変数、数値を、+や-などの演算子でつなぎ合せた「計算式」
を記載します。計算式本体です。
なお、文中にreturn と ; が記載されていますが、これはxmlへ変換する際には空白に変換されますので
記述してもしなくても構いません。
if () { } else { }については次に記載します。
u 条件分岐
複雑な計算式を設計すると、どうしても関数表記は見難くなってしまいます。
一つは変数設定で簡略化、部分化することができますが、もう一つの文法を用意しました。
プログラムを記述される型にはおなじみのif分岐です。
条件によって、異なる出力値を決定したい場合に使用します。
(これは、組込み関数lr_Ifと同義であり、xml出力時にはlr_If分へ変換されます)
許される記述方法は、現在のところ次の一点のみです。
if ( 条件 ) {
成立した場合の値。
} else {
不成立の場合の値。
}
}else if() { や }elsif(){ に相当するものはまだありません。
u 作成インジケータの引用方法
前述しましたが、EasyStockでは作成したインジケータ、ユーザ関数&定数を他のインジケータ内で引用することが可能です。
ここで注意点があります。
あるインジケータ計算式で、他の作成済みインジケータを引用する場合
「引用するインジケータの名前」+「_数字」+「(〜)」として下さい。数字は系列番号です。
例) prc_Wma_1() とか osc_Rsa_2() とか 系列番号なので1〜12
オートコンプリート機能で、「引用するインジケータの名前」は入力補助されますが、「_数字」部分は現在補助されません。
もし「_数字」をつけない場合は、呼び出すインジケータにパラメータを渡す場合です。
例えば、testというインジケータがあったとします。
このtestが
@1@ + @2@ という値を出力するとします。(@1@,@2@はパラメータの表記方法です)
testの系列1で @1@=5; @2@=4;と指定されていた場合に、test_1()と記述すれば
5+4という出力値を得ることができます。
しかし、test()と記述した場合は出力値を得られずエラーとなります。
そこで、test(1,2)と記述してみます。
すると、このtest(1,2)からは、1+2という出力値が得られることとなります。
さらに注意点があります。
EasyEditorでは、リストビューにチェックが付いたアイテム、及び「線の種類」が「無し」のアイテムをEasyStockが読み込む.xmlファイルに出力しません。
(これは、EasyStock内でのメモリ使用量を抑えるためでもあります。 EasyStockでは、計算の高速化のために平均値などの算出にはバッファを利用しています。そのため、インジケータの使用種類が増えるほど、バッファの枠が必要となるためです)
そのため例えば、 あるインジケータで「prc_Wma_12()」と引用しているが「prc_Wma」の系列12が非出力指定となっている場合は、EasyStock本体側でエラーとなります。
u 四則演算、マイナス表記について
計算式の作成で当然利用するのが マイナス数値です。 (-1とか-2とか)
EasyStockでは現在、 このマイナス数値と演算子の「-」の区別が曖昧な状態となっています。そのため、結果が正しく得られないばかりかxmlファイルを読み込めない可能性もあります。
マイナス数値を記載する際には必ず、 (0 – 数値)として下さい。
なお、演算子としての-は通常通り機能しますので 2 – 3という表記は問題ありません。