Aide Algo Stanisme

Forum sur le trading automatique et algorithmique : systèmes, backtests, robots de trading, résultats et limites, code à l'appui.
Avatar du membre
Scalper
Chevalier Jedi
Messages : 2829
Enregistré le : 29 mars 2018 12:24

Aide Algo Stanisme

Message non lu par Scalper »

08/08/22H
Salut à tous, c'est le mois d'aout, le marché est au ralenti c'est l’occasion ou jamais de se lancer dans le codage.
Le probleme c'est que j'ai tout simplement zéro base, ça fait deux jours que je cherche de partout (google youtube etc...)la moindre info sur les algo, mais je tourne en rond je trouve rien de concret.

Voilà ce que j'ai réussis a faire, c'est mon premier algo
il achète tout simplement quand le prix est au dessus de la mm50, et inversement pour les shorts FOLLOW THE TREND !! :lol2:
Capture dax config2.PNG
Capture dax config2.PNG (112.91 Kio) Vu 2117 fois
Capture dax config.PNG
Capture dax config.PNG (170.75 Kio) Vu 2117 fois
Le probleme enfin non l'un des nombreux problèmes :lol: c'est que mon l'algo ce fait massacrer dans les ranges ce qui correspond aux phases 1 et 3
j'ai d'abord voulu essayer l'inclinaison des moyennes mobiles, après avoir cherché 3h de partout les codes des mm avec des formules pour l'inclinaison, on ma tout simplement dit que c’était impossible du fait qu'elles ont pas la même inclinaison quand on écarte ou rétrécie notre graph.
Je vais donc utiliser les bollinger pour déterminer ou non une periode de range


09/08 9H Edit : deux améliorations le stop suiveur est changé a 5, et après avoir essayer tous les réglages la mm sur 92 est mieux pour le 4H
je me suis rendu compte par la suite qu'on pouvait pas avoir un stop loss + un stop suiveur

ça me pose un probleme au niveau des perfs
avec stop loss + stop suiveur
Spoiler:
Capture dax 11.PNG
Capture dax 11.PNG (164.63 Kio) Vu 2117 fois
Sans stop loss
Spoiler:
Capture dax config 13.PNG
Capture dax config 13.PNG (163.89 Kio) Vu 2117 fois
je ne peux pas enlever le stop suiveur, c'est le piller de mon algorithme, je cherche actuellement une solution

deuxième algo UT 15
On passe au chose sérieuse :lol2: faut viser les 1000% par mois (6mois d'historique)
Capture dax config 16.PNG
Capture dax config 16.PNG (86.9 Kio) Vu 2117 fois
toujours la même base avec des modifications de réglage.
Je vais rajouter un système de pyramidage et de levier
Spoiler:
Capture dax config 14.PNG
Capture dax config 14.PNG (107.51 Kio) Vu 2117 fois
je sais pas comment lui dire de passer levier 5 la première fois qu'il touche la mm 50 a condition que la mm 92 soit dans le même sens
faut aussi que je sépare les trades en levier >1 ils auront pas le même stop suiveur que les autres.

Pour résumer il faut que je trouve comment coder les bollingers pour déterminer les ranges
Trouver une solution pour le stop loss, je suis ouvert a toute suggestion :)
Arriver a lui faire comprendre qu'il doit acheter en levier 5 les 1er passage sur la moyenne mobile
et séparer les trader en levier >1 (pas le même stop suiveur et target profit)
Avatar du membre
Trendline
Stormtrooper
Messages : 238
Enregistré le : 04 juil. 2018 18:47

Re: Aide Algo Stanisme

Message non lu par Trendline »

Salut Scalper,

Cool, moi aussi je fais joujou avec le code de PRT, mais il est vrai qu'il est assez pauvre en instruction.
A la rentrée il devrait y avoir le multiframe, ça va être super !
Pour t'aider je ne peux que te conseiller l’excellent site : https://www.prorealcode.com/
Il y a des pointures !!
Concernant ton problème de stopsuiveur, voici le code à utiliser, il a été mis au point par les intervenants du site en question, et ça fonctionne très bien (car comme tu as du le voir (ou pas), le stop suiveur ne fonctionne pas en réel) !!
TrailingStep = 1 // Pips locked at start of TSL 2

IF TSL = 1 THEN ' On utilise le stoploss ou pas ?

//reset the stoploss value
IF NOT ONMARKET THEN
newSL = 0
CAND = 0
ENDIF

//manage long positions
IF LONGONMARKET THEN
//first move (breakeven)
IF newSL = 0 AND CLOSE - TRADEPRICE(1) >= TrailingDistance*PipSize THEN
newSL = TRADEPRICE(1) + TrailingStep*PipSize
ENDIF
//next moves
//CAND = BarIndex - TradeIndex
CAND = max(1,BarIndex - TradeIndex)
IF newSL > 0 AND CLOSE[1] >= HIGHEST[CAND](CLOSE) THEN
newSL = CLOSE[1] - TrailingDistance*PipSize
ENDIF
ENDIF

