2018/11/25

pine scriptで作るドテンくん1 -pine scriptへHello World-

pine scriptの初心者向け記事ってなくないですか?
なのでpine scriptでのコーディングについて書いていきます。

今回の目標はprint、つまり表示ができること。
print debugできないといろいろ不便

確証はないけどそんな動作なのかなー?
って感じのもあるのでそこは御愛嬌でよろしく

ではまずはpineって何?から

trading view っていういろんなチャートが見れるサイトがあるんだけど

pine scriptっていうのはtradingviewの中で使われるプログラム言語

インジケータ作ってチャート中に表示したり、
こんな戦略で売買したいなーっていうのをコーディングすると
過去にさかのぼってテスト(バックテスト)してくれるやつ。

まあググれば出てくる。

どんなのできるかっていうと、こんなん。


これはデフォルトで入ってるMACD Strategyって手法

ちゃんと利益出てるように見えるけど手数料考慮してないんだ

手数料とかスリッページは簡単に設定できて、手数料設定すると↓みたいになる。


↓みたいに「~」ってマーククリックして検索窓に「MACD」ってすれば出てくる。



ソースコードも公開されてる下のように見れる。
他の□は左から非表示、いろんなプロパティとか変数の変更、ソースコードを見る、図から削除



で、この企画はかの有名なドテン君を題材に使ってこのpine scriptってやつの使い方を覚えましょうってやつ

ちょっとググった感じではpineは現時点で公開されてない感じかな?
問題あったら題材変える

ドテン君っていうのはこれ
https://note.mu/akagami/n/n557905c2fc88

2018年のbitcoin FXのbotブームの火付け役です
中身は1時間足・期間18のチャネルブレイクアウト戦略

--------------------------------------------------------------------------

前置きが長くなったので
さっさとHello, Worldして終わるか。

今回の目的はいわゆるprintできるようになるでした

あ、pine使うのもしかしたら会員登録必要かも。
無料プランでいいからしといて
特にデメリットもないはず

言語設定日本語とか英語とかによって表示はちょっと違うかもだけど以下同じ感じでできるはず

ではでは、図のようにPine Editor > New > Blank strategy scriptって押しましょう
インジを作りたい場合は Blank indicator scriptだね

そうするとすでに14期間smaと28期間smaのクロスで売買するscriptができてる

今回の目的とは違うけど、せっかくだからこいつのバックテストの結果見とくか
Add To ChartしてあげてからStrategy testerを押してあげればもうバックテストの結果が見れる


まあ、これじゃあるやつを使っただけ。
1から自分でかかないとわからんと思うので当初の目的に戻ってprintする

これをセーブしてチャートに表示
ただ表示するだけのプログラム
解説する。

//@version=3
はpine scriptのバージョン3を使ってますよ。って意味でつける。

//@version=2のときは一部未来の値を先読みできちゃうバグがあったから
公開されてるすごい結果が良い奴には注意というのは別の話。

strategy("Hello,World", overlay=true)
はHello,Worldって名前の戦略ですよってのと
overlayはチャート上に表示しますよってやつ
overlay = falseにすると、チャートとは別のエリアに描画される。


チャートとは別のエリアっていうのは、
↓みたいにRSIとかMACD表示したみたいになるって感じ



チャート上に表示っていうのは
以下の画像で示す感じで移動平均線みたいに表示する感じ

あとは、、

1を表示します
open(始値)を緑で表示します
high(高値)を赤で表示します
low(安値)を青で表示します
close(終値)を紫で表示します

って意味

そうすると
下図のようにちゃんと色付きで表現される。
四角でかこった所以外にも足に色付きで線もひかれてるね
カーソルをあてるローソク足をかえれば、その足の
数値がちゃんと出力されます


これでどの変数も確認できるからprint debugもできます

print debugの例としては

こんなん



pineでは宣言の時は「=」なんだけど、
2回目以降の代入の時は「:=」なのです

今回はここまで

0 件のコメント:

コメントを投稿