関数とアノテーション関数

From TradingView Wiki
Jump to: navigation, search
Language: English  • 日本語 • Русский

Pineは、演算子のほか、関数とアノテーション関数も持っています。このマニュアルではアノテーション関数を、時々簡潔にするために、単にアノテーションとして参照しています。関数とアノテーション関数は構文的には類似していますが(いくつかの相違点はこの後解説します)、用途や使用方法が異なります。

関数は値の計算に使用され常に結果を返します。関数には付随する効果はありません。関数は演算子と共に式で呼び出されます。基本的に関数は計算アルゴリズムを定義します。関数にはビルトイン関数と(ユーザー定義の)カスタム関数があります。smaemaiffはビルトイン関数の例です。

アノテーション関数は(付随効果もある)インジケーターのメタ情報の定義に使用されます。すべてのアノテーションはビルトインです。

アノテーションは

  • インジケータに名前を割り当てます
  • 入出力変数の定義。デフォルトでは入力変数には名前とデフォルトの値を割り当てることができます。出力変数はグラフや他のレイアウトとしてチャートに表示されます。
  • いくつかの他の視覚的効果(例. 背景色)

名前、色、およびチャートの各表示スタイルはアノテーションで決定されます。アノテーション関数の例には、studyinputplotがあります。

いくつかのアノテーションは(メタ情報の定義による)付随する効果があるだけでなく結果も返します。「Plot」と「hline」はそのようなアノテーションです。ただしこの結果は他のアノテーションでのみ使用でき、インジケータの計算には使用できません(詳細はアノテーション "fill"を参照してください)。

スクリプト内での使用において、ユーザー定義関数、ビルトイン関数、およびアノテーション関数は構文的に似ています。関数またはアノテーションを使用するには、名前と引数のリストを括弧で囲んで指定する必要があります。主な違いは用途です。

また、引数の渡し方にも違いがあります。アノテーションや組み込み関数はキーワード引数を受け入れますが、ユーザー定義関数では使用できません(リリースノート: すべてのビルトイン関数でのキーワード引数の構文を参照)。

関数の呼び出しでは、引数を位置(引数順序)だけで渡すことができます。ほとんどのプログラミング言語では、引数を渡す唯一の方法です。しかし関数アノテーションではキーワード引数で呼び出すこともできます。また一部の引数のみを指定することが可能です。残りの引数にはデフォルト値が設定されます。以下を比較してください。

引数順序だけで渡す場合

study('Example', 'Ex', true)

とキーワード引数で渡す場合

study(title=Example, shorttitle=Ex, overlay=true)

引数順序とキーワード引数の混在が可能です。ただしキーワード引数よりも引数の順序が優先されます。ですから次の呼び出しは有効ではありません。

study(precision=3, Example)

前の項目: 演算子, 次の項目: 式、変数定義、文, メニューに戻る: Pineスクリプトチュートリアル