本页源码来自 TradingView 公开发布的开源脚本,版权归原作者所有, 请遵循其原始许可(Pine 脚本常见 CC BY-NC-SA / MPL-2.0 / MIT)。 本项目仅用于研究检索与许可范围内的移植。
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Violent
//@version=4
study("Stochastic Heat Map", shorttitle="SHM", overlay=false)
_source = close
MA = input(title="MA", options=["SMA", "EMA", "WMA"], defval="SMA")
Theme = input(title="Theme", options=["Theme 1", "Theme 2", "Theme 3"], defval="Theme 2")
inc = input(title="Increment", defval=1)
smooth = input(title="Smooth Fast", defval=1, type=input.integer)
smoothSlow = input(title="Smooth Slow", defval=5, type=input.integer)
PaintBars = input(title="Paint Bars", defval=true, type=input.bool)
IncType = input(title="Waves", defval=false, type=input.bool)
plotNumber = 28
trans = 0
cp1 = color.new(#01ff00, trans)
cp2 = color.new(#05c704, trans)
cp3 = color.new(#019900, trans)
cp4 = color.new(#016900, trans)
cp5 = color.new(#014a00, trans)
cn1 = color.new(#ff0505, trans)
cn2 = color.new(#d60606, trans)
cn3 = color.new(#a30707, trans)
cn4 = color.new(#780606, trans)
cn5 = color.new(#4d0303, trans)
cp6 = color.new(#0ddcfc, trans)
cp7 = color.new(#0bbbd6, trans)
cp8 = color.new(#0893a8, trans)
cp9 = color.new(#087080, trans)
cp10 = color.new(#044e59, trans)
cn6 = color.new(#d107f5, trans)
cn7 = color.new(#b706d6, trans)
cn8 = color.new(#9705b0, trans)
cn9 = color.new(#740487, trans)
cn10 = color.new(#530361, trans)
cp11 = color.new(#cf0000, trans)
cp12 = color.new(#f22b11, trans)
cp13 = color.new(#f29811, trans)
cp14 = color.new(#eef211, trans)
cp15 = color.new(#3af211, trans)
cn11 = color.new(#2f11f2, trans)
cn12 = color.new(#1176f2, trans)
cn13 = color.new(#11dbf2, trans)
cn14 = color.new(#11f276, trans)
cn15 = color.new(#11f075, trans)
fc1 = color.new(color.white, 0)
sc1 = color.new(color.silver, 0)
fc2 = color.new(color.white, 0)
sc2 = color.new(color.blue, 0)
fc3 = color.new(color.white, 0)
sc3 = color.new(color.orange, 0)
fastColour = Theme == "Theme 1" ? fc1 : Theme == "Theme 2" ? fc2 : fc3
slowColour = Theme == "Theme 1" ? sc1 : Theme == "Theme 2" ? sc2 : sc3
pColour1 = Theme == "Theme 1" ? cp1 : Theme == "Theme 2" ? cp6 : cp11
pColour2 = Theme == "Theme 1" ? cp2 : Theme == "Theme 2" ? cp7 : cp12
pColour3 = Theme == "Theme 1" ? cp3 : Theme == "Theme 2" ? cp8 : cp13
pColour4 = Theme == "Theme 1" ? cp4 : Theme == "Theme 2" ? cp9 : cp14
pColour5 = Theme == "Theme 1" ? cp5 : Theme == "Theme 2" ? cp10 : cp15
nColour1 = Theme == "Theme 1" ? cn1 : Theme == "Theme 2" ? cn6 : cn11
nColour2 = Theme == "Theme 1" ? cn2 : Theme == "Theme 2" ? cn7 : cn12
nColour3 = Theme == "Theme 1" ? cn3 : Theme == "Theme 2" ? cn8 : cn13
nColour4 = Theme == "Theme 1" ? cn4 : Theme == "Theme 2" ? cn9 : cn14
nColour5 = Theme == "Theme 1" ? cn5 : Theme == "Theme 2" ? cn10 : cn15
getColour(a) =>
if(a >= 90)
pColour1
else
if(a >= 80)
pColour2
else
if(a >= 70)
pColour3
else
if(a >= 60)
pColour4
else
if(a >= 50)
pColour5
else
if(a >= 40)
nColour5
else
if(a >= 30)
nColour4
else
if(a >= 20)
nColour3
else
if(a >= 10)
nColour2
else
if(a >= 0)
nColour1
getStoch(i, incr) =>
c = (i * inc)
s = smooth + incr
if MA == "SMA"
sma(stoch(_source, high, low, c), s)
else
if MA == "EMA"
ema(stoch(_source, high, low, c), s)
else
if MA == "WMA"
wma(stoch(_source, high, low, c), s)
stoch1 = plotNumber > 0 ? getStoch(IncType ? 1 : 1 , IncType ? 1 : 0) : na
stoch2 = plotNumber > 1 ? getStoch(IncType ? 2 : 2 , IncType ? 2 : 0) : na
stoch3 = plotNumber > 2 ? getStoch(IncType ? 3 : 3 , IncType ? 3 : 0) : na
stoch4 = plotNumber > 3 ? getStoch(IncType ? 4 : 4 , IncType ? 4 : 0) : na
stoch5 = plotNumber > 4 ? getStoch(IncType ? 5 : 5 , IncType ? 5 : 0) : na
stoch6 = plotNumber > 5 ? getStoch(IncType ? 6 : 6 , IncType ? 6 : 0) : na
stoch7 = plotNumber > 6 ? getStoch(IncType ? 7 : 7 , IncType ? 7 : 0) : na
stoch8 = plotNumber > 7 ? getStoch(IncType ? 8 : 8 , IncType ? 8 : 0) : na
stoch9 = plotNumber > 8 ? getStoch(IncType ? 9 : 9 , IncType ? 9 : 0) : na
stoch10 = plotNumber > 9 ? getStoch(IncType ? 10 : 10, IncType ? 10 : 0) : na
stoch11 = plotNumber > 10 ? getStoch(IncType ? 15 : 11, IncType ? 11 : 0) : na
stoch12 = plotNumber > 11 ? getStoch(IncType ? 20 : 12, IncType ? 12 : 0) : na
stoch13 = plotNumber > 12 ? getStoch(IncType ? 25 : 13, IncType ? 13 : 0) : na
stoch14 = plotNumber > 13 ? getStoch(IncType ? 30 : 14, IncType ? 14 : 0) : na
stoch15 = plotNumber > 14 ? getStoch(IncType ? 35 : 15, IncType ? 15 : 0) : na
stoch16 = plotNumber > 15 ? getStoch(IncType ? 40 : 16, IncType ? 16 : 0) : na
stoch17 = plotNumber > 16 ? getStoch(IncType ? 45 : 17, IncType ? 17 : 0) : na
stoch18 = plotNumber > 17 ? getStoch(IncType ? 50 : 18, IncType ? 18 : 0) : na
stoch19 = plotNumber > 18 ? getStoch(IncType ? 55 : 19, IncType ? 19 : 0) : na
stoch20 = plotNumber > 19 ? getStoch(IncType ? 60 : 20, IncType ? 20 : 0) : na
stoch21 = plotNumber > 20 ? getStoch(IncType ? 70 : 21, IncType ? 21 : 0) : na
stoch22 = plotNumber > 21 ? getStoch(IncType ? 80 : 22, IncType ? 22 : 0) : na
stoch23 = plotNumber > 22 ? getStoch(IncType ? 90 : 23, IncType ? 23 : 0) : na
stoch24 = plotNumber > 23 ? getStoch(IncType ? 100 : 24, IncType ? 24 : 0) : na
stoch25 = plotNumber > 24 ? getStoch(IncType ? 110 : 25, IncType ? 25 : 0) : na
stoch26 = plotNumber > 25 ? getStoch(IncType ? 120 : 26, IncType ? 26 : 0) : na
stoch27 = plotNumber > 26 ? getStoch(IncType ? 140 : 27, IncType ? 27 : 0) : na
stoch28 = plotNumber > 27 ? getStoch(IncType ? 160 : 28, IncType ? 28 : 0) : na
stoch29 = plotNumber > 28 ? getStoch(IncType ? 180 : 29, IncType ? 29 : 0) : na
colour1 = plotNumber > 0 ? getColour(stoch1) : na
colour2 = plotNumber > 1 ? getColour(stoch2) : na
colour3 = plotNumber > 2 ? getColour(stoch3) : na
colour4 = plotNumber > 3 ? getColour(stoch4) : na
colour5 = plotNumber > 4 ? getColour(stoch5) : na
colour6 = plotNumber > 5 ? getColour(stoch6) : na
colour7 = plotNumber > 6 ? getColour(stoch7) : na
colour8 = plotNumber > 7 ? getColour(stoch8) : na
colour9 = plotNumber > 8 ? getColour(stoch9) : na
colour10 = plotNumber > 9 ? getColour(stoch10) : na
colour11 = plotNumber > 10 ? getColour(stoch11) : na
colour12 = plotNumber > 11 ? getColour(stoch12) : na
colour13 = plotNumber > 12 ? getColour(stoch13) : na
colour14 = plotNumber > 13 ? getColour(stoch14) : na
colour15 = plotNumber > 14 ? getColour(stoch15) : na
colour16 = plotNumber > 15 ? getColour(stoch16) : na
colour17 = plotNumber > 16 ? getColour(stoch17) : na
colour18 = plotNumber > 17 ? getColour(stoch18) : na
colour19 = plotNumber > 18 ? getColour(stoch19) : na
colour20 = plotNumber > 19 ? getColour(stoch20) : na
colour21 = plotNumber > 20 ? getColour(stoch21) : na
colour22 = plotNumber > 21 ? getColour(stoch22) : na
colour23 = plotNumber > 22 ? getColour(stoch23) : na
colour24 = plotNumber > 23 ? getColour(stoch24) : na
colour25 = plotNumber > 24 ? getColour(stoch25) : na
colour26 = plotNumber > 25 ? getColour(stoch26) : na
colour27 = plotNumber > 26 ? getColour(stoch27) : na
colour28 = plotNumber > 27 ? getColour(stoch28) : na
getAverage = (stoch1 + stoch2 + stoch3 + stoch4 + stoch5 + stoch6 + stoch7 + stoch8 + stoch9 + stoch10 + stoch11 + stoch12 + stoch13 + stoch14 + stoch15 + stoch16 + stoch17 + stoch18 + stoch19 + stoch20 + stoch21 + stoch22 + stoch23 + stoch24 + stoch25 + stoch26 + stoch27 + stoch28) / plotNumber
fast = ((getAverage / 100) * plotNumber) / 100
slow = MA == "SMA" ? sma(fast, smoothSlow) : MA == "EMA" ? ema(fast, smoothSlow) : wma(fast, smoothSlow)
barColour = getColour(getAverage)
plot1 = plot(.01, color=colour1, linewidth=1)
plot2 = plot(.02, color=colour2, linewidth=1)
plot3 = plot(.03, color=colour3, linewidth=1)
plot4 = plot(.04, color=colour4, linewidth=1)
plot5 = plot(.05, color=colour5, linewidth=1)
plot6 = plot(.06, color=colour6, linewidth=1)
plot7 = plot(.07, color=colour7, linewidth=1)
plot8 = plot(.08, color=colour8, linewidth=1)
plot9 = plot(.09, color=colour9, linewidth=1)
plot10 = plot(.10, color=colour10, linewidth=1)
plot11 = plot(.11, color=colour11, linewidth=1)
plot12 = plot(.12, color=colour12, linewidth=1)
plot13 = plot(.13, color=colour13, linewidth=1)
plot14 = plot(.14, color=colour14, linewidth=1)
plot15 = plot(.15, color=colour15, linewidth=1)
plot16 = plot(.16, color=colour16, linewidth=1)
plot17 = plot(.17, color=colour17, linewidth=1)
plot18 = plot(.18, color=colour18, linewidth=1)
plot19 = plot(.19, color=colour19, linewidth=1)
plot20 = plot(.20, color=colour20, linewidth=1)
plot21 = plot(.21, color=colour21, linewidth=1)
plot22 = plot(.22, color=colour22, linewidth=1)
plot23 = plot(.23, color=colour23, linewidth=1)
plot24 = plot(.24, color=colour24, linewidth=1)
plot25 = plot(.25, color=colour25, linewidth=1)
plot26 = plot(.26, color=colour26, linewidth=1)
plot27 = plot(.27, color=colour27, linewidth=1)
plot28 = plot(.28, color=colour28, linewidth=1)
hline(.14, linestyle=hline.style_dotted, color=color.new(color.white, 25))
hline(.28, linestyle=hline.style_dotted, color=color.new(color.gray, 25))
hline(0, linestyle=hline.style_dotted, color=color.new(color.gray, 25))
plot(slow, color=slowColour, linewidth=2, style=plot.style_line)
plot(fast, color=fastColour, linewidth=2, style=plot.style_line)
barcolor(PaintBars ? barColour : na)
// -->