見出し画像

TradingViewのプログラム言語 Pineメモ

TradingViewで自動売買Botのバックテストや

インジケータの製作に必須な言語

Pineを勉強したときに使ったもののメモです。

基本的にはここを見ます

コード内に注釈をしています。

1行目はバージョンを指定

//@version=4

バージョン3と4だと,color=color.greenとかの書き方が違います。

2行目はstrategyかstudyのパラメータ

strategy(              //自動売買のときはstrategy
    "ストラテジの名前",   //名前を入れます
    overlay = true,    //ラインなどをチャート上に表示するならTrue
    default_qty_type = strategy.percent_of_equity,//取引量のタイプを指定。絶対値か保有資産のパーセント
    pyramiding=1,     //ピラミッティングするか
    initial_capital=10000,//初期の資産
    currency="USD",   //通貨
    default_qty_value = 100,//取引量
    commission_type=strategy.commission.percent,//手数料のタイプ。絶対値、パーセント
    commission_value=0.075  //手数料
    )

study(              //インジケータのときはstudy
     "インジケータ名", shorttitle="MAなど", overlay=true)

3種類の移動平均線 

それぞれの特徴はこちら

sma(source, length)  //単純移動平均線
              //sourceにはopen,close,high,lowを入れます。
                     // lengthには数値です。何日分の移動平均線にするか。

wma(source, length)  //加重移動平均線

ema(source, length)  //平滑移動平均線

インプット

変数をこれで指定しておくとチャートからすぐに変更できて便利

input_number = input(
   title="input_number",//このインプットに対する名前
   type=input.integer,//変数の種類 integer や float など
    step = 1,//きざみ
    minval=1,//最小数値
    maxval=1000,//最大数値
    defval=8//デフォルトの数値
    )

プロット チャート上に書き込む

単純移動平均線を例に書きます

sma_20 = sma(close,20)//単純移動平均線、終値を指定、20日間を指定

plot(
    sma_20,//何をプロットするか指定。先ほどのsma_20を入れます。
    color=color.green,//色を指定。pineのバージョンによって書き方が違います。これは4用
              //バージョン3だと color=green,
    linewidth=2//ラインの太さを指定
    )


条件 線が交差したら

ma1  = ema(close,20)  //平滑移動平均
ma2  = sma(close,20)  //単純移動平均
buy  = crossover(ma1,ma2) //emaがsmaを下から上へ抜けたら buy
sell = crossunder(ma1,ma2) //emaがsmaを上から下へ抜けたら sell

偏差

dev(source, length) //smaとの違いの尺度

絶対値を返す

abs(x) 

ATRを返す

atr(length) 

平均値を返す

avg(x, y, z, a, b, c) 

最高値を返す

highest(source, length) 

一定の固定価格レベルで水平線を描画します。

hline(price, title, color, linestyle, linewidth, editable)

iff

iff(condition, then, _else) 

MACD

study('MACD')
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
plot(macdLine, color=blue)
plot(signalLine, color=orange)
plot(histLine, color=red, style=histogram)

2つの値の大きい方を返す

max(x, y) 

チャート上に上下の矢印を描写

plotarrow(series, title, colorup, colordown, transp, offset, minheight, maxheight, editable, show_last) 

最も近い整数に四捨五入された引数の値を返す

round(x) 



その他 自力でできるようになったこと

テスト期間の指定をインプットを使って

if文での分岐

注文

2つのプロットまたはラインの間の背景を指定された色で塗りつぶす。

コーヒー飲みます。ありがとうございます。