Pineスクリプトはオシレーター系の指標の描画も簡単です。 ほとんどの指標を2行で出力できると思います。 今日はATR。 ===== //@version=3 study( "2行でATRを表示する" ) plot( ema( tr ,20 ) ) ===== Pineスクリプトでは、「tr」という独自変数があります。 これは、close、openなどと同じようにtr(True Range)を取得することができる変数です。 atr( ) という関数も用意されていますが、 EMA(指数平滑移動平均)のATRが欲しいので ema( tr ,20 ) として算出しています。
チャートに重ねるインジケーターは、今回で最後にしようと思います! 次回からはオシレーター系を連載していきます!! 最後のトレンド系インジケーターは 「GMMA」 TradingViewなら、 簡単にプログラムを組むことができます^^ ========== //@version=3 study( "GMMA を表示する" ,overlay=true ) // plot( ) と ema( ) の2つの関数を組み合わせる plot( ema( close , 3 ) ,color=green ,title="short1" ) plot( ema( close , 5 ) ,color=green ,title="short2" ) plot( ema( close , 8 ) ,color=green...
昨日のプログラムに2行追加するだけで、 ブレイクを表示することができるようになります。 今日は追加部分だけ解説を入れますね。 ========== //@version=3 study( "ハイローバンドとプレイクを表示する" ,overlay=true ) length = input( 20 ,title="計算する期間" ) highest = highest( high ,length ) lowest = lowest( low ,length ) middle = ( highest + lowest ) / 2 plot( middle ,offset=1 ,color=red ) p1 = plot( highest ,offset=1 ) p2 = plot( lowest ,offset=1...
Pineスクリプトには、期間中の最高値や最安値を取得する関数も用意されています。 highest( high ,20 ) → 過去20本の最高値を取得 lowest( low ,20 ) → 過去20本の最安値を取得 この中間点を求めたのが、一目均衡表の均衡点ですね! ===== //Pineのバージョンとインジケーターの宣言 //@version=3 study( "ハイローバンドを表示する" ,overlay=true ) //設定項目を指定し、その初期値を変数に格納 length = input( 20 ,title="計算する期間" ) //変数 length に格納されている期間中の最高値 highest = highest( high ,length ) //最安値と中間 lowest =...
Pineスクリプトでは、移動平均を求める関数がいくつか用意されています。 sma( )、ema( )、alma( )、wma( )、swma( )、vwma( )、rma( ) などです。 テクニカル指標は「複雑な計算をすれば良い」というものではありません。 むしろ、一目均衡表の均衡点(半値)、移動平均線の平均値など、シンプルな指標の方が良いと考えています。 それぞれの使い方は、公式のドキュメントにお願いするとして、ここでは、個人的に好きな vwma( ) の使い方を解説してみようと思います。 vwma( )...
今日はエンベロープを表示してみます。 数値は足種や銘柄に応じて調整をする必要があります。 ===== //@version=3 study( "エンベロープを表示する" ,overlay=true ) price = input( close ,title="EMAの対象" ) length = input( 20 ,title="EMAの期間" ) ema = ema( price ,length ) plot( ema + ema * 0.04 ,linewidth=2 ) plot( ema + ema * 0.03 ) plot( ema + ema * 0.025 ,transp=75 ) plot( ema + ema * 0.02 ) plot( ema + ema * 0.015...
やることが増えるごとにコードの行数も増えます。 追加したのはEMAの間を塗りつぶす機能。 EMAのクロスで塗りつぶす色を切り替えます。 ===== //@version=3 study( "EMAの間を塗りつぶす" ,overlay=true ) price = input( close ,title="EMAの対象" ) length1 = input( 5 ,title="EMA1の期間" ) length2 = input( 20 ,title="EMA2の期間" ) length3 = input( 40 ,title="EMA3の期間" ) // 変更点① ema1 = ema( price ,length1 ) ema2 = ema( price ,length2 ) ema3 = ema(...
前回、表示させた残高は「決済済みだけの残高」でした。 今回は「未決済(取引中)の損益も含めた残高」を表示させます。 (取引会社によって各社の表現が異なるので難しいのですが、、英語だと「account value」とされる項目です) TradingViewでは、この資金量に応じて取引量を調整するようなロジックを組むこともできます。 ===== //@version=4 strategy( "MovingAvg2Line Cross" ) fastLength = input( 9 ) slowLength = input( 18 ) price = close balance = strategy.initial_capital + strategy.netprofit //...
前回までに算出した取引量で売買していきます。 といっても、 予め用意された引数に「計算した取引量」 渡してあげるだけなので、何にも難しいことはありません。 更新した箇所のみ、解説を入れます。 ===== //@version=4 strategy( "MovingAvg2Line Cross" ,initial_capital=100000 ) fastLength = input( 9 ) slowLength = input( 18 ) price = close balance = strategy.initial_capital + strategy.netprofit accountValue = balance + strategy.openprofit amount_rate =...
使い方は、発想次第で無限大なのですが、 こんな使い方があるよという例をひとつ。 20日間の最高値と最安値、その中間点を描画するインジケーターです。 ===== //@version=4 study( "ラインとラベルを組み合わせる", overlay=true ) // 20日間の高値、安値、均衡点を算出 H = highest( high ,20 )[1] L = lowest( low ,20 )[1] M = ( H + L ) / 2 // lineの宣言 var line h = na var line m = na var line l = na // 古いものがあれば削除 line.delete( h ) line.delete( m ) line.delete( l ) // lineを描画 h...
label関数を使うと、インフォパネルのようなものを設置することもできます。 Pineスクリプト上で取得できるほぼ全てデータを表示することができます。 ===== //@version=4 study( "labelでインフォパネルを表示する", overlay=true ) var label l = na label.delete(l) l := label.new( timenow + round(change(time)*15), close , xloc=xloc.bar_time, yloc=yloc.price, style=label.style_labelup, text="label test\n\n...
日本ではまだ公式に発表されていませんが、 6月頃にPineスクリプトのversion4がリリースされました。 大きな変更点は、 チャートにlabelとlineを描画できるようになったことです。 文字の出力も、かなり自由にできるようになりました。 ===== //@version=4 study( "label を表示する", overlay=true ) label.new( bar_index, high, style=label.style_none, text="x=" + tostring(bar_index) + "\ny=" + tostring(high) ) ===== bar_index : ローソク足番号(毎回変わる) 出力内容は、 text="x=" +...
今日はPineスクリプトでボリンジャーバンドを表示する方法です。 ===== //@version=3 study( "ボリンジャーバンドを表示する" ,overlay=true ) price = input( close ,title="計算の対象" ) length = input( 20 ,title="算出する期間" ) sma = sma( price ,length ) dev = stdev( price ,length ) plot( sma ) plot( sma + dev ) plot( sma + dev * 2 ) plot( sma - dev ) plot( sma - dev * 2 ) ===== Pineスクリプトでは、stdev( )...
EMAを複数表示するのは簡単ですね。 講座②までのものを、 表示したい数だけ増やしてあげれば良いだけです。 これができれば何十本ものEMAを表示することもできます。 あんまり多いと表示に時間がかかったり、 どこかに上限があったりするとは思いますが。 ===== //@version=3 study( "EMAを3本表示する" ,overlay=true ) price = input( close ,title="EMAの対象" ) length1 = input( 5 ,title="EMA1の期間" ) length2 = input( 20 ,title="EMA2の期間" ) length3 = input( 40 ,title="EMA3の期間" ) plot( ema( price...
①で表示したインジケーターに設定項目を追加します。 こうすることで、他のインジケーターと同様に、 歯車マークの設定画面から様々な数値の調整ができるようになります。 ===== //@version=3 study( "EMAに設定項目を加える" ,overlay=true ) price = input( close ,title="EMAの対象" ) length = input( 20 ,title="EMAの期間" ) plot( ema( price ,20 ) ,color=red ) ===== この例では、以下の設定項目を追加しています。 ・EMAを算出する対象を選択できるように ・EMAを算出する期間を変更できるように EMAの対象というのは、終値で計算するのか、始値、高値、安値にするのかなどの調整ですね。
せっかくなので、たまにご要望のあるPineスクリプト講座をやってみようと思います! シンプルに、シリーズでちょっとずつ。 今回のコードはこちら! ===== //@version=3 study( "たった2行でEMAが出せる" ,overlay=true ) plot( ema(close ,20) ,color=red ) ===== Pineスクリプトのすごいところは、このシンプルさです。 たった2行でインジケーターが出せてしまうのはスゴイ。他の言語ではありえない簡単さです。 チャート画面の下の方にある「Pine エディタ」からできます。 今回出せるのはただのEMA(指数平滑移動平均線)ですが、以下の手順で、ぜひ表示してみてください^^ 1.Pineエディタ...