記事一覧
Pine Script™ (v5) の覚書 - 作ってみる:日足と週足と月足を描くインジケータの作成 (3)
前回までの話
線の太さ(週足、月足用)、色を設定する線の太さを設定する。デフォルトは4、min-maxは1-4
width = input.int(4,'width',1,4)
線の色を設定する。赤と青の2色。
candleColor.bullish := input.color(color.new(color.lime,75),title='bullish')candleColor.be
Pine Script™ (v5) の覚書 - 8 : UDTs(user-defined types)を使ってみる (4)
前回までの話
ローソク本体(box)と上ヒゲ下ヒゲ(line)も、ひとまとめに定義することができる。
以前に、boxを使って上位足のローソクを描いたが、ローソク本体(box)と上ヒゲ下ヒゲ(line)もひとまとめに定義することができる。
type htf_candle box body line wick line tail
これを以下のように初期化する。
myCand
Pine Script™ (v5) の覚書 - 作ってみる:日足と週足と月足を描くインジケータの作成 (2)
前回までの話
上位足に必要なパーツの作成色用の型を定義する
陽線用と陰線用の2色が必要
type candle_colors color bullish // 陽線 color bearish // 陰線var candleColor=candle_colors.new()
ローソク足を定義する。
ローソク足の情報をまとめて取り扱うためのcandle_body型を定義する。
Pine Script™ (v5) の覚書 - 8 : UDTs(user-defined types)を使ってみる (3)
前回までの話
色についても自分の使いたい色を型として定義して、color.redのように使うことができる。
type colors color lime70 color lime80 color red70 color red80
これを以下のように初期化する。
myColor=colors.new( color.new(color.lime,70), colo
Pine Script™ (v5) の覚書 - 作ってみる:日足と週足と月足を描くインジケータの作成 (1)
作りたいものチャート上に
・日足
・週足
・月足
を表示する。
足と書いたが上下のヒゲは書かない。下位時間足が個性溢れるヒゲを作ってくれる。
表示中の下位時間足と、日足と週足と月足を判別できるように、線の種類と背景色で区別する。
必要なパーツ・日足と週足のローソク足情報取得
・ローソク本体のみを描く
日足は塗りのみ
週足は枠のみ
月足は枠のみ
完成はこのようなイメージとなる
Pine Script™ (v5) の覚書 - 8 : UDTs(user-defined types)を使ってみる (2)
前回までの話
ローソク足は、X軸の情報としてtime,time_close、Y軸の情報としてopen,close,high,lowによって構成されている。(図1)
type candle int t int tc float o float c float h float l
これは、今の時間足では、以下のように使うことになる。
myCandle=can
Pine Script™ (v5) の覚書 - 8 : UDTs(user-defined types)を使ってみる (1)
typeを使うと、int型やfloat型などの複数の変数をひとまとめにした複合型を定義できる。
Pineのobjectについて
例えば、チャート上のある時点の価格について考える場合、X軸上の座標である時間とY軸上の座標である価格を一組のデータとして扱えると便利だ。こうした場合にtypeを使って、ユーザ定義の新しい型を定義できる。
type x_y_coordinate int x
Pine Script™ (v5) の覚書 - コラム :改行をしたらエラーが・・・
スクリプトを書く上で、スペースとタブは重要です。筆者もよく間違えるのですが、間違ったスペースとタブをスクリプト内に入れてしまうとスクリプトのコンパイルエラーが発生します。
スペースについてスクリプトが長くなった時にスクリプトを読みやすくする為に途中で折り返すことができます。
// 1行にweekCandle=request.security(syminfo.tickerid,"D",cand
Pine Script™ (v5) の覚書 - 作ってみる:MTF移動平均線を描くインジケータの作成 (6)
前回までの話
プライベート公開したインジケータの共有前回プライベート公開したインジケータを共有する為には、インジケータのURLを知る必要があるが、チャート上のインジケータからはURLは分からない。
インジケータのURLは
1. コミュニティーページ
2. 自身のアカウントページ
から確認ができる。
コミュニティページの、「自分の投稿」に投稿したインジケータが表示される。クリックするとインジケ
Pine Script™ (v5) の覚書 - 作ってみる:MTF移動平均線を描くインジケータの作成 (5)
前回までの話
作成したインジケータを公開してみる作成したインジケータを公開すると、他の人が使えるようになる。
公開には、
・パブリック
・プライベート
の2つがある。
今回はプライベート公開をしてみる。
1. スクリプトを保存
スクリプトの準備が終わったら、スクリプト名を決めて保存をする。
2. チャートに追加
保存したスクリプトを、「チャートに追加」を押して、チャート上にインジケータ
Pine Script™ (v5) の覚書 - 作ってみる:MTF移動平均線を描くインジケータの作成 (4)
前回までの話
インジケータのパラメータを設定可能にするインジケータの変数をあとから設定できるようにする。
ここでは、移動平均線のパラメータとして期間とsrc、見た目のパラメータとして線の色と太さをあとから設定できるようにする。
スクリプトの変数を最初に定義したのはこのため。
ここで使うinput関数とその引数
input.source
input.source(defval, title,
Pine Script™ (v5) の覚書 - 作ってみる:MTF移動平均線を描くインジケータの作成 (3)
前回までの話
インジケータの準備パーツが揃ったら、まず、必要な変数、関数を定義する。
//@version=5indicator("MTF SMA/EMA",overlay=true)ma_label(y,textline="",textcolor=color.blue,offset=2)=> var l=label.new(na,na,textline,textcolor=textco
Pine Script™ (v5) の覚書 - 作ってみる:MTF移動平均線を描くインジケータの作成 (2)
前回までの話
MTF移動平均線に必要なパーツの作成MA用label
labelを常に移動平均線の右に表示するために、labelのY座標は常に最新のMA値、X座標は最新のローソク足の2本分右になるようなlabelを再定義する。
ma_label(y,textline="",textcolor=color.blue,offset=2)=> var l=label.new(na,na,tex
Pine Script™ (v5) の覚書 - 作ってみる:MTF移動平均線を描くインジケータの作成 (1)
作りたいもの20期間の単純移動平均線(SMA)と平滑移動平均線(EMA)を
・現在の足(短期)
・上位の足(中期、長期)
で表示する。
今回表示する移動平均線は
・短期:20SMAと20EMA
・中期:20SMAと20EMA
・長期:20SMAと20EMA
の6つとなる。
線が多く表示されるので、線の色と太さで区別する。
必要なパーツ・MA用label
・上位足のTFを取得
完成イメージ続
Pine Script™ (v5) の覚書 - 7 : request.security_lower_tfを使ってマルチタイムフレーム(MTF)移動平均線を描いてみる(3)
前回までの話
request.security_lower_tf()の返り値(arrayの取り扱い)下位足は複数本
例えば、0:00〜1:00のデータを
・1時間足として描画すると1本のローソク(開始時間0:00)
・15分足として描画すると4本のローソク(開始時間00分,15分,30分,45分)
となる。(図1)
したがって、現在の時間軸に相当する下位足は複数あるため、request.sec
Pine Script™ (v5) の覚書 - 7 : request.security_lower_tfを使ってマルチタイムフレーム(MTF)移動平均線を描いてみる(2)
前回までの話
security_lower_tfで下位足の情報を取得するrequest.security_lower_tf()を使うと、下位足の情報を取得することができる。
以下のスクリプトは、常に15分足の20期間移動平均線を表示する(表示している足が15分足より大きい場合)スクリプトである。
返り値がrequest.security()と違って、array(複数の値)になるので、plotする