Machine Learning: Perceptron-based strategy

Perceptron-based strategy


The Learning Perceptron is the simplest possible artificial neural network (ANN), consisting of just a single neuron and capable of learning a certain class of binary classification problems. The idea behind ANNs is that by selecting good values for the weight parameters (and the bias), the ANN can model the relationships between the inputs and some target.

Generally, ANN neurons receive a number of inputs, weight each of those inputs, sum the weights, and then transform that sum using a special function called an activation function. The output of that activation function is then either used as the prediction (in a single neuron model) or is combined with the outputs of other neurons for further use in more complex models.

The purpose of the activation function is to take the input signal (that’s the weighted sum of the inputs and the bias) and turn it into an output signal. Think of this activation function as firing (activating) the neuron when it returns 1, and doing nothing when it returns 0. This sort of computation is accomplished with a function called step function: f(z) = {1 if z > 0 else 0}. This function then transforms any weighted sum of the inputs and converts it into a binary output (either 1 or 0). The trick to making this useful is finding (learning) a set of weights that lead to good predictions using this activation function.

Training our perceptron is simply a matter of initializing the weights to zero (or random value) and then implementing the perceptron learning rule, which just updates the weights based on the error of each observation with the current weights. This has the effect of moving the classifier’s decision boundary in the direction that would have helped it classify the last observation correctly. This is achieved via a for loop which iterates over each observation, making a prediction of each observation, calculating the error of that prediction and then updating the weights accordingly. In this way, weights are gradually updated until they converge. Each sweep through the training data is called an epoch.

In this script the perceptron is retrained on each new bar trying to classify this bar by drawing the moving average curve above or below the bar.

This script was tested with BTCUSD , USDJPY , and EURUSD .

Note: TradingViews's playback feature helps to see this strategy in action.
Warning: Signals ARE repainting.

Style tags: Trend Following, Trend Analysis
Asset class: Equities, Futures , ETFs, Currencies and Commodities
Dataset: FX Minutes/Hours+/Days
Informacje o Wersji: Minor fix.
Informacje o Wersji: Minor fixes plus added custom performance testing.
Skrypt open-source

Zgodnie z prawdziwym duchem TradingView, autor tego skryptu opublikował go jako open-source, aby traderzy mogli go zrozumieć i zweryfikować. Brawo dla autora! Możesz używać go za darmo, ale ponowne wykorzystanie tego kodu w publikacji jest regulowane przez Dobre Praktyki. Możesz go dodać do ulubionych, żeby używać go na wykresie.

Chcesz użyć tego skryptu na wykresie?


Thanks sir for your strategy expert, so far so good
100 monet
Hello, Capissimo I like your indicator but the problem for me is I am missing out on every alert on the stock which it gives is there a way to scan the stocks according to the one which is going to got alert or a filter to screen stocks according to the win ratio can you please help looking forward to hear from you.
How could we factor in commission cost into the price to allow the perceptron to regard a trade as bad if with the commission it would no longer be profitable?
looks like heavy overfit :/
which one has better a win rate or more reliable, ANN (perception) and KNN for trading?
capissimo hsnxcoin
@hsnxcoin, it is reported that kNN performs best. From my experience any one of them could become a winner. It's the way how you build and fine-tune your model that matters.
hsnxcoin capissimo
@capissimo, Thank you. Another question. Is the algorighm is training itself continuously when I am using it now. Or it is trained already, and now only doing its job which is predicting and classifying?

Also, it would be great if you explain what are CR and bartime.
capissimo hsnxcoin
@hsnxcoin, all algos work differently as far as training is concerned. The above model is retrained on each new bar. Ple regard CR (cumulative return) as a benchmark assisting in tuning the model. Bartime shows the current bar's expiration and has nothing to do with the model itself, just helping you to time your trades.
hsnxcoin capissimo
@capissimo, Thank you.
any hope to see it with alarms ? please