四十路サラリーマン、強く生きる

日々気になっている、やってみたことメモ

TradingViewインジケーター公開しました(Emerging Currency Strength Chart)

私はそこそこ新興国通貨のFX売買するのですが、既存のツールでは単独で大きく動く時の判断がしにくいのが不便だなぁと感じてました。そこで、Boitoki氏が作成された「Currency Strength Chart」に南アフリカランドZAR、メキシコペソMXN、トルコリラTRYを追加しました。計算・表示処理を軽減するためNZD、CAD、CHFは除外しました。

↓公開申請承認されました!
jp.tradingview.com

私のメインはキャッシュバックイベントが多く、安全安心のセントラル短資です

TradingView: 2つのインジケータを1つにまとめる方法(PC作業必要)

無料版TradingViewを使用しているとインジケータ表示3つ縛りの制約が徐々に厳しく感じてきます。そんな場合は、Pineエディタを操作し、よく使う複数のインジケータをスクリプトを1つにまとめると表示数を節約できます。今回は以下の2つの合成例を説明します。

合成例:「SMA(単純移動曲線)」 + 「Pivot」

  • 手順1:インジケーターのスクリプトを表示し、コピーする
  • 手順2:Pineスクリプトエディタにそれぞれのスクリプトを貼り付ける
  • 手順3:エラーが発生しないようにいくつかの記述を修正する
       Pivotスクリプトが古いversion記述のため、以下の記述を修正しました。

   (修正前) tickerid →(修正後) syminfo.tickerid
   (修正前) circles →(修正後) plot.style_circles

  • 手順4:スクリプト名をつけて保存し、インジケーターを表示させる

↓合成記述例

study(title="SMA and Pivot", shorttitle="SMA and Pivot", overlay=true, resolution="")
//SMA

len = input(9, minval=1, title="Length")
src = input(close, title="Source")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out = sma(src, len)
plot(out, color=color.blue, title="MA", offset=offset)


