PROTECTED SOURCE SCRIPT
Compact Manual Execution Checklist

//version=6
indicator("Compact Manual Execution Checklist", overlay=true)
)
tblPos = tblPosInput == "Top Left" ? position.top_left :
tblPosInput == "Bottom Right" ? position.bottom_right :
tblPosInput == "Bottom Left" ? position.bottom_left :
tblPosInput == "Center" ? position.middle_center :
position.top_right
// ==============================
// EMA CALCULATION
// ==============================
emaVal = request.security(
syminfo.tickerid,
emaTF == "" ? timeframe.period : emaTF,
ta.ema(close, emaLen)
)
emaBull = close > emaVal and emaVal > emaVal[1]
emaBear = close < emaVal and emaVal < emaVal[1]
// ==============================
// SCORE LOGIC (SAFE)
// ==============================
score = (tEMA ? 25 : 0) + (tBC ? 25 : 0) + (tTL ? 25 : 0) + (tOT ? 25 : 0)
grade = score == 100 ? "A+" : score == 75 ? "B+" : "POOR"
gColor = score == 100 ? color.green : score == 75 ? color.orange : color.red
// ==============================
// EMA PLOT
// ==============================
plot(emaVal, "EMA", color=color.orange, linewidth=2)
// ==============================
// CHECKLIST TABLE (ONCE)
// ==============================
var table t = table.new(tblPos, 2, 6, border_width=1)
if barstate.islast
table.cell(t, 0, 0, "RULE", bgcolor=color.gray)
table.cell(t, 1, 0, "✔ / ✖", bgcolor=color.gray)
table.cell(t, 0, 1, "EMA")
table.cell(t, 1, 1, tEMA ? "✔" : "✖", bgcolor=tEMA ? color.green : color.red)
table.cell(t, 0, 2, "B + C")
table.cell(t, 1, 2, tBC ? "✔" : "✖", bgcolor=tBC ? color.green : color.red)
table.cell(t, 0, 3, "TL")
table.cell(t, 1, 3, tTL ? "✔" : "✖", bgcolor=tTL ? color.green : color.red)
table.cell(t, 0, 4, "1T")
table.cell(t, 1, 4, tOT ? "✔" : "✖", bgcolor=tOT ? color.green : color.red)
table.cell(t, 0, 5, "SCORE")
table.cell(t, 1, 5, str.tostring(score) + "% " + grade, bgcolor=gColor)
// ==============================
// EMA BIAS LABEL (NO FLICKER)
// ==============================
var label biasLbl = na
if barstate.islast
label.delete(biasLbl)
biasTxt = emaBull ? "EMA ↑" : emaBear ? "EMA ↓" : "EMA —"
biasCol = emaBull ? color.green : emaBear ? color.red : color.gray
biasLbl := label.new(
bar_index,
high,
biasTxt,
style=label.style_label_left,
color=biasCol,
textcolor=color.white,
size=size.small
)
// ==============================
// SOFT BACKGROUND FEEDBACK
// ==============================
bgcolor(score == 100 ? color.new(color.green, 92) :
score == 75 ? color.new(color.orange, 92) :
na)
indicator("Compact Manual Execution Checklist", overlay=true)
)
tblPos = tblPosInput == "Top Left" ? position.top_left :
tblPosInput == "Bottom Right" ? position.bottom_right :
tblPosInput == "Bottom Left" ? position.bottom_left :
tblPosInput == "Center" ? position.middle_center :
position.top_right
// ==============================
// EMA CALCULATION
// ==============================
emaVal = request.security(
syminfo.tickerid,
emaTF == "" ? timeframe.period : emaTF,
ta.ema(close, emaLen)
)
emaBull = close > emaVal and emaVal > emaVal[1]
emaBear = close < emaVal and emaVal < emaVal[1]
// ==============================
// SCORE LOGIC (SAFE)
// ==============================
score = (tEMA ? 25 : 0) + (tBC ? 25 : 0) + (tTL ? 25 : 0) + (tOT ? 25 : 0)
grade = score == 100 ? "A+" : score == 75 ? "B+" : "POOR"
gColor = score == 100 ? color.green : score == 75 ? color.orange : color.red
// ==============================
// EMA PLOT
// ==============================
plot(emaVal, "EMA", color=color.orange, linewidth=2)
// ==============================
// CHECKLIST TABLE (ONCE)
// ==============================
var table t = table.new(tblPos, 2, 6, border_width=1)
if barstate.islast
table.cell(t, 0, 0, "RULE", bgcolor=color.gray)
table.cell(t, 1, 0, "✔ / ✖", bgcolor=color.gray)
table.cell(t, 0, 1, "EMA")
table.cell(t, 1, 1, tEMA ? "✔" : "✖", bgcolor=tEMA ? color.green : color.red)
table.cell(t, 0, 2, "B + C")
table.cell(t, 1, 2, tBC ? "✔" : "✖", bgcolor=tBC ? color.green : color.red)
table.cell(t, 0, 3, "TL")
table.cell(t, 1, 3, tTL ? "✔" : "✖", bgcolor=tTL ? color.green : color.red)
table.cell(t, 0, 4, "1T")
table.cell(t, 1, 4, tOT ? "✔" : "✖", bgcolor=tOT ? color.green : color.red)
table.cell(t, 0, 5, "SCORE")
table.cell(t, 1, 5, str.tostring(score) + "% " + grade, bgcolor=gColor)
// ==============================
// EMA BIAS LABEL (NO FLICKER)
// ==============================
var label biasLbl = na
if barstate.islast
label.delete(biasLbl)
biasTxt = emaBull ? "EMA ↑" : emaBear ? "EMA ↓" : "EMA —"
biasCol = emaBull ? color.green : emaBear ? color.red : color.gray
biasLbl := label.new(
bar_index,
high,
biasTxt,
style=label.style_label_left,
color=biasCol,
textcolor=color.white,
size=size.small
)
// ==============================
// SOFT BACKGROUND FEEDBACK
// ==============================
bgcolor(score == 100 ? color.new(color.green, 92) :
score == 75 ? color.new(color.orange, 92) :
na)
Mã được bảo vệ
Tập lệnh này được đăng dưới dạng mã nguồn đóng. Tuy nhiên, bạn có thể sử dụng tự do và không giới hạn – tìm hiểu thêm tại đây.
Thông báo miễn trừ trách nhiệm
Thông tin và các ấn phẩm này không nhằm mục đích, và không cấu thành, lời khuyên hoặc khuyến nghị về tài chính, đầu tư, giao dịch hay các loại khác do TradingView cung cấp hoặc xác nhận. Đọc thêm tại Điều khoản Sử dụng.
Mã được bảo vệ
Tập lệnh này được đăng dưới dạng mã nguồn đóng. Tuy nhiên, bạn có thể sử dụng tự do và không giới hạn – tìm hiểu thêm tại đây.
Thông báo miễn trừ trách nhiệm
Thông tin và các ấn phẩm này không nhằm mục đích, và không cấu thành, lời khuyên hoặc khuyến nghị về tài chính, đầu tư, giao dịch hay các loại khác do TradingView cung cấp hoặc xác nhận. Đọc thêm tại Điều khoản Sử dụng.