Which error metric is best for financial returns?

I am trying to predict price change i.e most of the time values around zero (+ and -). In my backtest I predict only one period during test. I would like to know in each iteration which model was the best, compare y_predict vs y_test (both of size 1).

Which regression metric would be the best in this case? To capture at the same time the minimised error but also the side of the value.

Exemple :

y_true = 0.03
y_predictM1 = -0.01
y_predictM2 = 0.11

Model1 has lower error car the distance is shorter for the true value. Model2 has higher error however has the right side of the trade. Meaning that if I decide to invest, I would have been off however It is still a winning trade

Update : Some type of idea. I check if they have the same sign, if yes I just take the MAE, if not I calculate the MAE but also add a large number. Can this function be accepted in the RandomSearch scoring function?

def customMAE(yTrue,yPred):
    
    
    if isinstance(list(yTrue), list) == False:
        sys.exit(Type of object should be a list)
    if isinstance(list(yPred), list) == False:
        sys.exit(Type of object should be a list)
    if len(yTrue) != len(yPred):
        sys.exit(yTrue  yPred should be the same length)
    
    custom_mae = []
    for i,j in zip(yTrue,yPred):
        if i*j0:
            custom_mae.append(mean_absolute_error([i],[j]))
        else:
            custom_mae.append(mean_absolute_error([i],[j])+1000)
    return custom_mae

Topic metric finance regression machine-learning

Category Data Science

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.