トレーダー初心者こそPineスクリプトを覚えるべき3つの理由

Pine Script入門

『Pineスクリプト』という言葉を耳にしたことがあっても「何ができるのか」、「何のために必要なのか」がわからなくて、なんとなく敬遠しているトレーダーの方は多いと思います。
しかし私はトレーダーの方、特にトレード初心者の方はPineスクリプトを覚えるべきだと考えています。

この記事ではその理由について説明していきます。
さらに、この記事を読んでPineスクリプトを勉強したいと思った方向けにその勉強法を紹介したいと思います。


この記事を読み終えた後には、Pineスクリプトを覚えるとなにができて、どうして覚えるべきなのかがお分かりいただけると思います。

スポンサーリンク

Pineスクリプトとは

Pineスクリプトとは、チャートツール「Trading view」でインジケータやストラテジー(トレード手法)を作成する時に使うプログラミング言語です。

TradingView – すべての市場を追跡
世界中の人々が市場をチャート化して、チャット、トレードを行う場所です。トレーダーと投資家の為のスーパーチャートプラットフォームとSNSを提供しています。ご登録は無料です。


Pineスクリプトを使うことで、公式には提供されていないインジケータを作成し、チャートに表示することができるようになります。

例えば、私は出来高にボリンジャーバンドを表示し、他と比べて出来高が異常に多い場所をビジュアライズするインジケータを作成し、使っていました。

出来高の黒ラインがボリンジャーバンド


他にもストラテジーというものを作成することができます。
ストラテジーというのは、エントリーとクローズの条件を指定することで、チャート上にその条件が当てはまった場所を表示することができるものです。

チャート上の青矢印/赤矢印がエントリー場所。紫矢印がクローズ場所。


このように、Pineスクリプトを使ってインジケータやストラテジーを作成することで自分のアイデアをチャート上に表現できるようになります。


では、Pineスクリプトが何かわかったところで私が、トレーダー初心者がPineスクリプトを勉強すべきと考えている理由について説明していきます。

理由1:バックテストを自動化できる

私がPineスクリプトを覚えるべきと考えている理由1つめは、「バックテストを自動化できるようになる」からです。


先ほどのPineスクリプトの説明で出てきた『ストラテジー』というものを作成することでバックテストを行うことができます。


バックテストというのは、いわゆる検証と呼ばれているものです。
試したい手法を過去のチャートに当てはめた時に、

  • 取引回数は何回か
  • 勝率はどのくらいか
  • どれだけ利益/損失になったか
  • 運用中の最大損失割合(最大ドローダウン)はどれくらいか

という手法の成績を確認する作業のことです。

これを行わなければ自分の考えた手法が有効なのか。どれほど利益が見込めそうなのかを判断することができません。
なので、何かの手法を使ってトレードする際には必ず必要な作業になります。


バックテストは主に手作業かバックテストツールを使って実施することになります。
Trading viewでは、ストラテジーを作成することで、バックテストツールとしても使用することができます。実際のバックテストの画面はこのようになります。

これは 2016/01/01 から 2020/07/31 までの期間に私の手法の1つを当てはめた場合の成績を表しています。


もしこれを手作業で確認しようとした場合、

3(本/1日) × 365(日/年) × 4(年) + 3(本/1日) × 212(日) = 約5000本

のローソク足を見て in/out を確認し、それぞれの取引を集計して各指標を計算する必要があります。


これはあまり現実的ではありません。
さらに、もしパラメータを1つでも変えた場合にはもう一度同じ作業を行う必要があります。

しかしPineスクリプトでストラテジーを作成すれば、そのパラメータ値を変えるだけで簡単に変更後の成績を見ることができます。

手作業とバックテストツールのどちらでバックテストを行うべきかは明確だと思います。


