Newslettre:

Informatique | Logiciels d'analyse | sujet : [GrapheAT Pro : Systèmes de Trading]

inscription à pro-at
[pass oublié]

Formation à la Bourse

Formation

Formations Trading en ligne

Sujet : [GrapheAT Pro : Systèmes de Trading]
Page : sur 3   Page suivante   Derniere Page

Nouveau sujet  Répondre au sujet   Recommander cette page


smallcaps90

(908 msg)

Plusieurs semaines Plus de 3 ans Uniquement technique Actions françaises

Posté le : le 10-04-2008 11:59:01 Voir le profil   Envoyer un email à l'auteur   Envoyer un message privé   Répondre avec citation  
Bonjour,


Comme je vous l'avais proposé hier, je crée cette nouvelle file pour traiter uniquement des systèmes de trading avec Graphe AT Pro. Cela pourra peut-être paraître présompteux sans doute compte-tenu du caractère limité du logiciel. Nous ferons avec et je suppose que cela pourra intéresser plus d'un de ses utilisateurs.
Pour initialiser la file, je vous propose un premier système très simple puisqu'il n'utilise un seul indicateur.
Il n'est pas totalement finalisé dans ses moindres détails, mais il fonctionne et reste évidemment perfectible...
Je l'ai mis à l'épreuve en Weekly et il donne d'assez bons résultats.
Bien sûr certaines valeurs y sont totalement "allergiques" (voir plus loin), d'autres l'acceptent bien. Ce n'est pas un scoop...
Je n'ai pas encore eu le temps de déterminer pour quelles raisons ni la possibilité d'en améliorer la logique. Si vous avez des idées n'hésitez surtout pas. Postez...


SYSTEME "TURNING_POINTS".

J'ai utilisé comme indicateur le très réactif %R de Williams que j'ai lissé sans introduire trop de lag avec une régression linéaire sur un petit nombre de périodes.
Le programme "TURNING_POINTS_INDIC" suit ainsi que sa fenêtre Propriétés :

//====================
//TURNING_POINTS_INDIC
//====================
//V2.1 (finalisé)
//le 29/03/2007
//smallcaps90
//====================


//--------------------------Calcul du Williams%
//
HT=max(Haut,P1)
BS=min(Bas, P1)
W=100*(Cloture-HT)/(HT-BS)

//--------------------------Calcul du lissage
//
som=0
i=P2
TantQue i>=1 Faire
tmp=(i-(P2+1)/3)*W(P2-i)
som=som+tmp
i=i-1
FinTantQue

W_Lisse=6*som/(P2*(P2+1))

//--------------------------Détermination des couleurs
//
M(0)=W_Lisse

//Initialisations
Si RangHisto=2
Alors
Si M>=M(1)
Alors
V(0)=1
R(0)=0
Sinon
V(0)=0
R(0)=1
FinSi
FinSi

//Détermination de la tendance
Si RangHisto>2
Alors

Si M(1)>M
Alors
R=1
V=0
FinSi

Si M(1)<M
Alors
V=1
R=0
FinSi

Si M(1)=M
Alors
Si V(1)=1 Alors V=V(1)
Si R(1)=1 Alors R=R(1)
FinSi

//Traitement des tracés
//
//Segments verts
//
Si V=1 ET V(1)=0
Alors
Si A=0
Alors
MV1(1)=M(1)
MV1=M
Sinon
MV2(1)=M(1)
MV2=M
FinSi
FinSi

Si V=1 ET V(1)=1
Alors
Si A=0 Alors MV1=M
Si A=1 Alors MV2=M
FINSI

Si V=0 ET V(1)=1
Alors
Si A=0 Alors MV1(1)=M(1)
Si A=1 Alors MV2(1)=M(1)
A=NON(A)
FinSi

//Segments rouges
//
Si R=1 ET R(1)=0
Alors
Si B=0
Alors
MR1(1)=M(1)
MR1=M
Sinon
MR2(1)=M(1)
MR2=M
FinSi
FinSi

Si R=1 ET R(1)=1
Alors
Si B=0 Alors MR1=M
Si B=1 Alors MR2=M
FinSi

Si R=0 ET R(1)=1
Alors
Si B=0 Alors MR1(1)=M(1)
Si B=1 Alors MR2(1)=M(1)
B=NON(B)
FinSi

FinSi

//Fin du code



Voici ce que l'on obtient pour Pernod-Ricard en Weekly :



J'ai visualisé les segments ascendants de l'indicateur en vert sur le graphe. Ils correspondent assez bien aux phases ascendantes des cours et démarrent même parfois avant que les cours le fassent eux-mêmes.

Pour les besoins de la cause prenons Pernod Ricar en Daily :



Si on se réfère au graphe ci-dessus : au soir de la période 1 on ne sait pas encore qu'un trend haussier va se produire. On en a confirmation à la période 2 seulement sur l'indicateur. On posera un ordre d'ACHAT au niveau de la clôture de cette période, il sera exécuté le lendemain (pour pouvoir utiliser les possibilités du programme de "backtest" de MLOG plus loin).
Au soir de la période 3 on ne sait pas que le segment haussier se termine. On en a confirmation à la période 4 suivante. On place un ordre de vente au niveau de la clôture de la période 4 pour le lendemain.
A gauche sur le graphe une zone de faux signaux est repèrée et, bien entendu, on ne doit pas tenir compte de la présence des petits segments verts inter-périodes. La programmation devra faire en sorte qu'aucun signal d'achat/vente soit donné dans ce genre de zone.

Le programme "TURNING_POINTS_ENTREES_SORTIES", dérivé du précédent, génère les signaux d'Achat/Vente conformément à l'algorithme décrit succinctement ci-dessus. Voici son listing et sa fenêtre Propriétés :

//==============================
//TURNING_POINTS_Entrees_Sorties
//==============================
//V0.2 (proto)
//le 13/11/2007
//smallcaps90
//==============================


//Si RangHisto >= FinHisto-1000
//Alors


//--------------------------Entrée position longue (Achat)
//
Si (MV1<>0 OU MV2<>0) ET
(MV1(1)<>0 OU MV2(1)<>0) ET
MV1(2)=0 ET MV2(2)=0 ET
Flag=0 //permet d'alterner les op d'E/S
Alors
E=-1
Flag=1
NE=cloture //on achetera en fait à l'ouverture du lendemain
NbOp=NbOp+1
FinSi

//--------------------------Sortie position longue (Vente)
//
Si (MV1(1)<>0 OU MV2(1)<>0) ET
MV1=0 ET MV2=0 ET
Flag=1
Alors
S=1
Flag=0
PJ=(cloture-NE) //on vendra en fait à l'ouverture du lendemain
Profit=Profit+PJ //calculé sur les positions longues seules pour le moment

Si PJ>0
Alors
Win=Win+1
Sinon
Los=Los+1
FinSi

FinSi

//FinSi


//--------------------------Bilan théorique
//
//La partie qui suit est à l'état de prototype
//Elle utilise des paramètres calculés plus haut
//Elle est utilisée par la statistique
Si RangHisto=FinHisto Alors

Si E<>0 Alors OP$="Entrée LONG à la période actuelle"
Si S<>0 Alors OP$="Entrée SHORT à la période actuelle"
Si Flag=0 ET E=0 ET S=0 Alors OP$="Position SHORT en cours"
Si Flag<>0 ET E=0 ET S=0 Alors OP$="Position LONG en cours"

Afficher "==============================================="
Afficher NomAction$ & " " & CodeAction$
Afficher "RESULTAT théorique pour l'action (longs seuls et sans frais) = " & ctxt$(Profit,2)
Afficher "Nombre Op = " & NbOp
Afficher "Nb Op WIN = " & Win
Afficher "Nb Op LOS = " & Los
Afficher "Type Op en cours : " & op$
Afficher "==============================================="

FinSi

//Fin du code



Une illustration sur Pernod-Ricard en Weekly :





Pour tester les performances du système j'ai utilisé le programme de "backtest" de MLOG qui ne prend en compte que des système du type "stop and reverse" toujours dans le marché (donc sans nécessité de placer de stop). Ceci peut s'appliquer au système proposé. J'ai scanné ma base SRD et visualisé les "equity curve". En vert épais sur les graphes ci-dessous vous trouverez :
- la courbe en paliers des positions "fermées" qui tiennent compte des ordres d'Achat/vente en vert épais,
- la courbe des positions "ouvertes" en réactualisant les gaisn/pertes en fonction du cours du jour et de la dernière position détenue, en vert fin,
- la courbe qui traduit ce qu'on obtiendrait avec une stratégie de type "buy and hold", en rouge fin.



