https://jp.tradingview.com/u/daisuke_gewinn/
Trading Viewではカスタムインジを作成できます。
昨日作ったStochastic Momentum IndexをTrading View向けに作ってみました。
ちなみにTrading Viewには公開されているスクリプトとしてStochastic Momentum Indexはすでに存在しています。
答えがあるということと、作ったばかりでアルゴリズムがあたまに入っているということで練習課題として作ってみました。
まずTrading Viewでチャートを開いて、チャート下にあるPineエディタを開きます。
■Pineエディタ
最初全く気が付てなくて、Pineエディタどこから開くの?って探し回ってました^^;;;
がりがりとコードを書いた後は、チャートへの追加でインジケータが追加されます。
■Trading View EURUSD H1 SMI
■MT4 EURUSD H1 SMI
■Pineスクリプトのインプレッション
・
・型が違うと未宣言エラーになる。型宣言省略した意味ないじゃん・・・。
exp = 0.0
exp1 = exp[1]
//※exp1には、ひとつ前の足のexpが入る
・ブロックは4スペース
if a < b
処理1
処理2
else
else処理1
else処理2
if文終了後の処理
・わからなかった事
サブウィンドウ型チャートのスケールの固定方法
(たぶん、hLineに上限値下限値を入れておけば、とりあえず全部表示される形になる。)
一瞬、関数型言語??と思いましたが、そーいうわけではなく、ブロック構造とかが4スペースで宣言するという一風変わった言語のようです。
構造体とかクラスとかはなさそうです。JavaScriptsっぽくプロトタイプとかも作れなさそうです・・・。MQLを単純に移植すればOKというわけにはいかなさそうです。
ソースコードはこんな感じです。
MQLとのコードと見比べると、言語設計思想がかなり異なることがわかりますね。
明らかにCを起源とするMQLと比較すると、Pineはよりスクリプトっぽい感じです。
//@version=3
study("Stochastic Momentum Index", overlay=false)
//入力
HLPeriod = input(13, "高値安値割り出し期間")
MPeriod = input(20, "EMA期間1")
NPeriod = input(30, "EMA期間2")
SignalPeriod = input(6, "シグナル期間")
//期間高値安値を検出
lowestLow = lowest (low, HLPeriod)
highestHigh = highest(high, HLPeriod)
//分子側
chlEma = ema(ema((close - (highestHigh + lowestLow) / 2), MPeriod), NPeriod)
//分母側
hlEma = ema(ema(((highestHigh - lowestLow) / 2), MPeriod), NPeriod)
//smi計算
smi = if hlEma != 0
chlEma * 100 / hlEma
else
0
signal = ema(smi, SignalPeriod)
//描画
plot(smi, color= red, title="smi")
plot(signal,color= aqua, title="signal")
//レベルの描画
hline(40, color = green, title = "UpperLevel")
hline(-40, color = green, title = "UnderLevel")
hline(0, color = blue, title = "Zero")
hline(100, color = green, title = "UpperLevel")
hline(-100, color = green, title = "UnderLevel")
「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧
Twitterもよろしくお願いします。
https://twitter.com/mt4program
ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 |
お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。