「別にTrading viewじゃなくても別のバックテストツールを使えばいいじゃないか」と言う人もいるかもしれません。
しかしTrading viewのストラテジーはチャートに追加するだけでその手法の in/out を表示することができるので、初心者の方は他のバックテストツールよりPineスクリプトを学ぶべきだと思います。

理由2:手法を定義することを強制される

私がPineスクリプトを覚えるべきと考えている理由2つめは、「手法を定義することを強制される」からです。

手法を定義することで2つのメリットがあると思います。

  1. 再現性の確保
  2. ルールに従ったトレード


まず再現性の確保についてです。

トレードする上で必要なトレード手法を構築するにあたり、Pineスクリプトでストラテジーを作成することによって、手法をロジックで定義する必要があります。
その結果、手法から曖昧さをなくすことができます。

曖昧さのある手法だとその時々によって判断が変わる可能性があります。
しかし、定義された手法であればいつでも判断は変わりません。そのため、手法の再現性が確保されます。


続いて、ルールに従ったトレードについてです。

トレーダーであれば手法に従ってトレードすることの重要さは理解していると思います。
しかし言うのは簡単でも行うのは難しいことも知っていると思います。それは初心者トレーダーであればなおのことです。

私はこのルールに従うことの難しさの一因として、トレード手法に曖昧さが含まれることが関係していると思います。

判断にブレが生じる余地があるからこそ、チャートを都合のいいように解釈し、結果として本来するべきトレードから離れていきます。
その結果、損失をどんどん膨らませていき、負けてしまいます。


トレード手法を構築するときにストラテジーとして定義することで判断がブレる余地がなくなり、結果としてルールに忠実なトレードをできるようになります。


このようにトレード手法を定義することで、

  1. 再現性の確保
  2. ルールに従ったトレード

というメリットがあると考えています。

理由3:システムトレード化可能になる

私がPineスクリプトを覚えるべきと考える理由3つめは、「システムトレード化が可能になる」からです。
正確に言うならば、「より簡単にシステムトレード化できる」からです。


システムトレードのプログラム(以下、Bot)を作るには大きく以下の2つが必要です。

  1. 手法に依らない共通の処理(注文する処理、価格データを取得する処理など)
  2. 手法独自の処理(エントリーの条件を判定するなど)

1 については1度作ってしまえば基本的には使い回せます。
例えば価格取得の処理では、取得する本数や時間足などのパラメータを書き替えるだけで各Botで使いまわせると思います。


しかし 2 についてはそれぞれの手法で異なるので作り直す必要があります。

ここで、ストラテジーを作ってバックテストを行っていた場合、Pineスクリプトで作った処理を自分が使うプログラミング言語で書き替えるだけで済みます。

またこちらの記事ではストラテジーをそのままBotに応用する方法も紹介しています。

TradingViewのストラテジーで自動売買する方法(BitFlyer,Bybit)|ねくすこ|note
ねくすこです。(@tenten1091) 本日は、TradingViewのストラテジー通りに自動売買を行う方法を Pythonを使った例で紹介します。 ※更新履歴 ◆2020/04/30Bybit取引所に対応 ◆2020/05/19アラート受信方式にWebSocketを追加 ◆2020/06/07 ストラテジーアラ...

このようにストラテジーを作っておくことで、システムトレードへの移行もスムーズになります。

それでも他のトレーダーが覚えない理由

これだけのメリットがあるのになぜPineスクリプトを勉強しないトレーダーが多いのでしょうか?彼らがなまけているからでしょうか?

いえ、Twitterを見る限り、どのトレーダーも毎日熱心に勉強しているように見えます。
ではなぜなのでしょうか?


私は「プログラミング = 難しそう」という思い込みが最大の原因なのではないかと思っています。

プログラミングといえば、こんな風に黒い画面によくわからない文字がずらずら並んでいて、想像するだけで悪寒が走る!なんて思っていませんか?

わかります。私も自分が勉強する前はそうでしたから笑

ですが、それは思い込みです。

