2020-08-09

【Pine】Strategyからアラートを送る方法【Trading View】

いままでstrategy系のPineスクリプトからは直接アラートが使えず、studyへ変換する作業が必要だった。一部制限はあるがstrategyからも使えるようになったので解説する。

Article Image

以前はストラテジからアラートが使えなかった

Strategy Alerts — TradingView

以前のTrading ViewではStrategyからはアラートを設定できずアラート用のインジケータスクリプト(study)と分けて制作しなければならなかった。

次の記事にて公開と思われるので2020/06/03~使用ができることになっていると思われる。

Strategy Alerts Are Live Now – TradingView Blog

注意:アラートのタイミングがコントロールできない

予め覚えておきたいのはストラテジーアラートはアラートを発射するタイミングをコントロールできない。

studyによるスクリプトであればalertconditionという関数を利用して第一引数にtrueを入れたタイミングでアラートをしかけることができた。

Strategy Alertsではストラテジ内で約定があったタイミングで発射される。

不便そうではあるが、もともとストラテジにアラートを仕掛けたいということはエントリーのタイミングを知りたい目的なので十分だろう。

ストラテジアラートを使うには

alertconditionのような特別な関数を追加する必要はない。

まずはチャートにストラテジが追加されていることを確認したら

image-20200801215810520

  1. 右側のアラートボタンでアラートウィンドウを表示
  2. アラートを設定をクリック

これでアラートを作成するウィンドウが現れるので

条件のプルダウンメニューを開くと追加していたストラテジの名前が入っているので選択する。

image-20200801220036572

あとはアラートアクションからメールを送るなり、Webhookに送るなり送信先を設定し

image-20200801220226660

実際に送信するメッセージを書いていくだけだ。

「ポップアップに表示」はTradingViewを表示している画面にポップアップするだけなのでTVを閉じてしまうと無効。

「アプリに通知」はケータイアプリに送信する機能だそう。

Webhookは少し難しいのでここでは省略。

メッセージの{{ }}はなに?

メッセージの中に{{ }}で囲まれている文字はどういう意味があるのだろうか。

実はここに予め予約されている変数を入れる事ができる。

これをプレースホルダーと呼ぶそう。

より詳しい情報ははてなマークをクリックすれば良い。

image-20200801220753373

Strategy Alert限定:{{strategy.~~~}}

頭にstrategyがついているものはStrategy Alertでのみ使用可能。

次によく使いそうなものを列挙する。

{{strategy.position_size}}

エントリー後に自分が保持しているトータルのポジションサイズ。

ロング中ならプラス、ショート中ならマイナスになるので注意。

例えば、現在1ロットロング中でストラテジ内でショートが2約定した場合

1 - 2position_size-1 となる。

image-20200802213908593

{{strategy.order.contracts}}

注文されたサイズ。

上のposition_sizeとの混乱に注意。

position_sizeが自分が現在保持しているサイズであるのに対して

order.contractsは発注されたサイズである。

例えば上の例:現在1ロング保持中にストラテジ内でショートが2約定した場合

order.contractsには2position_sizeには-1が入る。

-2ではないので注意。

ショートが2ロット約定したよという意味。

image-20200802213952209

{{strategy.order.action}}

これは対象のオーダーがbuysellだけ。わかりやすい。

image-20200802214017786

{{strategy.market_position}}

現在のポジション。

こちらはlong, short, flat(つまりノーポジ)の3種類が入る。

こちらはオーダーが通った後のトータルポジションがロングなのかショートなのかノーポジなのかを表示する。

order.actionは約定したオーダー単体がロングなのかショートなのかなので、混同しないように。

これを使わなくてもposition_sizeからも判断できるので好きな方を使えば良い(数字がプラスならロング、マイナスならショート、0ならノーポジ)

image-20200802214040873

{{strategy.order.price}}

こちらもシンプル。

約定した価格が入る。

ストラテジの設定から手数料やスリッページを設定したら送らてくるデータが変化するかとテストしたが、どうやら設定に関わらず約定したポイントの価格が送られてくる模様。

image-20200802214209577

ほか省略

他にも色々あるがマニアックで使わなそうなので省略。

より複雑なストラテジアラートを作ってみたい場合はアラートを仕掛ける画面のはてなマークから詳細を読むと良い。

ちなみに日本語で読める。

image-20200801220753373

注意:Security関数に注意?

バグかどうか定かではないがSecurity関数を使ったストラテジは相変わらずアラートに不具合が発生する傾向があるようだ。

送られてこなかったり、二重になったり...?

まだ確実に再現できるわけではないが一応頭の片隅に入れておいたほうが良いかと思う。

Security関数を使っているものに関しては相変わらずstudyへ変換するのが今の所ベターかもしれない。

さいごに

ストラテジから直接アラートが発射できるようになったため手動でもBOTでもトレードがやりやすくなったはずだ。

今回紹介しなかった{{ stratesy. ~~ }}系のコードに関しても有用な使い方を発見したらまた記事にしたい。



この記事のタグ

この記事をシェア


謎の技術研究部 (謎技研)