LoginSignup
2
0

More than 1 year has passed since last update.

TradingView Painで相場師朗氏のパンパカパンを実装してみる

Last updated at Posted at 2020-12-28

動機

TradingViewのスクリプトで、チャート機能を追加できるPainが面白そうなので、何か実装して、試してみたい。
「わたしが理解下パンパカパン」を勝手に実装しているので、苦情、公開停止要求がきたら、消します。

はじめ

相場のトレンドを見る方法として、相場師朗氏が紹介しているパンパカパンTradingViewのペインで実装する。

  • 移動平均線5日、20位、60日、100日、300日の間を塗りつぶす
  • 移動平均線5日、20位、60日、100日の傾きを数値化

移動平均線5日、20位、60日、100日、300日の間を塗りつぶす

以下のコードを、画面下部のペインエディタにコピペして適当な名前をつけて保存。チャートに追加で表示できます。


// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © sktn3

//@version=4
study( "SMAcloud" ,overlay=true )

price = input( close ,title="SMAの対象" )

length1 = input( 5 ,title="SMA1の期間" )
length2 = input( 20 ,title="SMA2の期間" )
length3 = input( 60 ,title="SMA3の期間" )
length4 = input( 100 ,title="SMA4の期間" )
length5 = input( 300 ,title="SMA4の期間" )

sma1 = sma ( price ,length1 )
sma2 = sma ( price ,length2 )
sma3 = sma ( price ,length3 )
sma4 = sma ( price ,length4 )
sma5 = sma ( price ,length5 )

p1 = plot( sma1 ,linewidth=2, transp=0,  color=color.blue)
p2 = plot( sma2 ,linewidth=2, transp=10, color=color.orange)
p3 = plot( sma3 ,linewidth=2, transp=30, color=color.purple)
p4 = plot( sma4 ,linewidth=2, transp=20, color=color.lime)
p5 = plot( sma5 ,linewidth=4, transp=40, color=color.red)

fill( p1 ,p2 ,color = sma1 > sma2 ? color.orange : color.blue, transp=90 )
fill( p2 ,p3 ,color = sma2 > sma3 ? color.purple : color.orange,     transp=94 )
fill( p3 ,p4 ,color = sma3 > sma4 ? color.lime : color.purple,    transp=96 )
fill( p4 ,p5 ,color = sma4 > sma5 ? color.red : color.lime,   transp=98 )

//25日移動平均線
sma25 = sma ( price ,25 )
plot( sma25 ,linewidth=2, transp=20 ,color=#aa00ff, style=plot.style_circles)



画面
スクリーンショット 2021-06-28 18.15.14.png

上記コードで、チャートにそれぞれの単純移動平均線と、5日と20日、20日と60日、100日と300日の間が塗りつぶされる。
それぞれが交差している場合、赤色で塗りつぶしている。

移動平均線5日、20位、60日、100日、300日の傾きを数値化

以下のコードを、画面下部のペインエディタにコピペして適当な名前をつけて保存。チャートに追加で表示できます。


//@version=4
study("ppp5,20,60,100,300")

pppL1 = 1
pppL2 = 2
pppL3 = 3
pppL4 = 3.4
pppL5 = 3.8
pppAllMax = pppL1 +pppL2 +pppL3 +pppL4 +pppL5
pppSubMax = pppL1 +pppL2 +pppL3 +pppL4 -pppL5


hline(0, title='zero', color=color.black, linestyle=hline.style_dotted, linewidth=2)

trend_sma(x, y,z) =>
    sma(x,y)[0]-sma(x,y)[1] >= 0 ? z : z*-1
    //dt = 0.0
    //for i = 0 to y
    //    dt := dt + x[i]-x[i+1] 
    //dt >= 0 ? z : z*-1

ppp_sma5   = trend_sma(close,   5, pppL1)
ppp_sma20  = trend_sma(close,  20, pppL2)
ppp_sma60  = trend_sma(close,  60, pppL3)
ppp_sma100 = trend_sma(close, 100, pppL4)
ppp_sma300 = trend_sma(close, 300, pppL5)

plot(ppp_sma5,   title='ppp_sma5', color=color.blue)
plot(ppp_sma20,  title='ppp_sma20', color=color.green)
plot(ppp_sma60,  title='ppp_sma60', color=color.orange)
plot(ppp_sma100, title='ppp_sma100', color=color.purple)
plot(ppp_sma300, title='ppp_sma300', color=color.navy)

ppp_smaAll = ppp_sma5+ ppp_sma20+ ppp_sma60+ ppp_sma100+ ppp_sma300
plot( ppp_smaAll, title='ppp_smaAll', join=false, linewidth=2, color=color.red)


//背景色塗り
u_limit = input(pppAllMax, "upper limit")
l_limit = input(-1*pppAllMax, "lower limit")
u_plot = plot(u_limit)
l_plot = plot(l_limit)

fill(u_plot, l_plot,
     color = ppp_smaAll==pppAllMax? color.lime : ppp_smaAll==-1*pppAllMax? color.purple : ppp_smaAll<=-1*pppSubMax? color.red: ppp_smaAll>=pppSubMax? color.green :color.gray,
     transp = 70,
     title = "fill upper-lower line")


全ての移動平均線が上向きなら、ライム色
もうすうぐライム色になりそうなら、緑色

全ての移動平均線が下向きなら、紫色
もうすぐ紫色になりそうなら赤色

に背景色を色分けする

おわり

上記の利用は自己責任です。
TradingViewのPainを遊ぶ題材として、実装してみました。

なお、Podcastで相場師朗氏の番組を拝聴しており、本も買って熟読中の今日この頃です。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0