ProRealTime
Pour partager sur le trading automatique, nos algorithmes, nos backtests

Aide Algo Stanisme

par Scalper » 09 août 2018 13:16

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 1293 fois
Capture dax config.PNG
Capture dax config.PNG (170.75 Kio) Vu 1293 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 1293 fois
Sans stop loss
Spoiler:
Capture dax config 13.PNG
Capture dax config 13.PNG (163.89 Kio) Vu 1293 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 1293 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 1293 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)

Re: Aide Algo Stanisme

par Trendline » 09 août 2018 14:04

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 !!

Re: Aide Algo Stanisme

par Trendline » 09 août 2018 14:07

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...

Re: Aide Algo Stanisme

par takapoto » 09 août 2018 14:24

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

Re: Aide Algo Stanisme

par falex » 09 août 2018 14:27

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 ;))

Re: Aide Algo Stanisme

par takapoto » 09 août 2018 14:29

Ca s'appelle : moving average slope

Re: Aide Algo Stanisme

par Scalper » 09 août 2018 14:31

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

Re: Aide Algo Stanisme

par takapoto » 09 août 2018 14:32

Scalper a écrit :j'avais pas vu la chose sous cet angle la
Oui, une inclinaison peut avoir plusieurs angles :)

Re: Aide Algo Stanisme

par Flanders » 09 août 2018 14:34

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.

Re: Aide Algo Stanisme

par Flanders » 09 août 2018 14:37

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 !

Re: Aide Algo Stanisme

par falex » 09 août 2018 15:09

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.

Re: Aide Algo Stanisme

par Scalper » 09 août 2018 15:41

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 676 fois

Re: Aide Algo Stanisme

par Trendline » 09 août 2018 16:05

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.

Re: Aide Algo Stanisme

par Scalper » 09 août 2018 16:10

ç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 663 fois

Re: Aide Algo Stanisme

par Trendline » 09 août 2018 16:16

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.

Re: Aide Algo Stanisme

par takapoto » 09 août 2018 16:16

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.

Re: Aide Algo Stanisme

par Scalper » 09 août 2018 16:35

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

Re: Aide Algo Stanisme

par falex » 09 août 2018 16:44

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.

Re: Aide Algo Stanisme

par Trendline » 09 août 2018 16:53

en effet, attention au spread de la nuit ;-)

Re: Aide Algo Stanisme

par BearIsDead » 09 août 2018 16:56

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.

Sujets similaires
"Stanisme Scalping" (vélociraptor 2 )
Fichier(s) joint(s) par naol » 21 janv. 2018 12:09 (370 Réponses)
Besoin d'aide pour amélioration algo cac 40
Fichier(s) joint(s) par Ernesto » 22 mai 2016 00:43 (1 Réponses)
Expériences de traders algo et/ou auto.
par Ano782345 » 09 nov. 2015 21:56 (6 Réponses)
Conditions de vente d'un indicateur ou algo de trading
par ladefense92800 » 21 févr. 2016 13:20 (10 Réponses)
Suivi de mon algo de trading sur le Dax
par Gavrinis » 19 mai 2016 18:30 (11 Réponses)
Avis sur simulation Algo trading Prorealtime
Fichier(s) joint(s) par klintistwood » 26 juin 2016 08:24 (12 Réponses)
Algo renifleur
par Aarnii » 17 sept. 2016 10:56 (11 Réponses)
[Recherche développeur] Création algo + deep learning
par Epitaf » 25 févr. 2017 22:33 (81 Réponses)
La boite à outils du créateur d'algo
par David » 29 mars 2017 19:45 (9 Réponses)