またろうのシストレブログ

マネックス証券が提供しているトレードステーションと、MT4などシストレ関連について色々書きます。株と自動売買、EasyLanguageについても。

上昇・下降出来高を分けて表示するインジケーターを作って分かった驚愕の事実



ワークスペースにチャート分析を入れ込むと
デフォルトの設定として売買高のインジケーターが設定されます。

f:id:tsukinowaapp:20180713182033p:plain

売買高というのは出来高とイコールなのですが
出来高というのは売り気配に買いをぶつける「上昇出来高」と
買い気配に売りをぶつける「下降出来高」があります。
デフォルトで表示される売買高インジケーターではそれが分からないので
お手製インジケーターを作ってみます。

コーディングとしてはたった3行の簡素なものです。

上昇・下降出来高インジケーター

Plot1(UPTICKS,"UpTicks", Magenta);
Plot2(-DOWNTICKS,"DownTicks", Cyan);
Plot3(0,"ZERO", White);

「分析テクニックの設定」→作成したインジケーターを選択して「設定」→「スタイル」タブをクリック
UpTicksとDownTicksのタイプを「ヒストグラム」に変更
ZEROの「現在値を表示」チェックを外す

f:id:tsukinowaapp:20180713184107p:plain

下降出来高をマイナスにすることで
中央のゼロラインを軸にして上下に出来高を表示する感じにしました。

DownTicksの謎

日中足(分足や秒足)ならこれで問題ないのです。

f:id:tsukinowaapp:20180713200528p:plain

ポップの表示も

f:id:tsukinowaapp:20180713205722p:plain

問題ないですね。

しかしこれを日足にすると...

f:id:tsukinowaapp:20180713200614p:plain

あるぇ~?

ちなみに、アプリを立ち上げた直後はこんな表示ですが
f:id:tsukinowaapp:20180713184943p:plain

一旦別の銘柄コードを入力してから戻すとこんな表示に...
f:id:tsukinowaapp:20180713194148p:plain

ちなみに新しく作ったインジケーターの表示と比較すると...
f:id:tsukinowaapp:20180713201306p:plain

売買高のコードを見てみましょう。

if BarType >= 2 and BarType < 5 then { Daily, Weekly, or Monthly bars }
	AnyVol = Volume 
else 
	AnyVol = Ticks;

現物のコードで19行目からです。
BarType は予約語で、この数字で現在の足種の設定を取得できます。
ヘルプを見ると

0 = ティック足
1 = Minute
2 = 日
3 = 週
4 = 月
5 = ポイントアンドフィギュア
6 = (予約済み)
7 = (予約済み)
8 = カギ足
9 = KASE
10 = 新値足
11 = モメンタム
12 = レンジ
13 = 練行足
14 = 秒

つまり2~4で日足~月足はVolume を参照して、それ以外はTicksを参照する作りになっています。
TicksはUpTicksとDownTicksの合計値です。なので日中足は問題ないです。

で、日足~月足にするとですが...

UpTicks は Volume と同値
DownTicks は 売買代金(千円)
になるってことです。

ちなみに売買代金というインジケーターがあるので比較してみます。

f:id:tsukinowaapp:20180713202857p:plain

一緒ですね。

実際に日足で(DownTicks * 1000) / UpTicks で計算すると、その日に取引された株価の平均値になる筈です。
つまりVWAPだこれ!(驚愕の事実)

ちなみに売買代金インジケーターでは、内部的にはTurnoverという予約語を使っています。
(ヘルプにも載っていない謎の予約語...)
日中足でもこれを使えばVWAP出せるんじゃないの?って思ったのですが
なんとこれ
Turnover = DownTicks
(日中足で使うと下降出来高になる)
でした。

_(┐「ε:)_