インジケータのスクリプトを作成する場合、チャート本体に描画するか、サブチャートとして描画するかを決定する必要があります。
スクリプトの先頭にstudyという関数がありますが、このパラメータで指定が可能です。
//@version=3
study("GMMA", overlay=true)
overlayという引数がtrue時はメインチャート、false時はサブチャートとなります。
さて、ここで関数呼び出しについて、pineは名前付き引数が利用可能です。
上記の例でいくと、"GMMA"と書いてある部分が、名前なし引数。overlay=trueと書いてあるところが名前あり引数です。
名前あり引数を使うと、ある特定の引数のみ指定可能です。
stduy関数の定義は次の通りです。
study(title, shorttitle, overlay, precision, scale, max_bars_back)
名前なし引数の場合、順序通りに指定する必要があります。例えばoverlayを名前なしで指定しようとすると、必ず短い名前を定義必要です。
こんな感じです。
study("indiccator name", "short name", true)
名前あり引数を利用すると、特定の引数のみをピンポイントで定義可能です。
順番も関数定義に従う必要はありません。たとえばこんな定義の仕方も可能です。
study(overlay=true, title="GMMA")
pine スクリプトのマニュアルを見ると名前あり引数の方を推奨しているようです。
間違いが少ないからかな?コード補完がしっかりしているエディタならいいのですが、ちょっと打つのが面倒ですねw
さて、描画です。
基本的な描画はplot関数で行います。
//@version=3
study("マイスクリプト")
plot(close)
pineエディタを開くと一番最初に上記のように記載されていると思いますが、このまま実行すると、close値をサブウィンドウに出すインジケータとなります。
もう少しplot関数を掘り下げてみましょう。プロットの定義は次の通りです。
plot(series, title, color, linewidth, style, trackprice, transp, histbase, offset, join, editable)
私もまだよく知りませんが、最低限の内容だけ把握していきたいと思います。
第1引数は描画したい配列を指定します。
pineでは、生成した変数は基本配列ですので、計算した値などを指定すれば素直に描画されます。
細かくは次の計算編でやりたいと思いますが、こんな感じです。
//@version=3
study("マイスクリプト")
ema1 = ema(close, 21)
plot(ema1, color=red, style=line)
close値の21EMAを赤線で描画します。
ちなみにcloseは定義済み引数というやつになります。
さておき実行してみましょう。下のようにサブチャートにemaが表示されます。
ちょっと修正して、overlay=trueを指定してみます。
//@version=3
study("マイスクリプト", overlay=true)
ema1 = ema(close, 21)
plot(ema1, color=red, style=line)
このようにチャートにemaが表示されます。
「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。 インジケータ一覧 Twitterもよろしくお願いします。 https://twitter.com/mt4program Trading View プロフィール ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 |