0bps

Strategy vault / Multi-timeframe

MacD Custom Indicator Multiple Time FrameAll Available Options

Regular MACD Indicator with Histogram that plots 4 Colors Based on Direction Above and Below the Zero Line Update allows Check Box Options, Show MacD & Signal Line, Show Change In color of MacD Line based on cross of…

Author
ChaoZhang
Complexity
Intermediate · 68 lines
Parameters
10
Backtest bar
1h · intraday
Tested on
BTC/USDT · futures

Regular MACD Indicator with Histogram that plots 4 Colors Based on Direction Above and Below the Zero Line Update allows Check Box Options, Show MacD & Signal Line, Show Change In color of MacD Line based on cross of Signal Line. Show Dots at Cross of MacD and Signal Line, Histogram can show 4 colors or 1, Turn on and off Histogram. Special Thanks to that incredible person in Tech Support whoem I won't say you r name so you don't get bombarded with emails Note the feature Tech Support showed me on how to set the default timeframe of the indicator to the chart Timeframe, but also allow you to choose a different timeframe. By the way I fully disclose that I completely STOLE the Dots at the MAcd Cross from "TheLark"

backtest

IMG

Parameters

NameDefaultWhat it controls
v_input_1trueUse Current Chart Resolution?
v_input_260Use Different Timeframe? Uncheck Box Above
v_input_3trueShow MacD & Signal Line? Also Turn Off Dots Below
v_input_4trueShow Dots When MacD Crosses Signal Line?
v_input_5trueShow Histogram?
v_input_6trueChange MacD Line Color-Signal Line Cross?
v_input_7trueMacD Histogram 4 Colors?
v_input_812v_input_8
v_input_926v_input_9
v_input_109v_input_10

Source Pine Script

/*backtest
start: 2021-05-05 00:00:00
end: 2022-05-04 23:59:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Created by user ChrisMoody updated 4-10-2014
//Regular MACD Indicator with Histogram that plots 4 Colors Based on Direction Above and Below the Zero Line
//Update allows Check Box Options, Show MacD & Signal Line, Show Change In color of MacD Line based on cross of Signal Line.
//Show Dots at Cross of MacD and Signal Line, Histogram can show 4 colors or 1, Turn on and off Histogram.
//Special Thanks to that incredible person in Tech Support whoem I won't say you r name so you don't get bombarded with emails
//Note the feature Tech Support showed me on how to set the default timeframe of the indicator to the chart Timeframe, but also allow you to choose a different timeframe.
//By the way I fully disclose that I completely STOLE the Dots at the MAcd Cross from "TheLark"

study(title="CM_MacD_Ult_MTF", shorttitle="CM_Ult_MacD_MTF")
source = close
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above", defval="60")
smd = input(true, title="Show MacD & Signal Line? Also Turn Off Dots Below")
sd = input(true, title="Show Dots When MacD Crosses Signal Line?")
sh = input(true, title="Show Histogram?")
macd_colorChange = input(true,title="Change MacD Line Color-Signal Line Cross?")
hist_colorChange = input(true,title="MacD Histogram 4 Colors?")

res = useCurrentRes ? timeframe.period : resCustom

fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(9,minval=1)

fastMA = ta.ema(source, fastLength)
slowMA = ta.ema(source, slowLength)

outMacD = fastMA - slowMA
outSignal = ta.sma(outMacD, signalLength)
outHist = outMacD - outSignal

//outMacD = request.security(timeframe.period, res, mymacd)
//outSignal = request.security(timeframe.period, res, signal)
//outHist = request.security(timeframe.period, res, hist)

histA_IsUp = outHist > outHist[1] and outHist > 0
histA_IsDown = outHist < outHist[1] and outHist > 0
histB_IsDown = outHist < outHist[1] and outHist <= 0
histB_IsUp = outHist > outHist[1] and outHist <= 0

//MacD Color Definitions
macd_IsAbove = outMacD >= outSignal
macd_IsBelow = outMacD < outSignal

plot_color = hist_colorChange ? histA_IsUp ? color.aqua : histA_IsDown ? color.blue : histB_IsDown ? color.red : histB_IsUp ? color.maroon :color.yellow :color.gray
macd_color = macd_colorChange ? macd_IsAbove ? color.lime : color.red : color.red
signal_color = macd_colorChange ? macd_IsAbove ? color.yellow : color.yellow : color.lime

circleYPosition = outSignal
 
plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=4)
plot(smd and outSignal ? outSignal : na, title="Signal Line", color=signal_color, style=plot.style_line ,linewidth=2)
//plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=histogram, linewidth=4)
plot(sd and ta.cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=plot.style_circles, linewidth=4, color=macd_color)
//hline(0, '0 Line', linestyle=hline.style_solid, linewidth=2, color=color.white)

if outMacD > outSignal and math.abs(outMacD - outSignal) >90
    strategy.entry("entry long", strategy.long)
else if outMacD < outSignal and math.abs(outMacD - outSignal) >90
    strategy.entry("entry short", strategy.short)
    

Published by ChaoZhang on the FMZ strategy square · last modified 2022-05-06. Collected in the Quant Trading Vault. Unvalidated research: re-test with your own data and costs before trusting it.

Build this with AgenKit

A spec is not a trading system. Paste this into your coding agent and AgenKit runs a specialist team — architecture, test-first build, risk gates, review — with paper trading on by default.

in Claude Code, Cursor, Codex & 4 more
/agenkit build a production-grade trading bot with a backtest engine, risk controls and paper trading by default from strategies/MacD-Custom-Indicator-Multiple-Time-FrameAll-Available-Options.md
  1. npx agenkit install engineering-kit in your project
  2. Paste the command into your agent and approve each phase
  3. Get tests, backtest, risk controls and a paper-trading switch

Understand it first

Before you run this, read the lesson behind the idea and how to backtest it honestly. Specs like this one are the survivors of an unknown number of trials; deflate their results accordingly.

Related specs

esc

Try , , or .

↑↓ move↵ open