Pineスクリプトは他のプログラミング言語と比べると非常に学習コストが低いと思います。
ロジックの複雑さによりますが、基本的にコードをたくさん書く必要はありません。


基本的なインジケータであれば自分で計算処理を書かなくても使えるようになっています。
例えば、SMAの14期間を使いたいのであれば、

sma(close, 14)

と、書くだけです。


下の画像はストラテジーを新規作成すると表示されるサンプルのスクリプトです。
ロジックの内容は 14 期間SMA と 28 期間SMA のゴールデンクロス/デットクロスでエントリーするシンプルなものです。

赤い四角枠の中がストラテジーのコードなんですが、わずか7行だけです。
これだけしか書いていませんが、過去チャートに照らし合わせた時の成績をすぐに表示できます。

何気に爆勝ちしてる。。笑


先ほどのサンプルコードを少し変えるだけでもオリジナルのストラテジーを作成することができます。

どうでしょうか?
実際のコードを見る前にイメージしてたものよりはかなり簡単そうなのではないでしょうか?


もちろん覚えることは少なからずあります。
しかし今まで説明してきたメリットを考えると、学習に対するコストパフォーマンスはとんでもなく優れていることはわかっていただけたかと思います。

Pineスクリプトを覚えるには

では、Pineスクリプトを覚えるにはどうすればよいのでしょうか?
本業でエンジニアをやっている方であれば

「公式ドキュメントを読め。大体のことは書いてある。」

で問題ないのですが、
プログラミング未経験者の方はドキュメントを見てもナンノコッチャだと思います。

Pineスクリプト言語リファレンスマニュアル


なのでこのブログではプログラミングをやったことがないトレーダーの方向けに、プログラミングの基本のキから自分でストラテジーを作成するのに必要な知識までを、自分で作って動かしながら学べる記事を書いていきたいと思います。

こちらのカテゴリーの記事読みながらPineスクリプトを学び、
あなたのアイデアを独自のインジケータやストラテジーとして表現できるようになっていただければと思います。

まとめ

  1. バックテストを自動化できる
  2. 手法を定義することを強制される(再現性/ルール遵守)
  3. システムトレード化可能になる

この記事では上の3つの理由をもとに、トレーダーはなぜPineスクリプトを学ぶべきかについて説明してきました。

これまでの説明でPineスクリプトがトレードをするにあたってどれだけ便利で、強力な武器になるかということがお分かりいただけたかと思います。


そして、勘のいい方であればお気づきかもしれませんが、ここまで説明してきた流れを見ると、

  1. バックテストを自動化できる → 手法構築
  2. 手法を定義することを強制される(再現性/ルール遵守) → 手法運用
  3. システムトレード化可能になる → Bot化

というように、まさにトレーダーの揺り籠から墓場までPineスクリプトは役に立ちます。

なのでぜひこの記事を機会にPineスクリプトの学習を始めていただけたら嬉しいです。


プログラミング初心者の人はまず入門1の記事から。


すぐにPineスクリプトの内容に入れる人は入門3の記事から。


プログラミング初心者がPineスクリプトを書けるようになるよう基礎から少しずつ難易度をあげるような構成になってるのでぜひ読んでみてください。


また、FTXという海外の仮想通貨取引所に Quant Zone という誰でも自動売買botを作れるサービスがあります。

真似をすればプログラミング初心者でもBot開発ができるように丁寧に使い方を解説してみましたので、合わせて読んでみてください。


記事としてなにか取り上げて欲しいトピックやPineスクリプトでわからないところ等ありましたら質問箱に投稿してもらえたらと思います。

匿名で聞けちゃう!けいと@独学エンジニアさんの質問箱です
3年目エンジニア🖥 Go言語で実装した自動売買Bot稼働💰💰 今はブログ制作中 #ブログ制作ダイアリー #セルフ辞書



今回はここまでです。お疲れ様でした。

タイトルとURLをコピーしました