Après un départ difficile le système se comporte mieux à compter de 2002 mais il ne fait pas mieux que le "Buy and Hold".
Le rapport de "backtest" délivré par le programme "TradGains2" est le suivant :

======== RAPPORT DES OPERATIONS D'ACHAT/VENTE ========

Pernod Ricard FR0000120693

Date début backtest : 03/01/1997
Date fin backtest : 09/04/2008
Nombre de barres testées : 589

NOMBRE TOTAL D'OPERATIONS : 146
Nombre d'opérations gagnantes : 70 (soit 47,95%)
Nombre d'opérations perdantes : 76 (soit 52,05%)

TOTAL DES GAINS : 49,33
Gains des opérations gagnantes : 155,59
Gains des opérations perdantes : -106,26

MOYENNE DES GAINS : 0,34
Moyenne des gains des opérations gagnantes : 2,22
Moyenne des gains des opérations perdantes : -1,4

Meilleure opération gagnante : 8,35
Plus petite opération gagnante : 0,04
Plus grande opération perdante : -7,2
Plus petite opération perdante : -0,07

Maximum d'opérations gagnantes consécutives : 5
Gain : 15,7
Maximum d'opérations perdantes consécutives : 8
Perte : -11,65

MAXDRAWDOWN : -21,74 obtenue le 20/10/2000

======================================================

Sans entrer dans tous les détails de ce bilan, on constate que malgré le nombre plus élévé d'opérations perdantes que de gagnantes, le bilan reste positif ainsi que le montre "l'equity curve".
Evidemment ce n'est pas un véritable backtest et ni les frais d'opérations ni ceux dus au slippage ne sont pris en compte.

Quelques autres exemples qui donnent de bons résultats :



======== RAPPORT DES OPERATIONS D'ACHAT/VENTE ========

Christian DIOR FR0000130403

Date début backtest : 03/01/1997
Date fin backtest : 09/04/2008
Nombre de barres testées : 589

NOMBRE TOTAL D'OPERATIONS : 130
Nombre d'opérations gagnantes : 67 (soit 51,54%)
Nombre d'opérations perdantes : 63 (soit 48,46%)

TOTAL DES GAINS : 138,65
Gains des opérations gagnantes : 265,58
Gains des opérations perdantes : -126,93

MOYENNE DES GAINS : 1,07
Moyenne des gains des opérations gagnantes : 3,96
Moyenne des gains des opérations perdantes : -2,01

Meilleure opération gagnante : 14,2
Plus petite opération gagnante : 0,01
Plus grande opération perdante : -6,7
Plus petite opération perdante : 0

Maximum d'opérations gagnantes consécutives : 5
Gain : 26,86
Maximum d'opérations perdantes consécutives : 4
Perte : -10,84

MAXDRAWDOWN : -14,37 obtenue le 11/10/2002

======================================================




======== RAPPORT DES OPERATIONS D'ACHAT/VENTE ========

Imerys (ex Imetal) FR0000120859

Date début backtest : 03/09/1999
Date fin backtest : 09/04/2008
Nombre de barres testées : 450

NOMBRE TOTAL D'OPERATIONS : 102
Nombre d'opérations gagnantes : 56 (soit 54,9%)
Nombre d'opérations perdantes : 46 (soit 45,1%)

TOTAL DES GAINS : 109,86
Gains des opérations gagnantes : 179,86
Gains des opérations perdantes : -69,99

MOYENNE DES GAINS : 1,08
Moyenne des gains des opérations gagnantes : 3,21
Moyenne des gains des opérations perdantes : -1,52

Meilleure opération gagnante : 12,85
Plus petite opération gagnante : 0,05
Plus grande opération perdante : -5,63
Plus petite opération perdante : -0,07

Maximum d'opérations gagnantes consécutives : 12
Gain : 38,05
Maximum d'opérations perdantes consécutives : 6
Perte : -11,96

MAXDRAWDOWN : -13,15 obtenue le 20/07/2007

======================================================




======== RAPPORT DES OPERATIONS D'ACHAT/VENTE ========

SEB FR0000121709

Date début backtest : 03/01/1997
Date fin backtest : 09/04/2008
Nombre de barres testées : 589

NOMBRE TOTAL D'OPERATIONS : 140
Nombre d'opérations gagnantes : 75 (soit 53,57%)
Nombre d'opérations perdantes : 65 (soit 46,43%)

TOTAL DES GAINS : 322,38
Gains des opérations gagnantes : 581,36
Gains des opérations perdantes : -258,98

MOYENNE DES GAINS : 2,3
Moyenne des gains des opérations gagnantes : 7,75
Moyenne des gains des opérations perdantes : -3,98

Meilleure opération gagnante : 32,78
Plus petite opération gagnante : 0,1
Plus grande opération perdante : -18,28
Plus petite opération perdante : 0

Maximum d'opérations gagnantes consécutives : 5
Gain : 53,5
Maximum d'opérations perdantes consécutives : 6
Perte : -25,78

MAXDRAWDOWN : -34 obtenue le 25/01/2002

======================================================

Comme tout n'est pas aussi "rose", deux exemples qui ne fonctionnent pas maintenant :

TRIGANO çà s'écroule



Ciments Francais çà ne décolle pas



Je posterai une règle statistique qui permettra de scanner automatiquement un groupe donné de valeurs et indiquera quelles sont celles qui doivent être à l'achat ou à la vente.

Cordialement.


 Alerter un modérateur Retourner en haut de page

smallcaps90

(908 msg)

Plusieurs semaines Plus de 3 ans Uniquement technique Actions françaises

Posté le : le 10-04-2008 18:29:05 Voir le profil   Envoyer un email à l'auteur   Envoyer un message privé   Répondre avec citation  
Bonsoir,

Statistique "STAT_TURNING_POINTS".

//=================================================
//STAT_TURNING_POINTS
//=================================================
//V1.0 (finalisée)
//09/04/2008
//smallcaps90
//=================================================
//Recherche des valeurs à l'achat ou à la vente
//à l'aide du programme indicateur "TURNING_POINTS"
//=================================================


//Fixer le nb de barres à explorer éventuellement
//Si pas utilisée, on se place de facto à la derinère
//barre de l'historique

//N=1


//--------------------------Scanner le groupe de valeurs
//
//Pour N Cours

Si TURNING_POINTS_Entrees_Sorties.E<>0
Alors
Colonne1="Passage à l'achat possible demain à : " & Cloture & " sur : "
Select=1
FinSi

Si TURNING_POINTS_Entrees_Sorties.S<>0
Alors
Colonne1="Passage à la vente possible demain à : " & Cloture & " sur : "
Select=1
FinSi

//FinPour

//Affichage valeurs
Si Select=1 ALORS Selection

//Fin du code

Programme à la logique "classique".
J'ai indiqué comme niveau d'achat/vente, la valeur de la cloture au jour où le signal est émis c'est à dire à la dernière période de l'historique.
Le programme de "backtest" de MLOG permet dans "TradGains2" les options suivantes fonctions des valeurs que vous affecterez aux paramètres P1, P2 et P3 :

========================
P1 = 0 : Opération au cours de Cloture du jour du signal
P1 = 1 : Opération au cours d'Ouverture du jour suivant le signal
P1 = 2 : Opération au cours moyen du jour suivant le signal

P2 : Stop de protection à -P2% de perte
P2 = 0 : Pas de stop de protection

P3 = 1 : Affichage de chaque opération d'Achat/Vente dans la fenêtre d'affichage des règles
P3 = 0 : Affichage réduit dans la fenêtre d'affichage des règles
========================

Le système élémentaire présenté dans le post précédent y est utilisé en Weekly. Rien n'interdit de l'utiliser sur une autre unité de temps si vous préférez.
Vous pouvez donc l'installer sous l'onglet "Jour", ou "Semaine" ou "Mois" de la fenêtre "Règle statistique" de Graphe AT Pro suivant votre préférence.
je l'ai fait sous l'onglet "Semaine" bien sûr.



En Weekly on devrait attendre vendredi 10/04 au soir pour appliquer la stat.
A des fins d'illustration, je l'ai fait tourner ce soir. Voici que cela donne sur le groupe CAC40:

