TradingView
capissimo
Jan 21, 2021 9:22 AM

Machine Learning: Perceptron-based strategy 

Bitcoin / United States DollarCoinbase

Description

Perceptron-based strategy

Description:

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

Release Notes

Minor fix.

Release Notes

Minor fixes plus added custom performance testing.

Release Notes

This version of the script has been thoroughly reworked and corrected. It also includes some new features, such as a custom DMI.

Release Notes

Solved! Now the perceptron is up & running.
Comments
thesimsx
Thanks sir for your strategy expert, so far so good
danielcampos2
hey I dont wanna be rude, your indicator isnt neural network based, I created the same signals that your indicator does using 70% of the code of that indicator, the neural network formula simply affects nothing in the final result.
if you plot the err_ma and a 20 period SMA its the same plot
ufehffef
@danielcampos2, you can change the indicators and lookback period used for the "neural network", from rsi to anything, from 14 to anything, zero change.
This indicator is essentially worthless, this guy is sitting back laughing at all the people who think it's a "neural network"
murse_money
@ufehffef, It's free and you don't have to use it. This guy isn't sitting back laughing at anything.
ufehffef
@murse_money, damn you be arguing on behalf of random people on the internet for no reason
murse_money
@ufehffef, At least I'm not an ungrateful peasant making things up about random people on the internet for no reason.
ufehffef
@murse_money, so exactly which part of this script contains machine learning, tell me something I don't know for once
murse_money
@ufehffef, lol "something I don't know for once".......wow. Priceless. The ego is on fire with this one.
ufehffef
@murse_money, stay mad and keep crying, literallyno one is stopping you from gambling your investment with scripts you don't understand 😂😂
murse_money
@ufehffef, lol ok.
More