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
Notas de Lançamento: Minor fix.
Notas de Lançamento: Minor fixes plus added custom performance testing.
Script de código aberto

No verdadeiro espírito TradingView, o autor deste script o publicou com código aberto, para que os traders possam compreendê-lo e verificá-lo. Um brinde ao autor! Você pode usá-lo gratuitamente, mas a reutilização deste código em uma publicação é regida pelas Regras da Casa. Você pode favoritá-lo para utilizá-lo em um gráfico.

Quer usar esse script no gráfico?


Thanks sir for your strategy expert, so far so good
100 moedas
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
bro mtf pl