===================================
Groupe : cac40 Date : 10/04/2008
Recherche des valeurs à l'achat ou à la vente
à l'aide du programme indicateur "TURNING_POINTS_INDIC"

Passage à l'achat possible demain à : 25,83 sur : Vivendi
Passage à l'achat possible demain à : 44,65 sur : Suez
Passage à l'achat possible demain à : 46,32 sur : Peugeot
Passage à l'achat possible demain à : 59,82 sur : EDF
Passage à l'achat possible demain à : 62,56 sur : Michelin
Passage à l'achat possible demain à : 65,91 sur : Renault
Passage à la vente possible demain à : 160,61 sur : Vallourec
Passage à la vente possible demain à : 163,58 sur : Unibail
Passage à la vente possible demain à : 83,26 sur : Schneider Electric
===================================

Cordialement.




 Alerter un modérateur Retourner en haut de page

Arnaudbzh

(111 msg)

Plusieurs semaines Plus de 3 ans Technique et fondamentale Actions françaises

Posté le : le 10-04-2008 22:05:11 Voir le profil   Envoyer un email à l'auteur   Envoyer un message privé   Répondre avec citation  
Je passais juste pour te passer un petit bonjour SmallCaps.
Tu as encore fait fort à ce que je vois...
Bon courage !!

Arnaud
 Alerter un modérateur Retourner en haut de page

smallcaps90

(908 msg)

Plusieurs semaines Plus de 3 ans Uniquement technique Actions françaises

Posté le : le 10-04-2008 22:44:11 Voir le profil   Envoyer un email à l'auteur   Envoyer un message privé   Répondre avec citation  
Bonsoir Arnaud,


merci pour tes encouragements.
Boff il s'agit d'un système très très simple. C'est peut-être là son principal "avantage". Il reste cependant pas mal de choses à améliorer. Je voulais lancer le Schmilblick. Il y a tant à faire! Il faut dire que la file [programmation] devenait pléthorique et difficile à utiliser. Cà va l'aérer un peu.
Où en es-tu de tes développements sur PRT?
Et puis il y a christophe avec sa théorie des vers...qu'en penses-Tu?

Bonne soirée.

Daniel
 Alerter un modérateur Retourner en haut de page

jpsafe

(2 msg)

Plusieurs mois Moins d'un an Technique et fondamentale Actions françaises

Posté le : le 11-04-2008 11:17:54 Voir le profil   Envoyer un email à l'auteur   Envoyer un message privé   Répondre avec citation  
Bonjour Smallcaps,

Nouvel utilisateur de GraphATPro je suis impressionnée par le travail collaboratif que vous avez mené sur GraphAt et vais être un assidu lecteur (avant petre de contribuer si mes compétences avancent dans ce domaine)de cette nouvelle file.

Pourrais tu stp poster le prog de TradGains 2 que tu utilises pour "turning_points" pour représenter l'equity curve car je n'ai pas du tout les mêmes résultats et affichage que toi?

Merci encore

jp


 Alerter un modérateur Retourner en haut de page

smallcaps90

(908 msg)

Plusieurs semaines Plus de 3 ans Uniquement technique Actions françaises

Posté le : le 11-04-2008 14:43:56 Voir le profil   Envoyer un email à l'auteur   Envoyer un message privé   Répondre avec citation  
Bonjour jpsafe,


Bienvenue au club!
N'hésite pas à t'exprimer.

Je poste ce que tu me demandes : à savoir l'ensemble des programmes mis à disposition par MLOG qui permettent de faire un "backtest" pour un système du type "Stop And Reverse", tj dans le marché donc.
J'ai modifié légèrement la présentation du rapport final du test uniquement dans la règle Trade Gains 2" uniquement. Je te rappelle que ce rapport est accessible en sélectionnant "Fenêtre d'affichage..." dans le menu "Règles" de la fenêtre principale de GrapheAT Pro. Je n'ai pas modifié la logique du programme.
Un texte d'aide existe aussi sur ce package dans GrapheAT Pro.

La structure des règles qui constituent le package est la suivante :




Le programme principal "Trading system 2" est le suivant avec sa fenêtre Propriétés :

//=================
// Trading system 2
//=================

//V2.2
//Placer ici vos règles qui traduisent vos conditions d'ACHAT et de VENTE
//ainsi que la ligne : SIGNAL =ACHAT-VENTE
//utilisées par d'autres programmes dérivés de celui-ci

//On peut placer directement celles-ci comme dans l'exemple
//purement fictif ci-dessous
//On sait que le croisement de moyennes mobiles sans filtre
//pour éliminer les faux signaux, n'est pas une méthode valable
//l'exemple est donc donné à titre de syntaxe admissible.

//=====================================================
//Croisements de 2 moyennes mobiles
//
//Achat = CROISE(MOYENNE(CLOTURE,5),MOYENNE(CLOTURE,20))>0
//Vente = CROISE(MOYENNE(CLOTURE,5),MOYENNE(CLOTURE,20))<0
//=====================================================

//On peut aussi récupérer les valeurs des variables utiles de règles indicateurs
//comme dans le cas qui nous intéresse du système de trading : "TURNING_POINTS"


//======================================
//Règle d'achat/vente du SYSTEME TURNING_POINT
//
ACHAT = TURNING_POINTS_Entrees_Sorties.E<>0
VENTE = TURNING_POINTS_Entrees_Sorties.S<>0
SIGNAL = ACHAT-VENTE
//======================================


//Dans la règle ACHAT,
//TURNING_POINTS_Entrees_Sorties est le nom de l'indicateur
//E est le nom de la variable que l'on veut récupérer de l'indicateur

//Fin du code

La partie utile pour "TURNING_POINTS" est coloriée en bleu.





Les règles dérivées de la précédente sont :

//=================
//Trad AchatVente 2
//=================

// Position Acheteuse ou Vendeuse

ACHATVENTE = GAINS2.POS

//Fin du code




//==================
//TradAV sur cours 2
//==================

// Signal d'achat/Vente sur les cours (flèches)

Si SIGNAL = 1 Alors FACHAT = -1 // Achat : flèche haut en dessous des cours
Si SIGNAL = -1 Alors FVENTE = 1 // Vente : flèche bas au dessus des cours

//Fin du code




//============
//Trad Gains 2
//============

//V3.2
//le 10/09/2006

// Calcul de la courbe des gains du Signal d'Achat/Vente
// et des statistiques sur les opérations dans la fenêtre d'Affichage (rapport de backtest)

// P1 = 0 : Opération au cours de Cloture du jour du signal
// P1 = 1 : Opération au cours d'Ouverture du jour suivant le signal
// P1 = 2 : Opération au cours moyen du jour suivant le signal

// P2 : Stop de protection à -P2% de perte
// P2 = 0 : Pas de stop de protection

// P3 = 1 : Affichage de chaque opération d'Achat/Vente dans la fenêtre d'affichage des règles

//RENSEIGNEMENTS sur le backtest à :
//http://www.pro-at.com/forums-bourse/view-post.php?...


GAINS = GAINS(1)
GAINSREEL = GAINSREEL(1)
BUYANDHOLD = BUYANDHOLD(1)
Pos = Pos(1)
SIGNALSTOP=SIGNAL

// Affichage des statistiques sur les opérations
Si RangHisto=1 Alors DateDepart$=DateHisto$
Si RangHisto=FinHisto
Alors
Afficher ""
Afficher "======== RAPPORT DES OPERATIONS D'ACHAT/VENTE ========"
Afficher ""
Afficher NomAction$ & " " & CodeAction$
Afficher ""
Afficher "Date début backtest : " & DateDepart$
Afficher "Date fin backtest : " & Datehisto$
Afficher "Nombre de barres testées : " & FinHisto
Afficher ""
Afficher "NOMBRE TOTAL D'OPERATIONS : " & Trade
Afficher " Nombre d'opérations gagnantes : " & Win & " (soit " & ARRONDI(Win/Trade*100,2) & "%)"
Afficher " Nombre d'opérations perdantes : " & Lost & " (soit " & ARRONDI(Lost/Trade*100,2) & "%)"
Afficher ""
Afficher "TOTAL DES GAINS : " & ARRONDI(GAINSREEL,2)
Afficher " Gains des opérations gagnantes : " & ARRONDI(SomWin,2)
Afficher " Gains des opérations perdantes : " & ARRONDI(SomLost,2)
Afficher ""
Afficher "MOYENNE DES GAINS : " & ARRONDI(GAINSREEL/Trade,2)
Afficher " Moyenne des gains des opérations gagnantes : " & ARRONDI(SomWin/Win,2)
Afficher " Moyenne des gains des opérations perdantes : " & ARRONDI(SomLost/Lost,2)
Afficher ""
Afficher " Meilleure opération gagnante : " & ARRONDI(MaxWin,2)
Afficher " Plus petite opération gagnante : " & ARRONDI(MinWin,2)
Afficher " Plus grande opération perdante : " & ARRONDI(MaxLost,2)
Afficher " Plus petite opération perdante : " & ARRONDI(MinLost,2)
Afficher ""
Afficher " Maximum d'opérations gagnantes consécutives : " & ARRONDI(MaxNbConsWin,2)
AFFicher " Gain : " & ARRONDI(MaxConsWin,2)
Afficher " Maximum d'opérations perdantes consécutives : " & ARRONDI(MaxNbConsLost,2)
Afficher " Perte : " & ARRONDI(MaxConsLost,2)
Afficher ""
Afficher "MAXDRAWDOWN : " & ARRONDI(MaxIntraDrawDown,2) & " obtenue le " & DateMaxIntra$
Afficher ""
Afficher "======================================================"
Afficher ""
FinSi


