Nous souhaitons attirer l'attention des contributeurs de nos forums que la législation française requiert que vous indiquiez si vous avez une position ouverte dans un instrument sur lequel vous émettez une opinion. Veuillez respecter cette recommandation faite par l’AMF (Autorité des Marchés Financiers) . Pour plus d'information : lire ce PDF.
Good Morning!
J'ai modifié le code du MP (une fois de plus), la séance asiatique est d'une seule couleur MidnightBlue, ensuite toutes les heures ont une couleur différentes jusqu'à la close US. Pour la pré-open US c'est SeanGreen (vert trés clair) et FireBrick (rouge) pour l'open. Sur MT4 on est à cheval car prés open à 14h30 est sur mt4 ça démarre à 14h, donc il faut faire attention et peut-être tracer des lignes pour avoir les niveaux (pour le moment impossible de créer un MP avec TPO de 30 min). Mais c'est couleur reste pratique surtout lorsque qu'on abandonne le trading matinal sur les indices euro pour passer au trading des indices us en début d'aprés-midi. Sinon pour le code de l'ib il est disponible sur le site MQL (et elle se règle aux heures souhaité, pas de problème) :
Le code forex (avec pro-at lorsque l'on copie et colle certain code le site rajoute des / c'est un espèce de bug à la con! il faut les enlver pour que le code fonctionne, attention de ne pas enlevre les // type }//if en début de phrase qui font partie du code)
:
int fontsize=10;
int i,j;
double LastHigh,LastLow,CurPos;
bool signal;
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
ObjectsDeleteAll(0,OBJ_RECTANGLE);
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- name for DataWindow and indicator subwindow label
short_name="MarketProfile";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
deinit();
double onetick;
double Mediana=0;
int MaxSize=0;
int MySize=0;
int MySizeA=0;
int MySizeB=0;
int MySizeC=0;
int MySizeD=0;
int MySizeE=0;
int MySizeF=0;
int MySizeG=0;
int MySizeH=0;
int MySizeI=0;
int MySizeJ=0;
int MySizeK=0;
int MySizeL=0;
int MySizeM=0;
int MySizeN=0;
int MySizeO=0;
int MySizeP=0;
int MySizeQ=0;
int MySizeR=0;
int BACK=0;
if (lastdayStart) StartDate=Time[0];
int x=Period();
if (x>240) return(-1);
if (x<1) return(-1);
BACK=0;
while (TimeDayOfYear(Time[BACK])>TimeDayOfYear(StartDate) || TimeYear(Time[BACK])!=TimeYear(StartDate) && (BACK
BACK++;
if (BACK>=Bars) return(0);
}//while
onetick = 1/(MathPow(6,Digits));
i=BACK;
////
int cycles;
for (cycles=CountProfile;cycles>0;cycles--) {
signal=false;
LastHigh=High;
LastLow=Low;
while (!signal)
{
//if (i+1==Bars) signal=true;
if (High[i+1]>LastHigh) LastHigh=High[i+1];
if (Low[i+1]
MaxSize=0;
MySize=0;
if (TimeDay(Time)!=TimeDay(Time[i+1]))
{
signal=true;
CurPos=LastLow;
while (CurPos<=LastHigh){
MySizeA=0;
MySizeB=0;
MySizeC=0;
MySizeD=0;
MySizeE=0;
MySizeF=0;
MySizeG=0;
MySizeH=0;
MySizeI=0;
MySizeJ=0;
MySizeK=0;
MySizeL=0;
MySizeM=0;
MySizeN=0;
MySizeO=0;
MySizeP=0;
MySizeQ=0;
MySizeR=0;
for (j=i;j>=BACK;j--) {
if ((High[j]>=CurPos) && (Low[j]<=CurPos)) {
MySize++;
if ((TimeHour(Time[j])>=21) && (TimeHour(Time[j])<00)) MySizeB++; else
if ((TimeHour(Time[j])>=00) && (TimeHour(Time[j])<06)) MySizeC++; else
if ((TimeHour(Time[j])>=06) && (TimeHour(Time[j])<07)) MySizeD++; else
if ((TimeHour(Time[j])>=07) && (TimeHour(Time[j])<08)) MySizeE++; else
if ((TimeHour(Time[j])>=08) && (TimeHour(Time[j])<09)) MySizeF++; else
if ((TimeHour(Time[j])>=09) && (TimeHour(Time[j])<10)) MySizeG++; else
if ((TimeHour(Time[j])>=10) && (TimeHour(Time[j])<11)) MySizeH++; else
if ((TimeHour(Time[j])>=11) && (TimeHour(Time[j])<12)) MySizeI++; else
if ((TimeHour(Time[j])>=12) && (TimeHour(Time[j])<13)) MySizeJ++; else
if ((TimeHour(Time[j])>=13) && (TimeHour(Time[j])<14)) MySizeK++; else
if ((TimeHour(Time[j])>=14) && (TimeHour(Time[j])<15)) MySizeL++; else
if ((TimeHour(Time[j])>=15) && (TimeHour(Time[j])<16)) MySizeM++; else
if ((TimeHour(Time[j])>=16) && (TimeHour(Time[j])<17)) MySizeN++; else
if ((TimeHour(Time[j])>=17) && (TimeHour(Time[j])<18)) MySizeO++; else
if ((TimeHour(Time[j])>=18) && (TimeHour(Time[j])<19)) MySizeP++; else
if ((TimeHour(Time[j])>=19) && (TimeHour(Time[j])<20)) MySizeQ++; else
if ((TimeHour(Time[j])>=20) && (TimeHour(Time[j])<21)) MySizeR++;
Bon ça bug encore, demandez moi le code par mail si ça vous intéresse et voir avex Crock pourkoi le site n'accepte toutes les touches d'un clavier Azerty
Computer day-trader sur contrats à terme
Mon twitter : CharlesAntoine Levoy
Sinon comme d'hab! J'ai envoyé le code forex, pour le forex il y a 2 codes selon les paires sinon un code pour les gros indices et un pour les actions. Pour cela il faut changer le nombre de la ligne Digits, voir fichier joins.
2digits pour les indices
4digits pour le fx selon paires
6digits pour le fx selon paires
8digits pour les actions
nb : Ceci n'est pas un bug !
Computer day-trader sur contrats à terme
Mon twitter : CharlesAntoine Levoy
Travail des plus intéressant Caltonio, cette approche par les fonctions de densités de probabilités: Ton market profile calcule en réalité ce que les mqthématiciens appèllent la "fonction de répartition" ou fonction de densité de probabilité ( http://fr.wikipedia.org/wiki/Fonction_de_répartition )
La fonction de répartition est une fonction fondamentale en théorie du signal, notamment lorsqu'elle est couplée à une "Fonction de Transfert".
Une idée, intéressante, par exemple, pour pouvoir interpreter plus facilement le résultat est d'utiliser lq technique de l'égalisation de l'histogramme:
Je m'explique:
En jettqnt un oeil à tes fonctions de répartition, on s'aperçoit très clairement que le mqrché ne fait pas "n'importe quoi" et travaille bien certains seuils plutot que d'autres. C'est un fait visuellement remarquable.
Je te propose donc un raisonnement par l'absurde: Si le cours était aléatoire (suivant la loi binomiale par exemple) comment serait ton histogramme ?
Oui, tu l'a deviné: il serait plat, c'est à dire que toutes les valeures seraient identiques puisque toutes les valeures auraient la meme frequence/probabilité d'apparition...
...D'ou cette idée de creer une transformée (fonction de transfert) qui recalcule le cours "comme s'il était hasardeux, au sens binomial".
Ainsi, une simple comparaison entre le cour et sa transformée (par une simple différence/soustraction comme dans un MACD) indique alors QUAND le cours ne se comporte pas comme le hasard binomial...
Si la thématique te semble intéressante, voici l'algo. de l'égalisation de l'histogramme (il est en 2 demension 2D ici, mais pour un cours c'est encore plus simple puisque on est en 1D):
Sinon, dans le même ordre d'idées, il y a la transformée de Fisher, qui considère un hasard Guassien pour la fonction de transfert de la fonction de densité de probabilité, plutot que la loi binomiale, mais son interpretation est identique...
Oui bonne réflexion Slaruaz!
Le MP est excellent, il convient à tous type de trading sclaping ou swing, certain joue l'opening trade d'autre atendent une contraction des tpo puis que l'activité du marché horizontale devienne verticale la où on fait le + de points, ensuite c'est patience et discipline (rien de nouveau). C'est pas le graal non plus ça compréhension demande du temps et du travail. Mais c'est un outil efficaçe avec des niveaux cohérants, rien à voir avec une technique à la Macguyver ou des formules mathématique pathétique qui repeignent le passé sous forme d'indicateur.
AMHA il est peu utilisé car il y a peu d'écrit en français dessus et il est peu develloppé sur les plateforme voir couteux comme l'excellent footprint(http://www.marketdelta.com/Footprint_Chart), depuis peu j'ai la chance de suivre quelques personnes qui travaillent depuis de nombreuse années avec cette plateforme et le MP et rien d'autre pas besoin d'indicateur qui fasserait leurs jugements, tous ce je peux dire c'est qu'ils bombardent, vraiment!
See you!
Computer day-trader sur contrats à terme
Mon twitter : CharlesAntoine Levoy
Et puis d'autres variations autour de ton MP peuvent être imaginées, comme par exemple une pondération de l'histogramme avec les volumes de transactions... Pour faire une analogie: Un peu comme le Money Flow index par rapport au Relative Strengh Index, bref un "Caltonio MP&Volumes" en quelques sortes.
Bref plein de perspectives de prospection autour de ce MP...
J'ai pris le temps entre hier et aujourd'hui d'ecrire les lignes de code pour illustrer l'approche du MP en volume, ainsi que sur l'idée de la différence entre le cours et sa transformée (voir mes posts précédants):
Ici on a le EurUsd en M5 avec un historique de 288 bar (soit 1 journée)
On peut alors voir les seuils travaillés EN VOLUME, car mon algo présenté ici pondère le MP avec les volumes de transaction, ce qui me semble être un atout supplémentaire dans la philosophie dur MP qui cherche à déterminer les seuils les + travaillés
Ici la même chose en H1 (donc 4 jours de cotations)
Dans les 2 cas, j'ai fait apparitre un transformée de Fisher qui alerte le trader quand le mouvement n'est pas "normal" au sens Guaussien du terme ( voir loi normal ici : http://fr.wikipedia.org/wiki/Loi_normale )
Quand Fisher>0 alors distribution haussière "anormale" (au sens mathématique du terme, c'est à dire pas normale au sens guaussien du terme)
Quand Fisher<0, distribution baissière "anormale".
Je travaille en ce moment sur une Fisher qui intègre les volumes comme pour l'histogramme de densité de répartition pondérée avec les volumes de transactions présentés ici dans ce 2 graphiques ( histogrammes du haut, en gris)
Salut Slaruaz, cette version du MP est dénomé Market Profile composite, tu aurais du me précis que tu souhaitez ce type de code car j'en ai un en reserve et cela t'aurais éviter de faire cet exercice fastidieux. Sinon le MP composite est connu par les traders MP et AMHconnaissance il est surtout utilisé sur une période de 5 jours et 8 jours, je jette réguliérement un oeil au composite 5 jours lorsque j'ai un doute sur les cloches intraday ça évite de prendre un trend un peu trop hazardeux.
Bon week-end!
Computer day-trader sur contrats à terme
Mon twitter : CharlesAntoine Levoy
Commentaire