見出し画像

カラフルmacd_ADXキャンドル

はじめまして、’みそ’です。

Twitterでは利益関係なく有益な情報を出してくださっている方がたくさんおり、私も触発されて何か出せないかなーと思っておりました。

最近はインジケータ作成がマイブームになっており、色んなロジックを探して実装したりしてみてました。

今回は、traders tipsの2018年にあった、MACDとADXで確認したトレンドをローソクの色として表現するインジケータです。ADXの上昇によりトレンドづいてきているか、MACDで上昇トレンドか下降トレンドかを判断しています。

見え方としては、タイトル画像のようになります。

なんとなく見た目と色感でわかると思いますが、緑と青が上昇トレンドで、緑の方が強いです。黄色と赤が下降トレンドで赤が強い。

うまく活用すればトレンド転換もうまく測れそうですが、単純な色の移り変わりで売り買いするストラテジーにしてバックテストしてみましたが、うまくいきませんw

ADXやMACDは傾きの強さなんかも意識するといいのかもしれません。コードそのまま載せちゃいますので工夫して使ってみてください。

いつものローソクと同じ場所に描画しているので、見たい時はいつものをオフにしてくださいね。

念のためエディタでの追加方法も載せておきますね。

//@version=2
study("macadx", overlay = true)
len = input(title="Length", type=integer, defval=10)
th = input(title="threshold", type=integer, defval=20)

TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0

SmoothedTrueRange = nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange
SmoothedDirectionalMovementPlus = nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus

DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
ADX = sma(DX, len)

//plot(DIPlus, color=green, title="DI+")
//plot(DIMinus, color=red, title="DI-")
//plot(ADX, color=black, title="ADX")
//hline(th, color=black, linestyle=dashed)

[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
candlecolor = black
candlenum = 0

if ADX > ADX[1] and macdLine > macdLine[1]
//CAM up
    candlecolor := green
    candlenum := 2

if ADX <= ADX[1] and macdLine < macdLine[1]
//CAM PB
    candlecolor := yellow
    candlenum := -1

if ADX >= ADX[1] and macdLine<macdLine[1]
//CAM DN
    candlecolor := red
    candlenum := -2

if ADX <= ADX[1] and macdLine>macdLine[1]
//CAM CT
    candlecolor:= blue
    candlenum := 1

plotcandle(open,high,low,close,"colorful",candlecolor)

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