//CALCULS

//SI RANGHISTO>=FINHISTO-1000 ALORS //permet de limiter le nb de barres testées

// Calcul cours de l'opération

Si P1=0 Alors
CoursOper = Cloture // Opération au cours de Cloture si P1=0
Sinon
Si RANGHISTO=FINHISTO Alors Stop
Si P1=1 Alors CoursOper = Ouverture(-1) // Opération au cours d'ouverture du jour suivant si P1=1
Sinon CoursOper = (Haut(-1) + Bas(-1) + Cloture(-1)) / 3 // Opération au cours moyen du jour suivant si P1=2
FinSi

Si RANGHISTO = 1 Alors // Début historique
Cours0 = CoursOper
Pos = SIGNALSTOP
CoursDebOper = CoursOper
Stop
FinSi

// Stop de protection

Si P2>0 ET Pos<>0 ET SIGNALSTOP=0 Alors
Si Pos>0 Alors Perte = (CoursDebOper-Bas)/CoursDebOper
Sinon Perte = (Haut-CoursDebOper)/CoursDebOper
Si Perte >= P2% Alors
SIGNALSTOP = -2 * Pos
CoursOper = CoursDebOper * (1-Pos*P2%)
Si CoursOper>Haut Alors CoursOper = Haut
Si CoursOper<Bas Alors CoursOper = Bas
Finsi
FinSi

// Calcul de la courbe des Gains

PlusValue = (CoursOper - CoursDebOper) * Pos
GAINS = GAINSREEL + PlusValue
BUYANDHOLD = CoursOper - Cours0


// Calcul du MaxIntraDrawDown

Si Pos<>0 Alors
Si Pos>0 Alors Perte = Bas-CoursDebOper
Sinon Perte = CoursDebOper-Haut
Si Perte>0 Alors Perte = 0
PerteTotale = (GAINSREEL-MaxGains)+Perte
Si PerteTotale<MaxIntraDrawDown Alors
MaxIntraDrawDown = PerteTotale
DateMaxIntra$ = DateHisto$
FinSi
FinSi

// Calcul des statistiques de fin d'opération

Si Pos<>SIGNALSTOP ET SIGNALSTOP<>0 ET Pos<>0 Alors
Trade = Trade+1
Si GAINS>MaxGains Alors MaxGains = GAINS
Si PlusValue>0 Alors
Win = Win+1
SomWin = SomWin+PlusValue
Si Win=1 Alors MinWin = PlusValue
Si PlusValue<MinWin Alors MinWin = PlusValue
Si PlusValue>MaxWin Alors MaxWin = PlusValue
ConsWin = ConsWin+PlusValue
Si ConsWin>MaxConsWin Alors MaxConsWin = ConsWin
NbConsWin = NbConsWin+1
Si NbConsWin>MaxNbConsWin Alors MaxNbConsWin = NbConsWin
ConsLost = 0
NbConsLost = 0
Sinon
Lost = Lost+1
SomLost = SomLost+PlusValue
Si Lost=1 Alors MinLost = PlusValue
Si PlusValue>MinLost Alors MinLost = PlusValue
Si PlusValue<MaxLost Alors MaxLost = PlusValue
ConsLost = ConsLost+PlusValue
Si ConsLost<MaxConsLost Alors MaxConsLost = ConsLost
NbConsLost = NbConsLost+1
Si NbConsLost>MaxNbConsLost Alors MaxNbConsLost = NbConsLost
ConsWin = 0
NbConsWin = 0
FinSi
FinSi

// Affichage des opérations si P3=1

Si P3=1 ET Pos<>SIGNALSTOP ET SIGNALSTOP<>0 ET Pos<>0 Alors
Si Pos>0 Alors Operation$="ACHAT" Sinon Operation$="VENTE"
DateFinOper$ = DateHisto$
Afficher Operation$ & " " &
DateDebOper$ & " " & CTXT$(CoursDebOper,2) & " " &
DateFinOper$ & " " & CTXT$(CoursOper,2) & " " &
CTXT$((CoursOper-CoursDebOper)/CoursDebOper*Pos*100,2) & "%"
FinSi


// Début d'une nouvelle opération (ou seulement fin de la précédente)

Si Pos<>SIGNALSTOP ET SIGNALSTOP<>0 Alors
GAINSREEL = GAINS
Si ABSOLU(SIGNALSTOP)=1 ALors // Début d'une nouvelle opération
Pos = SIGNALSTOP
CoursDebOper = CoursOper
DateDebOper$ = DateHisto$
Sinon
Pos = 0 // Arrêt de l'opération à cause d'un stop loss
FinSi
Finsi

//FINSI

//Fin du code




C'est dans cette dernière règle que se trouve l'algorithme de calcul des performances du système sur chaque action que tu sélectionnes.

On peut effectuer un backtest en affichant seulement cet indicateur sous les cours comme je l'ai fait plus haut, après avoir entré bien sûr les règles d'achat et de vente dans "Trading system 2".

Tu devrais retrouver les mêmes résultats que moi à condition que nos historiques soient identiques...
Attention à celà, nous avons vu apparaître de nombreuses différences entre nous sur la file [Programmation] pour cette raison, le plus souvent dues à un manque de données.

Cordialement.
édité le : 11-04-2008 15:57:57 
 Alerter un modérateur Retourner en haut de page

Arnaudbzh

(111 msg)

Plusieurs semaines Plus de 3 ans Technique et fondamentale Actions françaises

Posté le : le 11-04-2008 20:05:33 Voir le profil   Envoyer un email à l'auteur   Envoyer un message privé   Répondre avec citation  
Bonjour SmallCaps,

ou j'en suis avec PRT ? Je patauge pour tout dire.
Disons aussi que j'ai ralenti ma cadence de codage et de
recherches tout azimut.
Et puis je trade en réel le FCE maintenant, avec plus ou
moins de réussite, plutôt moins que plus d'ailleurs.
En plus je dépouille de plus en plus mes graphs des indicateurs, çà me bloquait trop dans mes décisions.
Mais je garde les bandes de bollingers et 1 ou 2 MM.
Je me fixe plutôt sur le comportement des prix eux-même.

Pour les systèmes de trading, je cherche actuellement une manière
de découper le marché avec un filtre en période de range ou de tendance,
avec quoi je ne sais pas encore (ADX, à base MM de Kaufman ??), pour appliquer une stratégie différente sur chaque
période définie. Un filtre de Kalman en tendance par exemple
et un SMI pour les ranges. Ce ne sont que des idées en l'air, je verrai bien.

Pour la file sur les vers et le Simplexe, j'ai fait des recherches,
je comprends à peu près comment çà fonctionne, mais je n'ai
aucune idée de la manière de l'appliquer au trading.
Je ne sais pas du tout comment Christophe a fait, mais apparement
il bosse dessus depuis un paquet de temps.

Voilà, bonne continuation dans tes recherches.
Arnaud
 Alerter un modérateur Retourner en haut de page

jpsafe

(2 msg)

Plusieurs mois Moins d'un an Technique et fondamentale Actions françaises

