Pineスクリプト®でオブジェクトが扱えます

12 14, 2022

Pineスクリプト®は、プログラミング言語を使用してトレーダーが独自のトレードモデルを構築できるようにすることを目的として、2013年に初めてリリースされたものです。その時はRSIのラインを計算してプロットを行うということが一大事という、実にささやかな始まりでしたが、皆様からのご提案のおかげでこの言語は着実に進化しています。より良いバックテスト、トレーディングボットのアラート、ビジュアルの改善、入力の柔軟性、優れた編集機能、ライブラリ、配列や行列などの高度なデータ構造など、このスクリプトに可能なことが格段に増えました。2年前にPineが進化を続けているとお伝えしたのは、決して冗談ではなかったわけです。

Pineオブジェクトは、typeキーワードを使って宣言された新しいユーザー定義の複合型(UDT)をインスタンス化したものです。経験豊富なプログラマーであれば、UDTをメソッドのないクラスと考えることができます。

ピボット・データを追跡するために、pivotTimepivotLevelなどの独立した変数を使用する代わりに、これらの値を保持する2つのフィールドを持つpivotPoint型を定義できるようになりました。

type pivotPoint
    int openTime
    float level

この後で new() コンストラクタを使用して、その型の新しいオブジェクトを作成できます:

newPivot = pivotPoint.new(time, high)

ドット記法でオブジェクトのフィールドを参照します:

label.new(newPivot.openTime, newPivot.level, str.tostring(newPivot.level), xloc.bar_time)

オブジェクトの配列や行列は、UDTで構築したタイプテンプレートを使って定義することもできます:

pivotArray = array.new<pivotPoint>()

オブジェクトは、他のすべてのPineの機能と組み合わせて使うことができます。ライブラリからユーザー定義型をエクスポートしたり、request.security()関数からオブジェクトをリクエストするなどです。例えば、従来は10個の値のタプルを返していた関数が、10個のフィールドを含む1つのオブジェクトを返すことができるようになります。

新機能の詳細については、ユーザーマニュアルのオブジェクトのページに記載されています。

以下のスクリプトで使用されているオブジェクトをご覧ください:

HeWhoMustNotBeNamedによるElectrocardiogram Chart indicator:

TradingViewによるZigZagライブラリ、およびそれを使用するために修正された内蔵のZigZagインジケーター:

Pineスクリプト™の新機能については、ユーザーマニュアルのユーザーマニュアルのリリースノートでご確認ください。また、 PineCodersのアカウントではTelegramのSquawk BoxTwitter、TradingViewのPineScript® Q&Aの公開チャットから最新情報を発信しています。

ご要望の多かったこの機能をご活用いただければ幸いです。引き続き、ご意見やご要望をお寄せください。私たちは皆様のためにTradingViewを構築しており、皆様からのご意見を常にお待ちしております。

Look first Then leap

あなたのためのTradingView、その最高の機能を最大限にご活用ください
チャートを起動