As @l-andorrĂ said, you can't build custom indicator, you can only build an EA. They are both programs, doing something on every tick. But there are differences.
The main idea of the indicator is that it produces one or more arrays of numeric data (called buffers). These buffers are read by MetaTrader, or the EA that is using the indicator. MetaTrader would produce visual output (lines, arrows, histograms...), the EA would use the numeric data somehow. All of this happens in the moment the indicator is loaded. Then, on every tick the indicator would recalculate the last part of the data. Indicators cannot trade.
Expert advisors... they don't have such specific purpose. They also receive the tick events, but usually on every tick they check some things and when needed they create/modify/delete orders.
In other words, indicators are programs, optimized to build arrays of data, who can then be visualized somehow or just read by other programs. EAs can also print some things on the chart, but usually after the moment they are started.