Posté le : le 11-04-2008 22:19:28 Voir le profil   Envoyer un email à l'auteur   Envoyer un message privé   Répondre avec citation  
Bonsoir Smallcaps, un grand merci pour ta réponse ça fonctionne parfaitement et je retrouve exactement tes résultats mais si je comprend bien l'equity curve combine des positions long et short.

Serait ce abuser que d'avoir le code uniquement de l'equity curve pour des opérations long et cash(ie pas de position short)

Merci encore de ton aide

Cordialement


jp

 Alerter un modérateur Retourner en haut de page

smallcaps90

(908 msg)

Plusieurs semaines Plus de 3 ans Uniquement technique Actions françaises

Posté le : le 14-04-2008 14:14:48 Voir le profil   Envoyer un email à l'auteur   Envoyer un message privé   Répondre avec citation  
Bonjour jpsafe,

Je ne suis pas chez moi actuellement et je n'accède pas à GrapheAT Pro. Je dois revenir provisoirement jeudi soir pour repartir vendredi ou samedi. Je regarderai ce qui t'intéresse à ce moment là.

Cependant la modification du programme de MLOG n'est pas immédiate. Effectivement ce prog s'applique au cas ou on est constamment ds le marché : long puis vad puis long puis vad...

Dans l'indicateur dérivé "TURNING_POINTS-Entrées_Sorties" cependant, il y a un bout de code à la fin, après le titre "Bilan théorique", qui te permet déjà d'avoir une idée de ce qui se passe lorsqu'on ne se place pas en VAD lors d'une vente après une position longue. Mais il n'y a pas de tracé d'equity ni de calcul de la MDD. Il suffit que tu ouvres la fenetre d'affichage pour visualiser qq résultats.

Cordialement.
 Alerter un modérateur Retourner en haut de page
Posté le : le 14-04-2008 18:31:02 Voir le profil   Envoyer un email à l'auteur   Envoyer un message privé   Répondre avec citation  
Bonjour Smallcaps et à tous.

Perso j'aime bien rajouter ces lignes (en bleu) ... donc je vous en fait part ... dans le prog de stat car elle permettent de bien voir le comportement des cours (à la date de détection) et de prendre toutes les détections Achat et vente de la journée (ou semaine, mois..). Ces informations peuvent être copiées collées dans excel pour un traitement ou analyse.
Nota : Dans le tableau de la stat, la première valeur indique le prix d'ouverture du lendemain de la stat car je prends comme hypothèse que je vais rentrer à l'ouverture le lendemain matin (ce qui est différent de ce que fait Smallcaps car il rentre au cours de cloture du jour de la stat).
La 2ème valeur est le cours de cloture le soir où je suis rentré et ensuite les autres valeurs sont les cours de clotures des jours suivants.

Citation de : smallcaps90 (au 10-04-2008 18:29:05)

Bonsoir,

Statistique "STAT_TURNING_POINTS".

//=================================================
//STAT_TURNING_POINTS
//=================================================
//V1.0 (finalisée)
//09/04/2008
//smallcaps90
//=================================================
//Recherche des valeurs à l'achat ou à la vente
//à l'aide du programme indicateur "TURNING_POINTS"
//=================================================


//Fixer le nb de barres à explorer éventuellement
//Si pas utilisée, on se place de facto à la derinère
//barre de l'historique

//N=1


//--------------------------Scanner le groupe de valeurs
//
//Pour N Cours

Si TURNING_POINTS_Entrees_Sorties.E<>0
Alors
Colonne1="Passage à l'achat possible demain à : " & Cloture & " sur : "

colonne2=ouverture(-1)
colonne3=cloture(-1)
colonne4=cloture(-2)
colonne5=cloture(-3)
colonne6=cloture(-4)
colonne7=cloture(-5)
colonne8=cloture(-6)
colonne9=cloture(-7)


Select=1
FinSi

Si TURNING_POINTS_Entrees_Sorties.S<>0
Alors
Colonne1="Passage à la vente possible demain à : " & Cloture & " sur : "

colonne2=ouverture(-1)
colonne3=cloture(-1)
colonne4=cloture(-2)
colonne5=cloture(-3)
colonne6=cloture(-4)
colonne7=cloture(-5)
colonne8=cloture(-6)
colonne9=cloture(-7)


Select=1
FinSi

//FinPour

//Affichage valeurs
Si Select=1 ALORS Selection

//Fin du code

Programme à la logique "classique".
J'ai indiqué comme niveau d'achat/vente, la valeur de la cloture au jour où le signal est émis c'est à dire à la dernière période de l'historique.
Le programme de "backtest" de MLOG permet dans "TradGains2" les options suivantes fonctions des valeurs que vous affecterez aux paramètres P1, P2 et P3 :

========================
P1 = 0 : Opération au cours de Cloture du jour du signal
P1 = 1 : Opération au cours d'Ouverture du jour suivant le signal
P1 = 2 : Opération au cours moyen du jour suivant le signal

P2 : Stop de protection à -P2% de perte
P2 = 0 : Pas de stop de protection

P3 = 1 : Affichage de chaque opération d'Achat/Vente dans la fenêtre d'affichage des règles
P3 = 0 : Affichage réduit dans la fenêtre d'affichage des règles
========================

Le système élémentaire présenté dans le post précédent y est utilisé en Weekly. Rien n'interdit de l'utiliser sur une autre unité de temps si vous préférez.
Vous pouvez donc l'installer sous l'onglet "Jour", ou "Semaine" ou "Mois" de la fenêtre "Règle statistique" de Graphe AT Pro suivant votre préférence.
je l'ai fait sous l'onglet "Semaine" bien sûr.



En Weekly on devrait attendre vendredi 10/04 au soir pour appliquer la stat.
A des fins d'illustration, je l'ai fait tourner ce soir. Voici que cela donne sur le groupe CAC40:

===================================
Groupe : cac40 Date : 10/04/2008
Recherche des valeurs à l'achat ou à la vente
à l'aide du programme indicateur "TURNING_POINTS_INDIC"

Passage à l'achat possible demain à : 25,83 sur : Vivendi
Passage à l'achat possible demain à : 44,65 sur : Suez
Passage à l'achat possible demain à : 46,32 sur : Peugeot
Passage à l'achat possible demain à : 59,82 sur : EDF
Passage à l'achat possible demain à : 62,56 sur : Michelin
Passage à l'achat possible demain à : 65,91 sur : Renault
Passage à la vente possible demain à : 160,61 sur : Vallourec
Passage à la vente possible demain à : 163,58 sur : Unibail
Passage à la vente possible demain à : 83,26 sur : Schneider Electric
===================================

Cordialement.





Voici la modif du prog Propriété :





Voici comment se présente le tableau pour une recherche du suivi des signaux à la date du 12/03/2008 sur le SRD.

Cliquez pour agrandir


FOKI
édité le : 14-04-2008 19:10:17Laisser au marché, nous donner la direction...
 Alerter un modérateur Retourner en haut de page
Posté le : le 14-04-2008 20:50:14 Voir le profil   Envoyer un email à l'auteur   Envoyer un message privé   Répondre avec citation  
Citation de : smallcaps90 (au 11-04-2008 14:43:56)

//============
//Trad Gains 2
//============

//V3.2
//le 10/09/2006

// Calcul de la courbe des gains du Signal d'Achat/Vente
// et des statistiques sur les opérations dans la fenêtre d'Affichage (rapport de backtest)

// P1 = 0 : Opération au cours de Cloture du jour du signal
// P1 = 1 : Opération au cours d'Ouverture du jour suivant le signal
// P1 = 2 : Opération au cours moyen du jour suivant le signal

// P2 : Stop de protection à -P2% de perte
// P2 = 0 : Pas de stop de protection

// P3 = 1 : Affichage de chaque opération d'Achat/Vente dans la fenêtre d'affichage des règles









Re C'est assez amusant de faire varier les paramètres P1, P2,P3 dans la fenêtre ci-contre, et de voir les conséquences sur la courbe "Trade Gain". Damned, les stop c'est pô bon pour le trading !!!

FOKI
Laisser au marché, nous donner la direction...
 Alerter un modérateur Retourner en haut de page

smallcaps90

(908 msg)

Plusieurs semaines Plus de 3 ans Uniquement technique Actions françaises

Posté le : le 18-04-2008 18:31:08 Voir le profil   Envoyer un email à l'auteur   Envoyer un message privé   Répondre avec citation  
Bonsoir,

Merci doublement FOKI pour tes modifications de la statistique et pour m'avoir signalé ensuite en PV que l'indicateur unique "TURNING_POINTS_INDIC" sur lequel est basé le système, est du type "repaint le passé" dans certains cas.

