見出し画像

目線の固定②


いつも同じ基準でラインを引く。

これが口で言うのは簡単だが、実際やるとなると難しい。自分の場合は値動きに合わせてラインを引くのではなくて、「角度は元からある」というオカルトを妄信してラインにEMAが沿っている時にトレードするようにしている。


値動きの癖とか習性とかそういうものを何とか見つけようと検証するのだが、値動きに合わせてラインを引いても一向に糸口が見えてこず、何なら引いたラインを消して同じシーンに再度ラインを引いたら一度目と違うものになった・・・とかいう状況に陥ったりもしつつ。。。


あくまで自分の場合だが、斜めチャネルから出て行く波に「180°」の固定ラインを当ててどのような往来をしているのかを見ると法則が見えて来た。

180°とは、つまり水平ライン。 

そうすると、「一定の縦の長さの波がどういう時に出てどういうふうに折り返すのか」ということが分かってきた。

イメージはこんな感じ。
ラインチャート“にて確認。

下方向に黒矢印を2回出してN波を形成し、もう青チャネルの角度では下がれないという所(青矢印)でロングできたら良いなと思う。

青のチャネルをブレイクする時に「ここにラインがありますよ。これを踏み台にして上昇します。」という具合にリテストがきっちり入った場合は上昇の始点が判りやすく、エントリーもしやすい。

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

※いつも言っているように、この場面が上位足ではどこに位置するのか、上位のMAがどういう軌道なのかというのが前提。

水平をボックスに変えて解説した記事はこちら 「ヘソダブルチャネルとボックス」

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


上下の動きに固定の最小単位がある以上、それらが連なって斜めの角度が発生するというのはまあ頭では理解できなくもない。

ただ、その斜めをきっかけに伸び始めた値動きが、必ず一定の縦の長さで意識されるという理由がうまく説明できない。トレードでは現にそうなっている事実に従うだけだが。

`現にそうなっている事実’の中には、「角度は元からある」「MAが値動きを司っている」ということも含まれていて、チャネルトレードにおいてはこれらの感覚はとても重要で、毎回目線を固定するための前提の考え方だと個人的には思う。


※例に挙げた〝ラインチャート“はこちら。
あくまで目線の固定の練習。

上段が値動き、下段が先ほどの〝ラインチャート“のようなもの。。。


そう、上記はオシレーターの代表格「RSI」

「ん?じゃあ1枚目の画像はRSIであることを伏せて、いかにも値動きのチャートのようにチャネルを当ててそれっぽく見せたのか?」と思うかもしれない。

が、そうではない。  

「二次元である以上はランダムに動くスペースがない。」という言葉を知っているだろうか? 

いや知らなくて良い。筆者が勝手に作った言葉だから。。。

ただ、「値動き以外のグラフのようなものでも、その振り幅の法則にチャネルを当てれば節目からの動きが分かる。」ということを利用して、オシレーターにチャネルを当ててトレードに活かすこともできるということが言いたい。

設定次第では、ロウソク足よりも先に値幅を出し始めることも少なくなく、それって「もう未来予知じゃん」ということになるが、RSIを値動きそのものを元に作ったパラレルなグラフだと考えれば、そんなに突拍子もないことではないかと。

特に真ん中の50%ラインからどちらかに振り幅が出る時を狙ってトレードをするということがRSIの特性を生かした1つのやり方であることを記しておきたい。

ちなみに前回の「目線の固定①」の記事はこちら。


今回はこの辺で。

☆画像中のRSIは、EMA3本(25.75.200)が表示されるようになっている。
TradingViewのPINEスクリプト用のコードを共有しておく。
※有志の方が提供してくれました。( ˊ̱˂˃ˋ̱ )



/@version=5indicator(title="Relative Strength Index with EMAs", shorttitle="RSI+EMAs", format=format.price, precision=2, timeframe="", timeframe_gaps=true)

ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"Bollinger Bands" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)

rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings", display=display.data_window)
maLengthInput = input.int(14, title="MA Length", group="MA Settings", display=display.data_window)
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings", display=display.data_window)
showDivergence = input.bool(false, title="Show Divergence", group="RSI Settings", display=display.data_window)

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
ema1 = ta.ema(rsi, 25)
ema2 = ta.ema(rsi, 75)
ema3 = ta.ema(rsi, 200)
isBB = maTypeInput == "Bollinger Bands"

rsiPlot = plot(rsi, "RSI", color=#7E57C2)
plot(rsiMA, "RSI-based MA", color=color.yellow)
plot(ema1, color=color.blue, title="EMA 25")
plot(ema2, color=color.red, title="EMA 75")
plot(ema3, color=color.green, title="EMA 200")
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
midline = hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
bbUpperBand = plot(isBB ? rsiMA + ta.stdev(rsi, maLengthInput) * bbMultInput : na, title="Upper Bollinger Band", color=color.green)
bbLowerBand = plot(isBB ? rsiMA - ta.stdev(rsi, maLengthInput) * bbMultInput : na, title="Lower Bollinger Band", color=color.green)
fill(bbUpperBand, bbLowerBand, color=isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill")

midLinePlot = plot(50, color=na, editable=false, display=display.none)
fill(rsiPlot, midLinePlot, 100, 70, top_color=color.new(color.green, 0), bottom_color=color.new(color.green, 100), title="Overbought Gradient Fill")
fill(rsiPlot, midLinePlot, 30, 0, top_color=color.new(color.red, 100), bottom_color=color.new(color.red, 0), title="Oversold Gradient Fill")

// Divergence
lookbackRight = 5
lookbackLeft = 5
rangeUpper = 60
rangeLower = 5
bearColor = color.red
bullColor = color.green
textColor = color.white
noneColor = color.new(color.white, 100)

plFound = na(ta.pivotlow(rsi, lookbackLeft, lookbackRight)) ? false : true
phFound = na(ta.pivothigh(rsi, lookbackLeft, lookbackRight)) ? false : true
_inRange(cond) =>
bars = ta.barssince(cond == true)

この記事が気に入ったらサポートをしてみませんか?