<img src='http://www.pro-at.com/style/images/icones/Super11.gif' border='0' alt='' title='' align='middle' />
Annonce
Réduire
Aucune annonce.
Ads
Réduire
[Graphe AT PRo : programmation]
Réduire
X
-
<img src='http://www.pro-at.com/style/images/icones/icon_smile.gif' border='0' alt='' title='' align='middle' /> <img src='http://www.pro-at.com/style/images/icones/icon_smile.gif' border='0' alt='' title='' align='middle' /> <img src='http://www.pro-at.com/style/images/icones/icon_smile.gif' border='0' alt='' title='' align='middle' />
Super Daniel, bonnes fêtes à tous
Fabrice
Commentaire
-
<font color='#0000FF'></font>Bonsoir à tous,
Je suis heureux de vous transmettre le premier email reçu ce soir de MLOG qui propose des solutions à 2 propositions d'évolutions que nous lui avons soumises ce midi :
<em><font color='#0000FF'>========================================
Expéditeur : "mlog" <mlog@graphat.com>
22/12/08 18:28
Bonjour,
Je vous répond au moins sur un point pour l'instant.
Il est facile de modifier le programme de trading system pour qu'il ne fasse que des achats ou que des ventes au lieu du stop and reverse actuel.
Je joint le source du programme modifié. Un nouveau paramètre P4 permet de choisir le mode voulu pour les achats/ventes. Il n'y a que 4 ou 5 lignes
de rajoutées par rapport à la règle d'origine (c'est celles où le paramètre
P4 est utilisé).
Pour la fenêtre d'affichage des règles si il n'y a pas de bouton pour l'appeler, il y a un raccourci clavier CTRL+F qui évite d'aller dans le menu.
Cordialement.
========================================</font></em>
Il s'agit pour le premier point du mail de la proposition 2-9 qui est arrivée en tête de nos demandes :
<strong>2-9 (50 pts)
Créer un programme de backtest pour des prises de position autres que celles de type "stop and reverse". </strong>
La solution proposée par MLOG consiste en une nouvelle version du programme "Trad Gains 2" qui est une règle indicateur dérivée de "Trading system 2".
Un nouveau paramètre P4 apparaît qui permet de sélectionner le mode de prise de position que l'on souhaite :
Si P4 = 0 on est en Stop & Reverse
Si P4 = 1 on est positionné à l'achat seulement
Si P4 = -1 on est positionné à la vente seulement
Le nouveau programme est le suivant :
//============================================================
//Trad Gains 2
//
// 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
// P4 = 0 : Stop & Reverse
// P4 = 1 : Positionné qu'à l'achat
// P4 = -1 : Positionné qu'à la vente
GAINS = GAINS(1)
GAINSREEL = GAINSREEL(1)
BUYANDHOLD = BUYANDHOLD(1)
Pos = Pos(1)
SIGNALSTOP=SIGNAL
// Affichage des statistiques sur les opérations
Si RANGHISTO=FINHISTO Alors
Afficher ""
Afficher "======== Statistiques sur les opérations d'Achat/Vente ========"
Afficher ""
Afficher "Nombre d'opérations : " & Trade &
" Gagnantes : " & Win & " (" & ARRONDI(Win/Trade*100,2) & "%)" &
" Perdantes : " & Lost & " (" & ARRONDI(Lost/Trade*100,2) & "%)"
Afficher ""
Afficher "Total des gains : " & ARRONDI(GAINSREEL,2) &
" Des opérations gagnantes : " & ARRONDI(SomWin,2) &
" Des opérations perdantes : " & ARRONDI(SomLost,2)
Afficher "Moyenne des gains : " & ARRONDI(GAINSREEL/Trade,2) &
" Des opérations gagnantes : " & ARRONDI(SomWin/Win,2) &
" Des opérations perdantes : " & ARRONDI(SomLost/Lost,2)
Afficher ""
Afficher "Meilleur opération gagnante : " & ARRONDI(MaxWin,2) &
" Plus petite opération gagnante : " & ARRONDI(MinWin,2)
Afficher "Plus grande opération perdante : " & ARRONDI(MaxLost,2) &
" Plus petite opération perdante : " & ARRONDI(MinLost,2)
Afficher ""
Afficher "Maximum d'opérations gagnantes consécutives : " & ARRONDI(MaxNbConsWin,2) &
" Gain total : " & ARRONDI(MaxConsWin,2)
Afficher "Maximum d'opérations perdantes consécutives : " & ARRONDI(MaxNbConsLost,2) &
" Perte totale : " & ARRONDI(MaxConsLost,2)
Afficher ""
Afficher "Perte maximale atteinte en intraday (MaxIntraDrawDown) : " & ARRONDI(MaxIntraDrawDown,2) &
" (le " & DateMaxIntra$ & ")"
Afficher ""
Afficher "===================================================="
Afficher ""
FinSi
// 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
Si Pos=-1 ET P4=1 Alors Pos=0
Si Pos=1 ET P4=-1 Alors Pos=0
CoursDebOper = CoursOper
DateDebOper$ = DateHisto$
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 SIGNALSTOP=-1 ET P4=1 Alors SIGNALSTOP=-2
Si SIGNALSTOP=1 ET P4=-1 Alors SIGNALSTOP=2
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
//============================================================
L'autre demande concerne le point 1-2 (arrivé en 7ème position dans notre enquête). Il concerne l'accès à la fenêtre d'affichage :
<strong>1-2 (35 pts)
Fenêtre d'affichage de GAP (GrapheAT Pro pour faire rapide) accessible par bouton (actuellement il faut faire Règle/Fenêtre d’affichage…).</strong>
SOLUTION :
Le raccourci <strong>CTRL+F</strong> comme indiqué dans le mail de ce soir permet donc d'afficher cette fenêtre sans passer par le menu "Règle/Fenêtre d'affichage...".
Ce raccourci est déjà cité dans l'aide (paragraphe : Backtest avec la règle Trading System 2) à laquelle on accède lorsqu'on se trouve dans la fenêtre "Règle Indicateur". Nous ne l'avions pas pris en compte...
Voilà, le processus d'évolution est lancé, nous ne pouvons que nous en réjouir.
Je remercie très sincèrement Monsieur Métois de MLOG pour sa grande réactivité.
Cordialement.
Commentaire
-
<blockquote><strong>Citation de : maxakool</strong> <em>(au 26-12-2008 09:20:50)</em>
Si on écrit :
M1=Moyenne(Cloture,7)
M1=Moyenne(M1,7)
M2=Moyenne(Moyenne(Cloture,7),7)
Est ce que M1 donne le même résultat que M2 ?
</blockquote><hr />
Bonjour maxakool et bienvenue sur la file,
Comme tu as écris ton programme M1 n'est pas egal à M2.
Voici ce que donne ton programme:
<center><img src='http://images.pro-at.com/forums-bourse/1208/20110_261154.gif' alt='' /></center>
Comme tu peux le constater la valeur M1 diffère de M2.
Tu as 2 calcul différent pour une même valeur qui est en l'occurence M1. C'est à dire que M1 est égal à ça : M1=Moyenne(Cloture,7) et aussi à ça : M1=Moyenne(M1,7)
Il faut donc que tu dissocie le nom attribue à ces 2 calculs. Par exemple M11 pour le premier et M1 pour le second calcul.
Par ailleurs le premier calcul (M11=Moyenne(Cloture,7)) sert de base au calcul de la seconde condition (M1=Moyenne(M1,7))
Si tu ne veux pas que le premier calcul apparaisse sur le graph il faut que historise le calcul en mettant (0) juste après M11.
Voici en d'autre terme ce que donnerais ton programme pour que M1 soit égal à M2:
M11(0)=Moyenne(Cloture,7)
M1=Moyenne(M11(0),7)
M2=Moyenne(Moyenne(Cloture,7),7)
Et voici les valeurs obtenues :
<center><img src='http://images.pro-at.com/forums-bourse/1208/20110_261155.gif' alt='' /></center>
Comme tu peux le constater M1 est egal à M2 dans ces conditions.
J'espère avoir répondu à ta question.
Fredifly.
Commentaire
-
Il manque cruellement une variable dite "composite" dans GraphAT Pro.
Il s'agit d'une variable (indice) qui serait créée à l'aide du rapport entre 2 autres variables. Exemple:
- l'indice CRB divisé par l'indice T-Bond
- Résultat; création d'un nouvel indice "CRB/T-Bond".
Ceci existe depuis longtemps dans Metastock. On peut faire de même aussi lorsqu'on utilise StockCharts.
J'avais envoyé un email à Mlog à ce sujet, mais il n'a pas du en tenir compte !!
Commentaire
-
Bonjour,
De retour après avoir bu un (tout petit) bouillon avec l'éclatement de la bulle informatique <img src='http://www.pro-at.com/style/images/icones/icon_smile_blackeye.gif' border='0' alt='' title='' align='middle' />, j'avais cependant entre-temps continué à lire le forum et à télécharger les cours sur GAT...
Avant de me lancer à nouveau, j'affûte mon GAT et je viens de me rendre compte d'un petit problème, qui pourrait affecter l'exactitude de la programmation s'il était avéré.
Pour certaines valeurs,(pas toutes), les variations indiquées par GAT ne correspondent pas aux variations indiquées par Les Echos ou ABCbourse...
Exemples :
Alcatel
29/12 __0,66% GAT ____0,39% Les Echos
24/12 __0,66% GAT ____0,86% Les Echos
23/12 __0,67% GAT ____0,47% Les Echos
22/12 __-4,46% GAT ____-4,40% Les Echos
Accor:
29/12 __0,63% GAT ____0,61% Les Echos
24/12 __-2,42% GAT ____-2,40% Les Echos
23/12 __1,15% GAT ____1,13% Les Echos
22/12 __-3,28% GAT ____-3,26% Les Echos
Pour Accor, on peut supposer qu'il s'agit d'un problème d'arrondi, quoique... Mais pas pour Alcatel...
Je n'ai mis ici que deux exemples, j'en avais trouvé d'autres au hasard de mes recherches, mais ne les avais pas noté <img src='http://www.pro-at.com/style/images/icones/icon_smile_blush.gif' border='0' alt='' title='' align='middle' />.
Est-ce mon soft qui chahute ou avez-vous le même constat.
Et dans ce cas, que faut-il en penser ??? <img src='http://www.pro-at.com/style/images/icones/icon_smile_question.gif' border='0' alt='' title='' align='middle' />
En attendant, <u>je tire mon chapeau à SmallCaps toujours présent et actif, fantastique</u> !
Et bonnes fêtes de fin d'année...
AlainS
Commentaire
-
<blockquote><strong>Citation de : Tobago</strong> <em>(au 30-12-2008 11:46:20)</em>
Accor:
29/12 __0,63% GAT ____0,61% Les Echos
24/12 __-2,42% GAT ____-2,40% Les Echos
23/12 __1,15% GAT ____1,13% Les Echos
22/12 __-3,28% GAT ____-3,26% Les Echos
Pour Accor, on peut supposer qu'il s'agit d'un problème d'arrondi, quoique... Mais pas pour Alcatel...
</blockquote><hr />
Bonjour Tobago
Pour Accor (et autres valeurs), il s'agit peut-être du passage à trois décimales non pris en compte dans GraphAT
Pour Alcatel, j'ai la même erreur.
Commentaire
-
Bonjour Tobago et Bambi
j'ai eu le cas, lors de programmation de ce type calcul, cela vient des conversions de textes en nombre flottant*100, puis en entier, puis en texte avec virgule(/100).
cela donne ce type de formule :
FloatToStr((int((StrToFloat(netV3.text)+StrToFloat(netV2.text)+StrToFloat(netV.text)-StrToFloat(netV4.text))*100 )/100))
(celle-ci est bonne) <img src='http://www.pro-at.com/style/images/icones/icon_smile_wink.gif' border='0' alt='' title='' align='middle' />, il existe aussi d'autres solutions, moi j'aime bien cette façon.
Smallcapps nous dira si je suis dans le vrai.
Suivant comment c'est programmé ou une parenthèse mal placée et effectivement il peut en sortir le bug que vous avez trouvé.
De notre côté nous ne pouvons pas faire de modifs seul MLOG doit revoir sa formule.
Bon réveillon à tous.Max imum de gains et Min imum de pertes
Commentaire
-
Bonjour les ami(e)s,
Tout d'abord je vous présente mes meilleurs voeux pour 2009 : santé, amour, prospérité...
Pour ce qui concerne ensuite le pb détecté par Tobago, comme le souligne très logiquement max_et_min seul MLOG peut modifier ses sources pour supprimer ce bug évidemment.
Comme la méthode proposée par max_et_min pour effectuer la conversion "texte ---> flottant" puis la conversion inverse fonctionne correctement (en tenant compte de la présence du "%" et de la virgule), on peut souhaiter bientôt voir le bug corrigé puisque cela est vraisemblablement le cas, MLOG nous lit...
Enfin, je n'ai pas de nouvelles fraîches au sujet des améliorations que nous lui avons demandées récemment. A suivre donc.
Cordialement.
Commentaire
Commentaire