Effectivement la vérification que j'ai faite du prog et des graphes est sans appel : il repaint bien le passé parfois.
Il est donc inutilisable tel quel. "My God!".
Pas de panique...c'est la partie effectuant le lissage du "%R" de Williams qui en est la cause.
Je remplace cet algorithme par une moyenne de Hull 6 périodes, efficace et toute simple.
Evidemmment les performances du système s'en ressentent et c'est en daily qu'il est le plus performant maintenant pour la plupart des actions. Il en reste qui y sont malgré tout "allergiques".

Pour répondre également à cnrd qui souhaitait connaître les performances du système dans le cas où ne serait plus en "stop and reverse" mais seulement dans le cas où on ne serait que "long", j'ai aussi modifié le programme dérivé "TURNING_POINTS_Entrées_Sorties" au niveau de l'affichage du bilan final et j'ai ajouté le programme "TURNING_POINTS_PERF" dont le seul rôle est de tracer le graphe des gains théoriques dans ce cas sous les cours.
Les résultats obtenus sont partiels pour le moment et il reste plusieurs statistiques de backtest à intégrer au prog, la MDD entre autres.

La nouvelle structure d'installation des programmes est :



Pour EDF en daily ce donne :




Voyons les programmes et leurs fenêtres Propriétés :


//====================
//TURNING_POINTS_INDIC
//====================
//V3.0 (finalisée)
//le 18/04/2008
//smallcaps90
//====================


//--------------------------Calcul du Williams%
//
HT=max(Haut,P1)
BS=min(Bas, P1)
W=100*(Cloture-HT)/(HT-BS)


//--------------------------Lissage de W avec une Hull
//
W_Lisse = PONDERE(2*PONDERE(W,P2/2)-PONDERE(W,P2),RACINE(P2))
//--------------------------Détermination des couleurs
//
M(0)=W_Lisse

//Initialisations
Si RangHisto=2
Alors
Si M>=M(1)
Alors
V(0)=1
R(0)=0
Sinon
V(0)=0
R(0)=1
FinSi
FinSi

//Détermination de la tendance
Si RangHisto>2
Alors

Si M(1)>M
Alors
R=1
V=0
FinSi

Si M(1)<M
Alors
V=1
R=0
FinSi

Si M(1)=M
Alors
Si V(1)=1 Alors V=V(1)
Si R(1)=1 Alors R=R(1)
FinSi

//Traitement des tracés
//
//Segments verts
//
Si V=1 ET V(1)=0
Alors
Si A=0
Alors
MV1(1)=M(1)
MV1=M
Sinon
MV2(1)=M(1)
MV2=M
FinSi
FinSi

Si V=1 ET V(1)=1
Alors
Si A=0 Alors MV1=M
Si A=1 Alors MV2=M
FINSI

Si V=0 ET V(1)=1
Alors
Si A=0 Alors MV1(1)=M(1)
Si A=1 Alors MV2(1)=M(1)
A=NON(A)
FinSi

//Segments rouges
//
Si R=1 ET R(1)=0
Alors
Si B=0
Alors
MR1(1)=M(1)
MR1=M
Sinon
MR2(1)=M(1)
MR2=M
FinSi
FinSi

Si R=1 ET R(1)=1
Alors
Si B=0 Alors MR1=M
Si B=1 Alors MR2=M
FinSi

Si R=0 ET R(1)=1
Alors
Si B=0 Alors MR1(1)=M(1)
Si B=1 Alors MR2(1)=M(1)
B=NON(B)
FinSi

FinSi

//Fin du code




//==============================
//TURNING_POINTS_Entrees_Sorties
//==============================
//V0.4 (proto)
//le 19/04/2008
//smallcaps90
//==============================

//Si RangHisto >= FinHisto-50
//Alors


//--------------------------Entrée position longue (Achat)
//
Si (MV1<>0 OU MV2<>0) ET
(MV1(1)<>0 OU MV2(1)<>0) ET
MV1(2)=0 ET MV2(2)=0 ET
Flag=0 //permet d'alterner les op d'E/S
Alors
E=-1
Flag=1
NE=cloture //on achetera en fait à l'ouverture du lendemain
NbOp=NbOp+1
FinSi

//--------------------------Sortie position longue (Vente)
//
Si (MV1(1)<>0 OU MV2(1)<>0) ET
MV1=0 ET MV2=0 ET
Flag=1
Alors
S=1
Flag=0
PJ=(cloture-NE) //on vendra en fait à l'ouverture du lendemain

Profit=Profit(1)+PJ //calculé sur les positions longues seules pour le moment
Si PJ>0
Alors
Win=Win+1
Sinon
Los=Los+1
FinSi

FinSi

Etat_position = Flag

//FinSi


//--------------------------Bilan théorique
//
//La partie qui suit est à l'état de prototype
//Elle utilise des paramètres calculés plus haut
//Elle est utilisée par la statistique
Si RangHisto=FinHisto Alors

Si E<>0 Alors OP$="Entrée position LONG à la période actuelle"
Si S<>0 Alors OP$="Sortie position LONG à la période actuelle"
Si Flag=0 ET E=0 ET S=0 Alors OP$="Aucune position en cours"
Si Flag<>0 ET E=0 ET S=0 Alors OP$="Une position LONG en cours"

Afficher "============RAPPORT DES OPERATIONS D'ACHAT============"
Afficher "RESULTATS simplifiés pour l'action (longs seuls et sans frais)"
Afficher NomAction$ & " " & CodeAction$
Afficher ""
Afficher "Bilan : " & ctxt$(TURNING_POINTS_PERF.Perf,2)
Afficher "Nombre Op d'achat = " & NbOp
Afficher "Nb Achats WIN = " & Win
Afficher "Nb Achats LOS = " & Los
Afficher "Type Op en cours : " & op$
Afficher "========================================================="

FinSi

//Fin du code



Nouveau programme :
//===================
//TURNING_POINTS_PERF
//===================
//V0.1 (proto)
//le 18/04/2008
//smallcaps90
//===================


Prof(0)=TURNING_POINTS_Entrees_Sorties.Profit

Perf=Perf(1)+ Prof



Les programmes de backtests ne sont pas modifiés.

Dans le cas d'EDF, en date d'hier soir, les fenêtres d'affichage crées par "Trad Gains 2" dans le cas "Sop And Reverse" et "TURNING_POINTS_PERF" pour le cas "long seulement" sont :

======== RAPPORT DES OPERATIONS D'ACHAT/VENTE ========
==================Strategie 'Stop And Reverse'================

EDF FR0010242511

Date début backtest : 21/11/2005
Date fin backtest : 17/04/2008
Nombre de barres testées : 610

NOMBRE TOTAL D'OPERATIONS : 141
Nombre d'opérations gagnantes : 69 (soit 48,94%)
Nombre d'opérations perdantes : 72 (soit 51,06%)

TOTAL DES GAINS : 35,9
Gains des opérations gagnantes : 128,86
Gains des opérations perdantes : -92,96

MOYENNE DES GAINS : 0,25
Moyenne des gains des opérations gagnantes : 1,87
Moyenne des gains des opérations perdantes : -1,29

Meilleure opération gagnante : 10,25
Plus petite opération gagnante : 0,04
Plus grande opération perdante : -7,91
Plus petite opération perdante : 0

Maximum d'opérations gagnantes consécutives : 6
Gain : 18,11
Maximum d'opérations perdantes consécutives : 6
Perte : -7,91

MAXDRAWDOWN : -15,64 obtenue le 13/02/2008

======================================================

et :

============RAPPORT DES OPERATIONS D'ACHAT============
RESULTATS simplifiés pour l'action (longs seuls et sans frais)
EDF FR0010242511

Bilan : 44,88
Nombre Op d'achat = 71
Nb Achats WIN = 42
Nb Achats LOS = 29
Type Op en cours : Aucune position en cours
=========================================================

Cette dernière stratégie est meilleure que la précédente dans le cas d'EDF.

Remarque :
l'étude précédente, qui n'est qu'un exemple d'emploi de GrapheAT Pro pour concevoir réaliser et tester une stratégie de trading volontairement très simple, reste bien entendu limitée, amendable, modifiable, criticable, n'hésitez pas à apporter votre pierre à l'édifice comme l'on fait quelques amis ici.
Il est tj à l'état de prototype même si certaines composantes sont finalisées et il y a danger à l'employer tel quel pour le moment...