//Pivot
width = input(2, minval=1)
xHigh  = security(syminfo.tickerid,"D", high[1])
xLow   = security(syminfo.tickerid,"D", low[1])
xClose = security(syminfo.tickerid,"D", close[1])
vPP = (xHigh+xLow+xClose) / 3
vR1 = vPP+(vPP-xLow)
vS1 = vPP-(xHigh - vPP)
vR2 = vPP + (xHigh - xLow)
vS2 = vPP - (xHigh - xLow)
vR3 = xHigh + 2 * (vPP - xLow) 
vS3 = xLow - 2 * (xHigh - vPP)
plot(vS1, color=#ff0000, title="S1", style = plot.style_circles, linewidth = width)
plot(vS2, color=#ff002a, title="S2", style = plot.style_circles, linewidth = width)
plot(vS3, color=#ff014a, title="S3", style = plot.style_circles, linewidth = width)
plot(vR1, color=#009600, title="R1", style = plot.style_circles, linewidth = width)
plot(vR2, color=#006F00, title="R2", style = plot.style_circles, linewidth = width)
plot(vR3, color=#004900, title="R3", style = plot.style_circles, linewidth = width)

私のメインはキャッシュバックイベントが多いセントラル短資です

新しいTradingViewインジケーターのアイディア

TradingViewのスクリプトをパラパラ見てたのですが新しい系統のインジケーター、判断指標のアイディアが浮かびました。自分のFXトレードの経験でこんなのあったらいいなと思ってたやつです。シグナルとして正規化できるかは作ってみないとわかりません。

今週末は幸いなことに3連休。成功するかわからないけどscriptの具現化に挑戦してみようと思います。見せれる形にできたらブログでも紹介します。

私のメインはセントラル短資です

Currency strengthインジケーターの取り込み方(PC操作限定)

Currency strengthの本家webページはFXやってる人は立ち寄った経験あると思います。この機能をTradingViewに取り込むと通貨強弱の判断材料として唯一無二の可能性を秘めていることに気が付いたのでTradingView内に取り込むまでを紹介します。ただし。チャート表示時の再計算に時間を要するという欠点があるので、様々なチャートを行き来したい場合は一旦非表示にすると良いでしょう。

手順は以下の通り。

1.boitoki氏がTradingView内でCurrency について公開しているwebページを開く

2.公開されているPine script箇所を全てコピーする

3.TradingViewの「Pineエディタ」にコピーしたPine scriptを貼り付ける

4.名前を付けて保存する

5.「インジケータ&ストラテジー」の「マイスクリプト」から保存したPine scriptを表示させる

f:id:JUNx2:20210104183007j:plain

f:id:JUNx2:20210104182248j:plain

f:id:JUNx2:20210104160824j:plain

私のメインはセントラル短資です

Visual studio CodeでPine script拡張機能設定の仕方

下記の流れで設定できます。

1.Visual studio Codeをダウンロード&インストールする

2.Visual studio Codeを起動する

3.エクスプローラの「拡張機能」アイコンから「Pine」を検索する

4.Pine script拡張機能をインストールする

5.作業フォルダを作成&設定する

6.拡張子を「.pine」とした新しいファイルを作成する

Pine script拡張機能(※取り込み済のためアンインストールと表記されてます)
f:id:JUNx2:20210104171332j:plain

Pine script編集画面
f:id:JUNx2:20210104171336j:plain

私のメインはセントラル短資です

TradingView スマホ版(無料)で足りないこと

有料版だとオーバースペックですし、安定して稼げてないのでTradingViewを無料の範囲でどう活用するかを照準にしてます。有料と無料のスペックの違いは公式サイトに掲載されてますが、私の主観で不足に感じているポイントを以下3項目、そしてどう対処しているか紹介します。

スマホ版(無料)で不足に感じていること

  • 複数通貨、マルチタイムフレームチャートを表示できない
  • Pineスクリプトを操作できない
  • リプレイが日足単位しかできない

複数通貨、マルチタイムフレームを表示できない

複数の情報を1画面で捉えられると便利ですよね。でもFXに限れば、相場は通貨強弱で動いていて取引通貨ペアが限定されるので、Currency strengthインジケーター表示してアンテナを立てて対処できれば十分と感じてます。Currency strengthインジケーターの取り込み方については別の記事で紹介します。
f:id:JUNx2:20210104160824j:plain

Pineスクリプトを操作できない

個人的にTradingViewは唯一無二なPineスクリプトを活用してなんぼと思ってます。なので、Pineスクリプトを触る時はPCブラウザから操作します。PCで取り込んだスクリプトスマホ版でも利用できます。時々PCで触れば十分カスタマイズできます。

リプレイが日足単位しかできない

私は4時間足から戦略を練るスタイルなので、無料版ではスマホでもPCでも日足でしかリプレイができない事に気づいた時はとてもショックを受けました。TradingViewを使い始めようとした動機も過去検証を行うためだったので。これを完全に補完できる手法はないですが、過去の日常に時間足を戻し、エントリーポイントを検証しつつ、チャートを現在方向に手動でスライドさせて過去検証をしてます。スマートではないですが、これでも過去検証は十分行えると思ってます。

私のメインはセントラル短資です

QQE signals

Pineスクリプトチュートリアルの解読を進める同時に、Trading Viewで公開されているインジケーターをいくつか拝見させてもらいました。その中で「QQE signals」これかなり使えるんじゃない?と感じました。以下、[1]インジケータ表示画像、[2]メリット・デメリット、[3]スクリプト、[4]スクリプト解釈を掲載します。もし[4]に間違いあったらゴメンナサイ(汗)

[1]画像(QQE signals)

f:id:JUNx2:20210101213620j:plain

[2-1]メリット(私の主観)

  • Buy・Sellポイントが発生することで、エントリ方向を決めることができる
     (ポジポジ病抑制、エントリ方向を明確にできる)
  • 他のオシレータ含め、複合的にエントリーや損切ポイントを考察できる

[2-2]デメリット(私の主観)

  • エントリー頻度、エントリー精度はどの時間足を標準にするかで別物になる
     (4時間足がエントリ頻度、エントリ精度のバランスが最も良さそうに思えた)
  • フラグ発生後エントリーになるため、実際のエントリールールは自身で決める必要がある

[3]スクリプト

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © colinmck

study("QQE signals", overlay=true)

RSI_Period = input(14, title='RSI Length')
SF = input(5, title='RSI Smoothing')
QQE = input(4.238, title='Fast QQE Factor')
ThreshHold = input(10, title="Thresh-hold")

src = close
Wilders_Period = RSI_Period * 2 - 1

Rsi = rsi(src, RSI_Period)
RsiMa = ema(Rsi, SF)
AtrRsi = abs(RsiMa[1] - RsiMa)
MaAtrRsi = ema(AtrRsi, Wilders_Period)
dar = ema(MaAtrRsi, Wilders_Period) * QQE

longband = 0.0
shortband = 0.0
trend = 0

DeltaFastAtrRsi = dar
RSIndex = RsiMa
newshortband = RSIndex + DeltaFastAtrRsi
newlongband = RSIndex - DeltaFastAtrRsi
longband := RSIndex[1] > longband[1] and RSIndex > longband[1] ? max(longband[1], newlongband) : newlongband
shortband := RSIndex[1] < shortband[1] and RSIndex < shortband[1] ? min(shortband[1], newshortband) : newshortband
cross_1 = cross(longband[1], RSIndex)
trend := cross(RSIndex, shortband[1]) ? 1 : cross_1 ? -1 : nz(trend[1], 1)
FastAtrRsiTL = trend == 1 ? longband : shortband

// Find all the QQE Crosses

QQExlong = 0
QQExlong := nz(QQExlong[1])
QQExshort = 0
QQExshort := nz(QQExshort[1])
QQExlong := FastAtrRsiTL < RSIndex ? QQExlong + 1 : 0
QQExshort := FastAtrRsiTL > RSIndex ? QQExshort + 1 : 0

//Conditions

qqeLong = QQExlong == 1 ? FastAtrRsiTL[1] - 50 : na
qqeShort = QQExshort == 1 ? FastAtrRsiTL[1] - 50 : na

// Plotting

plotshape(qqeLong, title="QQE long", text="Long", textcolor=color.white, style=shape.labelup, location=location.belowbar, color=color.green, transp=0, size=size.tiny)
plotshape(qqeShort, title="QQE short", text="Short", textcolor=color.white, style=shape.labeldown, location=location.abovebar, color=color.red, transp=0, size=size.tiny)

// Alerts

alertcondition(qqeLong, title="Long", message="Long")
alertcondition(qqeShort, title="Short", message="Short")
  • [4]スクリプト解釈 スクリプトの内容からRSIベースのインジケータで間違いないでしょう。QQE factor「4.238」の根拠はフィボナッチの233/55でしょうか?RSI振幅を長期、短期の追っかけによる売買フラグオシレータの観点では目新しくないですが、トレンドを変動させる足が発生するまで売買フラグ精度に工夫が費やされているのだと思います。

スイング向きのインジケータで真価を発揮するように思えます。売買後の次のフラグが立つ時にはポジションが腐る可能性がるので、ポジションクローズポイントは自身のルールで決めた方が良さそうです。

私のメインはセントラル短資です