//manage short positions
IF SHORTONMARKET THEN
//first move (breakeven)
IF newSL = 0 AND TRADEPRICE(1) - CLOSE[1] >= TrailingDistance*PipSize THEN
newSL = TRADEPRICE(1) - TrailingStep*PipSize
ENDIF
//next moves
// CAND = BarIndex - TradeIndex
CAND = max(1,BarIndex - TradeIndex)
IF newSL > 0 AND CLOSE[1] <= LOWEST[CAND](CLOSE) THEN
newSL = CLOSE[1] + TrailingDistance*PipSize
ENDIF
ENDIF

//stop order to exit the positions
IF newSL > 0 THEN
SELL AT newSL STOP
EXITSHORT AT newSL STOP
ENDIF

ENDIF

SET STOP pLOSS SL // Protection Si ça beug tu as toujours ce filet !!
Avatar du membre
Trendline
Stormtrooper
Messages : 238
Enregistré le : 04 juil. 2018 18:47

Re: Aide Algo Stanisme

Message non lu par Trendline »

Pour l’inclinaison des mms, tu peux ruser et ajouter une MM de HULL (le code existe).
Perso je travail à essayer d'utiliser le REPULSE l'écarttype pour détecter les périodes de RANGE...
Avatar du membre
takapoto
Membre du Conseil Jedi
Messages : 7801
Enregistré le : 16 déc. 2013 15:56

Re: Aide Algo Stanisme

Message non lu par takapoto »

j'ai d'abord voulu essayer l'inclinaison des moyennes mobiles, après avoir cherché 3h de partout les codes des mm avec des formules pour l'inclinaison, on ma tout simplement dit que c’était impossible du fait qu'elles ont pas la même inclinaison quand on écarte ou rétrécie notre graph.
Ce que tu appelle inclinaison n'a effectivement pas de sens si on se base sur ce qui est affiché à l'écran car visuellement cela dépend des échelles utilisées.

En revanche l'idée qu'il y a derrière est très valable et peut être calculée :
Le calcul de ton "inclinaison" revient à appliquer une fonction entre les valeurs de la MM aux instants T1 et T2 par rapport au nombre de bougies qui se trouvent entre ces deux valeurs.

Par exemple, si je choisi la division comme fonction :
Cas 1 : la MM passe de 1000 à 1100 avec 20 bougies, on aura une "inclinaison" de (1100 - 1000) / 20 = 5.
Cas 2 : la MM passe de 1000 à 1100 avec 50 bougies, on aura une "inclinaison" de (1100 - 1000) / 50 = 2.

=> Au lieu de la division, tu peux utiliser n'importe quelle autre fonction plus complexe si tu préfère. Mais en trading, plus c'est simple, meilleur c'est :)

Code : #

Periode=14//Période de la MM
nbChandelier=5// Nombre de chandeliers sur lesquels on évalue la pente
MM=average[Periode](close)
pente=(MM-MM[nbchandelier])/nbchandelier
Avatar du membre
falex
Le Gladiateur
Messages : 34269
Enregistré le : 12 févr. 2013 15:41

Re: Aide Algo Stanisme

Message non lu par falex »

L'inclinaison des MM est déjà côdé dans PRT, je l'ai utilisé fin juin. J'essaye de te retrouver le nom de la directive. (un truc du genre slopeXXX ou XXXslope) slope voualnt dire pente in english).

La pente sera toujours la même en valeur "réel" ce qui change c'est son inclinaison en fonction du zoom H et V appliqué à ton graphe.
Mais la comparaison de deux pentes de deux chose différentes sera toujours la même.
Dis autrement tu t'en fous de l'affichage ce n'est pas ça qui compte (on pourrait presque appleer ça une illusion d'optique ;))
Avatar du membre
takapoto
Membre du Conseil Jedi
Messages : 7801
Enregistré le : 16 déc. 2013 15:56

Re: Aide Algo Stanisme

Message non lu par takapoto »

Ca s'appelle : moving average slope
Avatar du membre
Scalper
Chevalier Jedi
Messages : 2829
Enregistré le : 29 mars 2018 12:24

Re: Aide Algo Stanisme

Message non lu par Scalper »

Salut Trendline, j'arrive pas a coder le stop profit, c'est la base de mon algo sans ce stop il doit perdre 90% de rendement...
Ok Takapoto merci j'avais pas vu la chose sous cet angle la :merci:
>Falex :top: je vais rechercher ça
Avatar du membre
takapoto
Membre du Conseil Jedi
Messages : 7801
Enregistré le : 16 déc. 2013 15:56

Re: Aide Algo Stanisme

Message non lu par takapoto »

Scalper a écrit :j'avais pas vu la chose sous cet angle la
Oui, une inclinaison peut avoir plusieurs angles :)
Avatar du membre
Flanders
Stormtrooper
Messages : 211
Enregistré le : 26 déc. 2016 13:26

Re: Aide Algo Stanisme

Message non lu par Flanders »

Salut Scalper,

