L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 2057

 
Maxim Dmitrievsky:

s'est juste assis et a écrit un analyseur.

Voici le modèle, vous devez y introduire 15 derniers incréments, sur chaque barre. Les incréments sont comptés comme le prix moins la moyenne oblique sur 5 périodes. La fonction double catboost_model(const double &features[]) doit être écrite dans le fichier

Si le signal est supérieur à 0,5, achetez, s'il est inférieur, vendez. Le délai est de 15 minutes.

J'ai été formé du 1er septembre à aujourd'hui.

je ne peux pas le faire de toute façon... je vais juste le laisser ici ))

Je suis sur la route en ce moment, je vais essayer dans deux heures)
 
Alexander Alekseyevich:
Je suis sur la route en ce moment, je vais essayer dans 2 heures)

J'ai déjà essayé, c'est une coulée.

alors je découvrirai pourquoi.

 
Maxim Dmitrievsky:

s'est juste assis et a écrit un analyseur.

Voici le modèle, vous devez y introduire 15 derniers incréments, sur chaque barre. Les incréments sont comptés comme le prix moins la moyenne oblique sur 5 périodes. La fonction double catboost_model(const double &features[]) doit être écrite dans le fichier

Si le signal est supérieur à 0,5, achetez, s'il est inférieur, vendez. Le délai est de 15 minutes.

J'ai été formé du 1er septembre à aujourd'hui.

je ne peux pas le faire de toute façon... je vais juste le laisser ici ))

Ce modèle passe-t-il par Pythorch ? Est-il auto-généré ? Ou comment ? Je n'utilisais pas d'applications tierces, je faisais tout dans mt. Il ne fonctionne pas correctement. )))) C'est peut-être pour cela que vous avez des résultats différents.
 
Alexander Alekseevich:
Est-ce un modèle via pythorch ? Est-il auto-généré ? Ou comment ? Je n'utilisais pas d'applications tierces, je faisais tout dans mt. Il ne fonctionne pas correctement)))) c'est peut-être pour cela que vous obtenez des résultats différents.

analyser le code du modèle (traduction de python à mql) et l'écrire en .mqh

 

fixé... fixer l'un, casser l'autre. Maintenant, il ne gagne pas sur OOS :D

De plus, les spreads sous-estiment la rentabilité. Mais le modèle est facilement transportable. Vous pouvez choisir des variantes...


 
Maxim Dmitrievsky:

fixé... fixer l'un, casser l'autre. Maintenant, il ne gagne pas sur OOS :D

De plus, les spreads sous-estiment la rentabilité. Mais le modèle est facilement transportable. Vous pouvez choisir des options...


Si vous êtes un débutant, il est toujours avec vous...

 

si vous ajoutez des jours, des heures, etc. aux fics, cela ne fait rien :

def get_prices(look_back = 15):
    prices = pd.DataFrame(mt5.copy_rates_range(SYMBOL, TIMEFRAME, START, STOP), 
                            columns=['time', 'close']).set_index('time')
    # set df index as datetime
    prices.index = pd.to_datetime(prices.index, unit='s')
    prices = prices.dropna()
    ratesM = prices.rolling(MA_PERIOD).mean()
    ratesD = prices - ratesM
    for i in range(look_back):
        prices[str(i)] = ratesD.shift(i)
    prices['h'] = prices.index.hour
    prices['dw'] = prices.index.dayofweek
    prices['d'] = prices.index.day
    prices['m'] = prices.index.month
    return prices.dropna()

bestTest = 0.4918224299

Je le dis juste pour que personne ne puisse l'abîmer.


 
Maxim Dmitrievsky:

si vous ajoutez des jours, des heures, etc. aux fics, cela ne fait rien :

bestTest = 0.4918224299

Juste pour vous épargner la peine.


Maxim, pouvez-vous faire ce modèle de la même manière, mais avec 2 sorties, une pour l'achat et une pour la vente ?
 
Alexander Alekseevich:
Maxim, pouvez-vous faire le même modèle et l'enseigner de la même manière, mais avec deux sorties ? Une pour l'achat, la seconde pour la vente, le résultat devrait être meilleur.

Aucun modèle n'est détecté

soit vous passez aux ticks, soit vous faites quelque chose d'excessif.

il y a deux classes comme c'est le cas actuellement.

Au fait, le RNN semble faire un meilleur travail... mais le code est brut ici

 
Maxim Dmitrievsky:

aucun modèle n'est détecté

soit passer aux ticks, soit construire quelque chose par dessus

la classe 2 telle qu'elle est

Au fait, le RNN semble faire un meilleur travail... mais le code est rudimentaire ici.

Oui, il y a deux classes, mais si vous prenez une sortie séparée pour chaque classe, cela fonctionnera mieux).