Cordialement.

édité le : 18-04-2008 18:45:15 
 Alerter un modérateur Retourner en haut de page

crnd

(38 msg)

Plusieurs jours De 1 à 3 ans Uniquement technique Actions françaises

Posté le : le 19-04-2008 07:34:01 Voir le profil   Envoyer un email à l'auteur   Envoyer un message privé   Répondre avec citation  
Merci Smallcaps pour avoir lancé cette file et pour toute ta contribution...je vais essaye d'apporter à ton édifice, malgré mes maigres connaissances, ma pierre.

Je vous présente un petit systeme en contre tendance, qui ne demande qu'à etre amelioré, testé....
La base de celui ci est de prendre une position inverse sur un titre lorsqu'il est en fonction de certains critères en exces

IL n'est valable que sur les actions du SRD (pour de l'AT court terme et surtout pour du contre tendance à mon avis seul les actions à tres fort volume son valables, cela est du à la prise benef, la VAD possible, et la concordance des ateistes).
Ce n'est que pour des prises de position de quelques jours
Le placement des stops est logique et aisé
Par contre il n'y a pas beaucoup de signaux

L'idée du système est de chercher un titre dont le DX est à son apogée, sa volatilité élevée le tout cumulés avec un signal "probable" de retournement de la Hull
Il est composé de trois indicateurs

INDICATEUR N°1 (Hull pic creux)

La hull utilisee dans l'indic "hull pic creux" de smallcaps est un KST inverse avec comme valeur 5-10-20

//Moyenne de Hull
//DF le 18/06/2005
//v1.0
//

A(0) = 2*PONDERE(CLOTURE,P1/2)
B(0) = PONDERE(CLOTURE,P1)
HULL1 = PONDERE(A-B,RACINE(P1))

A1(0) = 2*PONDERE(CLOTURE,P2/2)
B1(0) = PONDERE(CLOTURE,P2)
HULL2 = PONDERE(A1-B1,RACINE(P2))

A2(0) = 2*PONDERE(CLOTURE,P3/2)
B2(0) = PONDERE(CLOTURE,P3)
HULL3= PONDERE(A2-B2,RACINE(P3))

M_HULL=(HULL1*3 + HULL2*2 + HULL3*1)/6


La fenetre propriete
http://img90.imageshack.us/img90/4396/hullproej4.jpg

Donc le programme de la hull pric creux devient
//===============
//HULL_PICS_CREUX
//===============

//Détermination des pics et creux de la moyenne de Hull du prog HULL
//par interpolation à l'aide de splines cubiques naturelles et
//approximation de la vitesse de variation de la moyenne de Hull.
//smallcaps.90 le 23/05/2006
//

//Moyenne de Hull
//
MOY_HULL(0)=HULL.M_HULL


SI RANGHISTO=FINHISTO //Après calcul global de la moyenne(?)
ALORS

POUR FINHISTO COURS
SI (RANGHISTO>1) ET (RANGHISTO<FINHISTO)
ALORS
ALPHA(0)=3*(MOY_HULL(-1)-2*MOY_HULL(0)+MOY_HULL(1))
FINSI
FINPOUR

POUR FINHISTO COURS
SI RANGHISTO=1
ALORS
L(0)=1
U(0)=0
Z(0)=0
FINSI

SI (RANGHISTO>1) ET (RANGHISTO<FINHISTO)
ALORS
L(0)=4-U(1)
U(0)=1/L(0)
Z(0)=(ALPHA(0)-Z(1))/L(0)
FINSI

SI RANGHISTO=FINHISTO
ALORS
L(0)=1
Z(0)=0
C(0)=Z(0)
FINSI

FINPOUR

POUR FINHISTO COURS
SI RANGHISTO=1
ALORS
J=-FINHISTO+RANGHISTO+1
FINSI

SI RANGHISTO<=FINHISTO //rétropropagation
ALORS
C(J)=Z(J)-U(J)*C(J-1)
B(J)=MOY_HULL(J-1)-MOY_HULL(J)-(C(J-1)+2*C(J))/3
D(J)=(C(J-1)-C(J))/3
J=J+2
FINSI
FINPOUR

POUR FINHISTO COURS //Dérivées première et seconde
SI RANGHISTO<FINHISTO
ALORS
FPRIME(0)=B(0)
FSECONDE(0)=2*C(0)
FINSI

SI RANGHISTO=FINHISTO
ALORS
FPRIME(0)=B(1)+2*C(1)+3*D(1)
FSECONDE(0)=2*C(1)+6*D(1)
FINSI
FINPOUR

FINSI

//Traitement de la dérivée par triple lissage de son momentum
SI RANGHISTO=FINHISTO
ALORS
POUR FINHISTO COURS

MomP(0)=FPRIME-FPRIME(P5)
//MomS(0) = FSECONDE-FSECONDE(P5)

//Triple lissage exponentiel du momentum de la dérivée première
//
M1(0)=EXPOSUIV(M1,MomP,P1)
M2(0)=EXPOSUIV(M2,M1,P2)
M3(0)=EXPOSUIV(M3,M2,P3)

ABSMomP=ABSOLU(MomP)

M4(0)=EXPOSUIV(M4,ABSMomP,P1)
M5(0)=EXPOSUIV(M5,M4,P2)
M6(0)=EXPOSUIV(M6,M5,P3)

HULL_PICS_CREUX=100*(M3/M6)

DERPREMIERE=FPRIME
DERSECONDE(0)=FSECONDE

M_DERPREM=PONDERE(2*PONDERE(DERPREMIERE,P1/2)-
PONDERE(DERPREMIERE,P1),RACINE(P1))

//M_DERSEC=PONDERE(2*PONDERE(DERSECONDE,P1/2)-
//PONDERE(DERSECONDE,P1),RACINE(P1))

//-----------------Extremas de HULL_PICS_CREUX
//
SI M_DERPREM(2)<M_DERPREM(1) et M_DERPREM(1)>M_DERPREM(0)
ALORS
SOMMETS_HAUTS(1) = 1
FLECHE_BLEUE(1)=(SOMMETS_HAUTS(1)*M_DERPREM(1))*(M_DERPREM(1)>0)
*(CONV_CONC_HULL.HAUSSE_DEBUT(1)<>0 OU CONV_CONC_HULL.HAUSSE_FIN(1)<>0)
FINSI

SI M_DERPREM(2)>M_DERPREM(1) et M_DERPREM(1)<M_DERPREM(0)
ALORS
SOMMETS_BAS(1) = 1
FLECHE_ROUGE(1)= SOMMETS_BAS(1)*M_DERPREM(1)*(M_DERPREM(1)<0)
*(CONV_CONC_HULL.BAISSE_DEBUT(1)<>0 OU CONV_CONC_HULL.BAISSE_FIN(1)<>0)
FINSI


FINPOUR
FINSI

la fenetre propriete de la hull pic creux
http://img153.imageshack.us/img153/3531/hpcproxf7.jpg


INDICATEUR N°2
le DX Jour...c'est un systeme KST inversé pour favoriser le court terme en 5-10-20 jours(1 semaine; 2 semaines; 20 jours qui correspond à un mois) dont voici la programmation

// DMI
DMP = Haut-Haut(1)
Si DMP<0 alors DMP=0
DMM = Bas(1)-Bas
Si DMM<0 alors DMM=0
Si DMM=DMP Alors
DMM=0 DMP=0
Sinon
Si DMM>DMP alors DMP=0 sinon DMM=0
FinSi

TR = MAXVAL(ABSOLU(Haut-Bas),ABSOLU(Haut-Cloture(1)))
TR = MAXVAL(TR,ABSOLU(Bas-Cloture(1))) // True Range

Si RANGHISTO<=20 Alors
TR20 = TR20+TR
DMP20 = DMP20+DMP
DMM20 = DMM20+DMM
Sinon
TR20 = TR20-(TR20/20)+TR
DMP20 = DMP20-(DMP20/20)+DMP
DMM20 = DMM20-(DMM20/20)+DMM
FinSi

// DI+ et DI-
DIPLUS20 = DMP20/TR20*100
DIMOINS20 = DMM20/TR20*100


// DMI
DMP = Haut-Haut(1)
Si DMP<0 alors DMP=0
DMM = Bas(1)-Bas
Si DMM<0 alors DMM=0
Si DMM=DMP Alors
DMM=0 DMP=0
Sinon
Si DMM>DMP alors DMP=0 sinon DMM=0
FinSi