Pour l'"inclinaison " des MM, je mesure l'écart en points entre la MM à la bougie étudiée et le niveau de la même MM à la n-ième bougie en arrière ( la précédente par ex.).
Mais je pense qu'utilser des indicateurs déjà faits serait mieux pour qqun qui n'a pas l'habitude de programmer. Bollinger, pourquoi pas.
Avatar du membre
Flanders
Stormtrooper
Messages : 211
Enregistré le : 26 déc. 2016 13:26

Re: Aide Algo Stanisme

Message non lu par Flanders »

Concernant les résultats de backtest mirifiques : cherche , après quelques jours de travail, les bonnes paroles de xxxx dans ce même forum.
Bonne continuation !
Avatar du membre
falex
Le Gladiateur
Messages : 34269
Enregistré le : 12 févr. 2013 15:41

Re: Aide Algo Stanisme

Message non lu par falex »

Tiens exemple de code utilisé pour deux pentes de regression linéaire , l'une sur une MM l'autre sur les cours de cloture.

Code : #

lrsClose = LinearRegressionSlope[mm](close)
avr = average[mm](close)
lrsAvr = LinearRegressionSlope[mm](avr)

return lrsClose as "Pente RegLin CLose ", lrsAvr as "Pente RegLin Average", 0 as "0"
Dans le code ci-dessus : mm est une variable défini globalement qui permet de changer dans l'interface sans avoir à retoucher le code quand on veut modifier sa valeur.
Avatar du membre
Scalper
Chevalier Jedi
Messages : 2829
Enregistré le : 29 mars 2018 12:24

Re: Aide Algo Stanisme

Message non lu par Scalper »

Ok merci falex tu me fais gagner un temps fou :merci:
flanders> ok je prends note merci
Quand je cilque dessus mon algo gagne facile 500% :lol: c'est quoi ?
en réel c'est calculé en tick par tick ?
Fichiers joints
Capturedax config.PNG
Capturedax config.PNG (1.75 Kio) Vu 1597 fois
Avatar du membre
Trendline
Stormtrooper
Messages : 238
Enregistré le : 04 juil. 2018 18:47

Re: Aide Algo Stanisme

Message non lu par Trendline »

Ce mode évite de considérer une sortie/entrée de position en fin de l'UT sélectionnée (par exemple 1 heure).
C'est très important de le cocher car cela se rapproche plus de la réalité lors des backtests.
Avatar du membre
Scalper
Chevalier Jedi
Messages : 2829
Enregistré le : 29 mars 2018 12:24

Re: Aide Algo Stanisme

Message non lu par Scalper »

ça me conseil de relancer sans le mode tick par tick
Fichiers joints
Capture dax config.PNG
Capture dax config.PNG (51.59 Kio) Vu 1584 fois
Avatar du membre
Trendline
Stormtrooper
Messages : 238
Enregistré le : 04 juil. 2018 18:47

Re: Aide Algo Stanisme

Message non lu par Trendline »

pas grave, ce ne sont que quelques chandeliers, l'important c'est que cette option cochée tu es plus près du comportement futur de ton algo en condition réelle.
Avatar du membre
takapoto
Membre du Conseil Jedi
Messages : 7801
Enregistré le : 16 déc. 2013 15:56

Re: Aide Algo Stanisme

Message non lu par takapoto »

Si tu n'utilise pas le tick par tick, les stops seront touchés prioritairement aux TP.
Le backtest donnera donc - a priori - des résultats moins bons qu'en réalité.
Dans la mesure du possible, essaie de privilégier le tick par tick.
Avatar du membre
Scalper
Chevalier Jedi
Messages : 2829
Enregistré le : 29 mars 2018 12:24

Re: Aide Algo Stanisme

Message non lu par Scalper »

Merci beaucoup, en effet il y a une énorme différence j'ai un stop très serré donc ça me change toutes mes stats
Avatar du membre
falex
Le Gladiateur
Messages : 34269
Enregistré le : 12 févr. 2013 15:41

Re: Aide Algo Stanisme

Message non lu par falex »

Pense à bien mettre les paramètres d'excetution car si ton algo est gagnant de l'ordre 10% et que tu ne mentionnes pas les frais de transaction -> Dans la réalité il sera perdant.
Avatar du membre
Trendline
Stormtrooper
Messages : 238
Enregistré le : 04 juil. 2018 18:47

Re: Aide Algo Stanisme

Message non lu par Trendline »

en effet, attention au spread de la nuit ;-)
Avatar du membre
BearIsDead
Membre du Conseil Jedi
Messages : 10291
Enregistré le : 09 nov. 2017 20:02

Re: Aide Algo Stanisme

Message non lu par BearIsDead »

Salut. Perso j'ai codé mon propre stop suiveur, comme Trendline t'a proposé.

Sinon pour déterminer quand on passe d'un marché de tendance à un marché de range, et bien c'est comme en discrétionnaire : il n'y a pas de solution miracle :p

Enfin, si tu lis l'anglais et que tu comptes investir ton temps dans l'algo, je ne peux que te conseiller ce bouquin, un peu cher mais c'est concret et pas trop complexe:
https://www.goodreads.com/book/show/22675886-building-winning-algorithmic-trading-systems?from_search=true
Ca permet d'apprendre les "bonnes pratiques" de base, et les erreurs à éviter.