Lagging indicators aren’t necessarily a bad thing insofar as they can in certain circumstances filter out noise, and in the case of e.g., MACD and Stochastics, can signal divergence (considered a leading indicator).
Of some note is the hybrid volatility-based indicator “KAMA” (Kaufman’s Adaptive Moving Average), a lagging indicator that remains near the current market price, but when volatility increases, it will lag even further behind. Again, useful for filtering out spurious entries in some trading systems.
The only (simple) leading indicators I know of are straight lines/channels, and again in my experience, the most studied system using straight lines is Andrew’s median lines (“Pitchforks”) as popularised by Tim Morge, who assigned probabilities to the behaviour of price inside the channel from which he was able to derive trading rules
Note there is some evidence leading indicators at least perform best on tick charts rather than time charts.
If you’re inclined to math I’ve also found it profitable to experiment with semi-random walks to test the hypothesis that while market prices seem largely stochastic some of trend and cyclical characteristics are due to human intervention rather than chance, and human behaviour can be predicted to some extent. It’s educational to study the extent to which “unpredictability” is built into whatever process generates “price”–the point at which even expectation of future price estimated via a neural net, say, runs into a brick wall.
If inclined to coding, here is an example Python script (not mine but public domain) to illustrate:
import random
import matplotlib.pyplot as plt
def semi_random_walk(steps):
position = 0
positions = [position]
for _ in range(steps):
# Introduce some bias (e.g., 70% chance of moving up)
if random.random() < 0.50005:
position += 1
else:
position -= 1
positions.append(position)
return positions
num_steps = 10000
walk_positions = semi_random_walk(num_steps)
plt.plot(walk_positions)
plt.xlabel("Steps")
plt.ylabel("Position")
plt.title("1D Semi-Random Walk")
plt.show()
All of that said, while I still trade manually, in my dotage tend to rely on automated scripts to pick entries and exits. In my experience Kevin Davey has published a number of decent books on developing such “bots” using traditional indicators, and lately my son and I have had some success applying AI to tease out the predictable component (human induced trend and cycle) from price.