TR = MAXVAL(ABSOLU(Haut-Bas),ABSOLU(Haut-Cloture(1)))
TR = MAXVAL(TR,ABSOLU(Bas-Cloture(1))) // True Range

Si RANGHISTO<=5 Alors
TR5 = TR5+TR
DMP5 = DMP5+DMP
DMM5 = DMM5+DMM
Sinon
TR5 = TR5-(TR5/5)+TR
DMP5 = DMP5-(DMP5/5)+DMP
DMM5 = DMM5-(DMM5/5)+DMM
FinSi

// DI+ et DI-
DIPLUS5 = DMP5/TR5*100
DIMOINS5 = DMM5/TR5*100


// DMI
DMP = Haut-Haut(1)
Si DMP<0 alors DMP=0
DMM = Bas(1)-Bas
Si DMM<0 alors DMM=0
Si DMM=DMP Alors
DMM=0 DMP=0
Sinon
Si DMM>DMP alors DMP=0 sinon DMM=0
FinSi

TR = MAXVAL(ABSOLU(Haut-Bas),ABSOLU(Haut-Cloture(1)))
TR = MAXVAL(TR,ABSOLU(Bas-Cloture(1))) // True Range

Si RANGHISTO<=10 Alors
TR10 = TR10+TR
DMP10 = DMP10+DMP
DMM10 = DMM10+DMM
Sinon
TR10 = TR10-(TR10/10)+TR
DMP10 = DMP10-(DMP10/10)+DMP
DMM10 = DMM10-(DMM10/10)+DMM
FinSi

// DI+ et DI-
DIPLUS10 = DMP10/TR10*100
DIMOINS10 = DMM10/TR10*100




ADX5=ABSOLU((DIPLUS5-DIMOINS5)/(DIPLUS5+DIMOINS5))*100
ADX10=ABSOLU((DIPLUS10-DIMOINS10)/(DIPLUS10+DIMOINS10))*100
ADX20=ABSOLU((DIPLUS20-DIMOINS20)/(DIPLUS20+DIMOINS20))*100


KADX5=ADX5*3
KADX10=ADX10*2
KADX20=ADX20*1

DXESJ=(KADX5+KADX10+KADX20)/6

L1=65

La fenetre des propriétés
http://img501.imageshack.us/img501/1158/dxessg3.jpg


INDICATEUR N°3
C'est un indicateur de volatilite en systeme KST inverse comme le DX

TR1=((HAUT(0)-BAS(0))/BAS(0))*100
TR2=absolu((HAUT(0)-CLOTURE(1))/cloture(1))*100
TR3=ABSOLU((BAS(0)-CLOTURE(1))/cloture(1))*100
PH2=MAXVAL(TR1,TR2)
TR(0)=MAXVAL(PH2,TR3)



MTR5(0)=EXPOSUIV(MTR5,TR,5)
MTR10(0)=EXPOSUIV(MTR10,TR,10)
MTR20(0)=EXPOSUIV(MTR20,TR,20)
VOLAES=(MTR5*3 + MTR10*2 + MTR20*1)/6



MTR50(0)=EXPOSUIV(MTR50,TR,50)
MTR150(0)=EXPOSUIV(MTR150,TR,100)
MTR250(0)=EXPOSUIV(MTR250,TR,200)
MVOLAES=(MTR50*1 + MTR150*2 + MTR250*3)/6

La fenetre des proprietes
http://img167.imageshack.us/img167/1043/volaessn3.jpg


LA REGLE STAT: à afficher sur les cours
un retournement de la hull lorsque le Dx est à son maximum (>65) et lorsque la volatilite est forte cad volatilite court terme >à la volatilite longt terme


SI ((DXESJOUR.DXESJ(0))>65 OU (DXESJOUR.DXESJ(1))>65)
ET HULL_PICS_CREUX.FLECHE_ROUGE(0)<0
ET (VOLAESCTMT.VOLAES(0))>(VOLAESCTMT.MVOLAES(0))
ALORS
ACHAT=1
FINSI



SI ((DXESJOUR.DXESJ(0))>65 OU (DXESJOUR.DXESJ(1))>65)
ET HULL_PICS_CREUX.FLECHE_BLEUE(0)>0
ET (VOLAESCTMT.VOLAES(0))>(VOLAESCTMT.MVOLAES(0))
ALORS
VENTE=1
FINSI


Un graphique pour ilustrer le tout
http://img91.imageshack.us/img91/4127/suezdx2yt1.gif
 Alerter un modérateur Retourner en haut de page

smallcaps90

(908 msg)

Plusieurs semaines Plus de 3 ans Uniquement technique Actions françaises

Posté le : le 19-04-2008 11:38:16 Voir le profil   Envoyer un email à l'auteur   Envoyer un message privé   Répondre avec citation  
Bonjour crnd,


Merci beaucoup pour ta contribution. Le système est intéressant dans son principe en contre-tendance, nous en avions parlé en PV d'ailleurs.

A ce sujet en comparant de plus près mes graphes Suez aux tiens je viens de voir que je n'ai pas tout à fait les mêmes signaux d'A/V que toi. Je pensais que cela pouvait être du à une différence au niveau des historiques comme cela arrive parfois mais en examinant ton graphe de "HULL_PICS_CREUX" je me suis aperçu qu'il ne donne pas tous les pics ni tous les creux de la Hull pondérée. Cela se voit bien sur ton graphe sous les cours.
Regarde début et fin février 2008, il manque les flèches bleues des deux pics. Même chose pour le pic de mi-mars…

Je pense que la cause en est la suivante :
si je reprends le paragraphe //-----------------Extremas de HULL_PICS_CREUX de l’indicateur, les conditions marquées en rouge dans l'extrait ci-dessous font appel dans mon programme à quatre variables récupérées dans la règle "CONV_CONC_HULL" que sont "HAUSSE_DEBUT(1)", "HAUSSE_FIN(1)", "BAISSE_DEBUT(1)" et "BAISSE_FIN(1)".
Si tu ne places pas le programme "CONV_CONC_HULL" dans ta base de règles ces variables sont inconnues.


//-----------------Extremas de HULL_PICS_CREUX
//
SI M_DERPREM(2)<M_DERPREM(1) et M_DERPREM(1)>M_DERPREM(0)
ALORS
SOMMETS_HAUTS(1) = 1
FLECHE_BLEUE(1)=(SOMMETS_HAUTS(1)*M_DERPREM(1))*(M_DERPREM(1)>0)
*(CONV_CONC_HULL.HAUSSE_DEBUT(1)<>0 OU CONV_CONC_HULL.HAUSSE_FIN(1)<>0)
FINSI

SI M_DERPREM(2)>M_DERPREM(1) et M_DERPREM(1)<M_DERPREM(0)
ALORS
SOMMETS_BAS(1) = 1
FLECHE_ROUGE(1)= SOMMETS_BAS(1)*M_DERPREM(1)*(M_DERPREM(1)<0)
*(CONV_CONC_HULL.BAISSE_DEBUT(1)<>0 OU CONV_CONC_HULL.BAISSE_FIN(1)<>0)
FINSI


"CONV_CONC_HULL" est disponible sur la file à :
http://www.pro-at.com/forums-bourse/topic.php?TOPI...
post du 27/06/2005 à 18h49.

Il faut que tu introduises cette règle dans ta base.
Je n'ai pas encore eu le temps d'entrer en profondeur dans ton système pour voir comment on peut augmenter le nombre de signaux qu'il donne, je le ferai à mon retour début mai. D'ici là je ne doute pas que cela se fasse...

Cordialement.



édité le : 19-04-2008 11:40:38 
 Alerter un modérateur Retourner en haut de page

crnd

(38 msg)

Plusieurs jours De 1 à 3 ans Uniquement technique Actions françaises

Posté le : le 19-04-2008 16:30:02 Voir le profil   Envoyer un email à l'auteur   Envoyer un message privé   Répondre avec citation  
Hello smallcaps

peut etre est ce du au fait que j'ai modifier la hull...

la hull que j'utilids est une KST 5-10-20 de ta hull de base...je t joins mon prog "conv_conc_hull" que j'ai dans ma base:

//==============
//CONV_CONC_HULL
//==============

//Recherche des zones convexes/concaves et ascendantes/descendantes
//sur une moyenne de Hull
//le 30/06/2005