見出し画像

Pineスクリプトv5 練習④-1

今回はライブラリの作成です。

画像
新規ライブラリの作成

【Pine エディタ】画面で[開く]から[ライブラリ]を選択します。

画像
ライブラリの雛形

ライブラリの雛形が表示されます。

001 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
002 // © Tommy_Rich
003 
004 //@version=5
005 
006 // @description TODO: add library description here
007 library("MyLibrary")
008 
009 // @function TODO: add function description here
010 // @param x TODO: add parameter x description here
011 // @returns TODO: add what function returns
012 export fun(float x) =>
013     //TODO : add function body and return value here
014     x

雛形の解説

    7行目 ライブラリの名前を指定します。
 9~11行目 // スラッシュ2つ続けると、その行はコメント行に
        なります。
        // @function 関数の説明を記述します。
        // @param x パラメーター「x」の説明を記述します。
        // @returns 関数の戻り値を記述します。
   12行目 export:ライブラリをインポートしたスクリプト
        から呼び出す関数の前に記述します。

テスト用の関数作成

さて、実際に関数を記述していきましょう。
今回は「数値を渡すと色を返す」関数と「文字列を渡すと、テーブル位置の定数を返す」関数を作成します。

001 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
002 // c Tommy_Rich
003 
004 //@version=5
005 
006 // @description TODO: add library description here
007 library("Base_Test")
008 
009 // @function TODO: Function to take out 12 colors in order
010 // @param _Index TODO: color number.
011 // @returns TODO: color code
012 export GetColor(
013   int _Index) =>
014 
015     int count =_Index % 12
016     color ret =switch count
017         0  =>#ffbf7f
018         1  =>#bf7fff
019         2  =>#7fffbf
020         3  =>#ff7f7f
021         4  =>#7f7fff
022         5  =>#7fff7f
023         6  =>#ff7fbf
024         7  =>#7fbfff
025         8  =>#bfff7f
026         9  =>#ff7fff
027         10 =>#7fffff
028         11 =>#ffff7f
029 
030 // @function TODO: Table display position function
031 // @param _Pos TODO: position.
032 // @returns TODO: Table position
033 export Tbl_position(
034   string _Pos) =>
035 
036     string ret =switch _Pos
037         "top_left" => position.top_left
038         "top_center" => position.top_center
039         "top_right" => position.top_right
040         "middle_left" => position.middle_left
041         "middle_center" => position.middle_center
042         "middle_right" => position.middle_right
043         "bottom_left" => position.bottom_left
044         "bottom_center" => position.bottom_center
045         "bottom_right" => position.bottom_right

ライブラリ名の変更
    7行目 Base_Testに変更します。

GetColor関数
 (「数値を渡すと色を返す」関数を作成します)
   12行目 GetColor関数 exportを付けて宣言し、外部のスクリプト
        から参照できるようにします。
   13行目 引数 _Index:int型の数値を指定します。
   15行目 int型の「_count」変数の宣言
        初期値に、_Indexを12で割った余りを代入します。
16~28行目 color型の変数「ret」に、「_count」変数によって、
        12色のうちのどれか1色がセットされます。

Tbl_position関数
 (文字列を渡すと、テーブル位置の定数を返す」関数を作成します)
   33行目 Tbl_position関数 exportを付けて宣言し、外部の
        スクリプトから参照できるようにします。
   34行目 引数 _Pos:string型の数値を指定します。
36~45行目 string型の変数「ret」に、「_Pos」引数によって、
        テーブル位置定数がセットされます。

画像
スクリプトを保存します。

【保存】をクリックして、スクリプトを保存します。
エラーが発生した場合は画面下部にメッセージが表示されますので、
修正してから再度【保存】をクリックしてください。

画像
チャートに追加します。

【チャートに追加】をクリックしてチャート上にスクリプトを追加します。

画像
チャートに追加されました。

チャートの下半分の位置に追加されます。ライブラリなので、何も表示はされません。右下の【スクリプト公開】をクリックします。

画像
ライブラリを投稿①

【タイトルと説明】

ライブラリの投稿画面が開きます。タイトルにはライブラリ名がデフォルトで入力されていると思います。説明の部分にも自動で関数の説明が入力されます。今回はこのまま投稿してみます。

【プライバシー設定】

右側のプライバシー設定で【公開】を選択すると、TradingViewを利用している全ての人が参照可能な状態になります。【プライベート】を選択すると、自分とこのライブラリのリンクを知っている人だけが参照可能なライブラリとして投稿されます。今回は【プライベート】で投稿します。

【カテゴリ】

投稿するライブラリのカテゴリを選択します。クリックすると、あらかじめ設定してあるカテゴリーの一覧が表示されます

画像
カテゴリー

今回はこの中から、「カラー」と「ディスプレイ」を選択しました。

画像
ライブラリを投稿②

【ライブラリを投稿】

【プライベートライブラリを投稿】をクリックして、ライブラリを公開します。

画像
ライブラリ公開①

公開直後の画面です。下の方にスクロールします。

画像
ライブラリ公開②

【このライブラリを使用したいですか?】の部分に注目します。

以下の行をコピーして、スクリプト内に貼り付けてください。
 import Tommy_Rich/Base_Test/1

と書かれています。これを利用する側のスクリプトに記述することでライブラリが利用出来るようになります。

「import Tommy_Rich/Base_Test/1」の右のボタンをクリックすると、この文字列がクリップボードにコピーされます。

次回、「Pineスクリプトv5 練習④-2」で実際にライブラリを利用してみます。

この記事が気に入ったらサポートをしてみませんか?

コメント

コメントを投稿するには、 ログイン または 会員登録 をする必要があります。
Pineスクリプトv5 練習④-1|Tommy_Rich
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1