Rejoindre la communauté
banner_forum
Devenez membre de la plus grande
communauté francophone sur le Forex
Partagez, échangez et apprenez en gagnant des crédits sur votre compte de trading

Carnet d'ordre ( soit DOM, tape reading), Bloomberg/ Reuters

  • _squAces_

    S'il te plaît, je t'ai proposé de poser la question d'ordre «programmation» dans le lien que je t'ai fourni ça aidera Forexmatic à t'aider. C'est pas un gros investissement, j'imagine que tu as certainement un bon volume financier pour utiliser un market.

    Je te propose encore une fois de créer un compte membre sur le communauté pour te présenter.
    Merci.
  • forexensemble — en réponse à arnaquebroker dans son message #88077

    arnaquebroker, le 11/12/2013 dit :
    Qu'est ce qu'il faut changer dans ce code pour avoir du H1 voire m15....

    Salut,
    il n'y a rien à changer.
    Joue avec les paramètres...
    L'affichage fonctionne parfaitement à toutes les échelles de temps.

    Penses au fait que l'affichage se fait jusqu'au jour précédent, sauf si tu paramètres "To_build_today=true" et là, tu auras aussi l'affichage de la journée en cours.

    Si tu veux afficher plusieurs jours d'historique, indiques le nombre de jours dans le paramètre "Days_with_the_histogram" qui est à 1 par défaut.
    Modifié le 2013-12-12 08:56:16 par forexensemble
  • forexensemble

    Pour mon information, peux-tu me dire comment tu utilises cet indicateur sur le Forex ?
  • arnaquebroker (invité)

    En faite, l'histogramme te montre le poc volume du jour ou des jours précédents (s'il n'est pas touché se retrouvera dans le future comme un un bon S/R donc rebond obligatoire) ainsi que deux traits qui te montre 70 % du volume concentrait dans cette ZONE (tu peux aussi le règler....et c'est aussi un endroit ou le cour peut rebondir donc combiner à d'autres indicateurs c'est pas mal du tout). Oui je sais c'est visible sur toutes les UT mais ce que je voulais savoir justement si il est possible de le modifier et de voir la même chose pas sur du ou des jours précédentes mais sur des bougies h1 précédentes dans la journée (d'avoir le poc plus les 70 % sur par exemple ce matin de 8 à 9 puis de 9h à 10h et non des jours précédants...)
  • JMarre — en réponse à liva dans son message #87936

    Bonjour Liva

    Tu disais, il y a déjà quelque jours, que tu suis les tendances a long termes, c'est à dire dans quel timeframe? Et de quels indicateurs avec quels paramètre tu t'en sers?

    Merci
  • forexensemble — en réponse à arnaquebroker dans son message #88119

    arnaquebroker, le 12/12/2013 dit :
    je voulais savoir justement si il est possible de le modifier et de voir la même chose pas sur du ou des jours précédentes mais sur des bougies h1 précédentes dans la journée (d'avoir le poc plus les 70 % sur par exemple ce matin de 8 à 9 puis de 9h à 10h et non des jours précédants

    Ah ok.
    Je comprends mieux ta demande.
    Là, il faut plonger dans le code...
    Je regarderai cela ce week-end.
    Si tu n'as pas de nouvelles de ma part au début de la semaine prochaine, relances-moi ;)
  • arnaquebroker (invité)

    Okay ça marche merci...par exemple ce matin il y a eu des beaux rebonds et en ce moment aussi....mais c'est plus une stratégie de day trader voire positions à la semaine et merci de t'y plonger pour créer un truc en scalping et qui marcherai sur MT4...et je recommande cette outil pour les débutants...
  • arnaquebroker (invité)

    Un petit coucou pour forexomatic pour savoir si tu a jeté un coup d’œil au code???
  • forexensemble — en réponse à arnaquebroker dans son message #88314

    arnaquebroker, le 16/12/2013 dit :
    Un petit coucou pour forexomatic pour savoir si tu a jeté un coup d’œil au code???

    Oui, j'ai jeté un coup d’œil au code.
    Pour arriver au résultat que tu souhaites, il faut réécrire une partie du cœur de l'indicateur.
    Comme je n'en ai pas besoin pour moi, je ne veux pas y consacrer plus de temps.
  • arnaquebroker (invité)

    okay...est-ce qu'il y a beaucoup à changer....???
  • _squAces_ — en réponse à arnaquebroker dans son message #88119

    arnaquebroker, le 12/12/2013 dit :
    En faite, l'histogramme te montre le poc volume du jour ou des jours précédents (s'il n'est pas touché se retrouvera dans le future comme un un bon S/R donc rebond obligatoire) ainsi que deux traits qui te montre 70 % du volume concentrait dans cette ZONE (tu peux aussi le règler....et c'est aussi un endroit ou le cour peut rebondir donc combiner à d'autres indicateurs c'est pas mal du tout). Oui je sais c'est visible sur toutes les UT mais ce que je voulais savoir justement si il est possible de le modifier et de voir la même chose pas sur du ou des jours précédentes mais sur des bougies h1 précédentes dans la journée (d'avoir le poc plus les 70 % sur par exemple ce matin de 8 à 9 puis de 9h à 10h et non des jours précédants...)


    Je comprends pas ce problème d'UT. Tu souhaite obtenir le IB c'est ça? Dans ce cas tu peux compter les piles ou alors paramètres en M30 car ce sont des TPO en piles de 30 minutes.

    Redis-moi.
  • forexensemble

    _squAces_, le 16/12/2013 dit :
    Je comprends pas ce problème d'UT.

    +1
    Je ne comprends pas non plus l'intérêt de vouloir changer l'UT.
    Si tu nous expliques ce que tu souhaites en faire dans la configuration que tu voudrais, cela pourrait nous éclairer.
    arnaquebroker, le 16/12/2013 dit :
    okay...est-ce qu'il y a beaucoup à changer....???

    Oui, c'est un travail conséquent... dont je ne comprends pas l'intérêt pour le moment.
    Modifié le 2013-12-16 13:51:05 par forexensemble
  • forexensemble

    Voici quand même une petite modif que j'ai faite ce w-e pour tester ce qui se passe si on limite les dates début et fin du marché à d'autres plages que le journée.

    Tu trouveras deux paramètres que j'ai rendus visibles :
    extern string StartTime = "0:00";
    extern string EndTime = "23:59";

    Tu peux tester ce que cela donne, par exemple de 9h à 9h30.
    De nouveau, je vois pas l'intérêt, mais bon, si cela peut t'aider...

    S'il faut changer le code pour que le marché soit automatiquement ajusté à une autre plage que la journée, c'est trop de travail pour que je m'y mettes sans que cela ne me serve.

    Voici le code modifié :

    Code
    //+------------------------------------------------------------------+ //| MarketProfile_Virgin POC.mq4 | //| Copyright © 2006, V&K Software Corp. | //| | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, V&K Software Corp." #property link "" #property indicator_chart_window extern int Days_with_the_histogram = 12; // Êîëè÷åñòâî äíåé äëÿ ïîñòðîåíèÿ Ãèñòîãðàììû extern bool To_show_values = true;// âêëþ÷èòü çíà÷åíèÿ óðîâíåé extern int Range_percent = 70; extern color Color_VirginPOCs = Green;// öâåò óðîâíÿ Virgin POC(Point of Control Formation) extern color Color_POCs = DarkGray;// öâåò óðîâíÿ POC òî÷êè ôîðìèðîâàíèÿ êîíòðîëÿ extern color Colour_in_a_range = MediumVioletRed;// öâåò âíóòðåííåãî äèàïàçîíà öåí extern color Colour_behind_a_range = RoyalBlue;// öâåò âíåøíåãî äèàïàçîíà öåí extern int Displacement_GMT = 0; // ñìåùåíèå ìåòîê îòíîñèòåëüíî 0 áàðà extern bool To_build_today = false; // Ïîñòðîåíèÿ äëÿ òåêóùåãî äíÿ extern int Construction_step = 1; // Øàã ñåòêè ïîñòðîåíèÿ extern int Max_of_days_calculation = 30; // Ìàêñèìàëüíîå êîëâî äíåé äëÿ ðàñ÷åòà åñëè -1 âñÿ äîñòóïíàÿ èñòîðèÿ extern int Shift = 8; // ñìåùåíèå ìåòîê îòíîñèòåëüíî 0 áàðà extern string StartTime = "0:00"; extern string EndTime = "23:59"; // Ãëîáàëüíûå ïåðåìåííûå bool RedrawFlag; double Divider; datetime TimeZero=0; int CountPOC=0; string VirginPOC[]; //string StartTime, EndTime; string PrefixName="MARKET_VIRGIN"; //string Comm; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators RedrawFlag=true; //---- switch(Period()) { case PERIOD_M1: Divider=(PERIOD_D1/5.0)/(PERIOD_D1/PERIOD_M1); break; case PERIOD_M5: Divider=(PERIOD_D1/5.0)/(PERIOD_D1/PERIOD_M5); break; case PERIOD_M15: Divider=(PERIOD_D1/5.0)/(PERIOD_D1/PERIOD_M15)-1; break; case PERIOD_M30: Divider=(PERIOD_D1/5.0)/(PERIOD_D1/PERIOD_M30)-2; break; case PERIOD_H1: Divider=(PERIOD_D1/5.0)/(PERIOD_D1/PERIOD_H1)-8; break; case PERIOD_H4: Divider=12; break; case PERIOD_D1: Divider=5.0/PERIOD_D1*2; break; case PERIOD_W1: Divider=5.0/PERIOD_W1; break; default: Divider=1; break; } /* if(StringFind( Symbol(), "#")!=-1||StringFind( Symbol(), "_")!=-1) { StartTime="13:30"; EndTime="19:59"; } else { StartTime="0:00"; // StartTime="13:30"; // EndTime="19:59"; EndTime="23:59"; } */ if(StringFind( Symbol(), "_ES")!=-1) Construction_step=10; return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { int i = 0; string ObjName; while(i < ObjectsTotal()) { ObjName = ObjectName(i); if(StringFind( ObjName, PrefixName)==-1) { i++; continue; } ObjectDelete(ObjName); } //---- return(0); } //+==================================================================+ //| Óìåíüøåíèå äàòû íà îäèí òîðãîâûé äåíü | //| Ïàðàìåòðû: | //| dt - äàòà òîðãîâîãî äíÿ áåç ó÷åòà âûõîäíûõ | //+------------------------------------------------------------------+ datetime decDateTradeDay (datetime dt) { datetime result; result=StrToTime(TimeToStr(StrToTime(TimeToStr(dt,TIME_DATE)+" 0:00")-PERIOD_D1,TIME_DATE)); while (TimeDayOfWeek(result)>5||TimeDayOfWeek(result)<1) result=decDateTradeDay(result); return(result); } //+==================================================================+ //| Ïîñòðîåíèå è ïðîâåðêà óðîâíåé POCs | //| Ïàðàìåòðû: | //| X - äàòà ñòàðòîâîãî äíÿ | //| Y - çíà÷åíèå óðîâíÿ | //+------------------------------------------------------------------+ void Draw_POCs(datetime X, double Y) { bool VirginFlag=true; color Color; datetime EndX; string name_line; int StartBar, EndBar; if(TimeDayOfWeek(X)==5) StartBar=iBarShift(NULL,PERIOD_M5,X+PERIOD_D1*60*3); else StartBar=iBarShift(NULL,PERIOD_M5,X+PERIOD_D1*60); EndBar=iBarShift(NULL,PERIOD_M5,StrToTime(TimeToStr(Time[0],TIME_DATE))); for(int i=StartBar; i>=EndBar; i--) { if(Y<iHigh(NULL, PERIOD_M5, i) && Y>iLow(NULL, PERIOD_M5, i)) break; } name_line=PrefixName+TimeToStr(X)+"POC"; if(i!=EndBar-1) { VirginFlag=false; Color=Color_POCs; EndX=iTime(NULL, PERIOD_M5, i); if(TimeToStr(EndX,TIME_DATE)==TimeToStr(TimeCurrent(),TIME_DATE) || TimeToStr(Time[0],TIME_DATE)==TimeToStr(X,TIME_DATE)) VirginFlag=true; } if(VirginFlag) { Color=Color_VirginPOCs; EndX=Time[0]+Shift*Period()*60; int size=ArrayRange(VirginPOC,0)+1; ArrayResize(VirginPOC,size); VirginPOC[size-1]=name_line; } if(ObjectFind(name_line)==-1) { ObjectCreate(name_line, OBJ_TREND, 0, 0, 0, 0, 0); ObjectSet(name_line, OBJPROP_BACK, false); ObjectSet(name_line, OBJPROP_RAY, 0); } ObjectMove(name_line,0, X, Y); ObjectMove(name_line,1, EndX, Y); ObjectSet(name_line, OBJPROP_COLOR, Color); if(!To_show_values && !VirginFlag) return; name_line = name_line+" LABLE"; if(ObjectFind(name_line) == -1) { ObjectCreate(name_line, OBJ_ARROW, 0, 0,0); ObjectSet(name_line, OBJPROP_BACK, false); } if(VirginFlag) ObjectSet(name_line, OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE); else ObjectSet(name_line, OBJPROP_ARROWCODE, SYMBOL_LEFTPRICE); ObjectMove(name_line, 0, EndX,Y); ObjectSet(name_line, OBJPROP_COLOR, Color); // Comm=Comm+TimeToStr(X)+" "+VirginFlag+" "+TimeToStr(iTime(NULL,PERIOD_M5,i))+"\n"; } //+==================================================================+ //| Ðàñ÷åò è ïîñòðîåíèå ðûíî÷íîãî ïðîôèëÿ | //| Ïàðàìåòðû: | //| dt - äàòà òîðãîâîãî | //| StartTime - âðåìÿ îòêðûòèÿ ñåñèè | //| EndTime - âðåìÿ çàêðûòèÿ ñåñèè | //| Draw - ôëàã ïîñòðîåíèÿ | //+------------------------------------------------------------------+ void DrawMarket(datetime dt, string StartTime, string EndTime, bool HDraw) { datetime GMT=Displacement_GMT*PERIOD_H1*60; datetime dt0=StrToTime(TimeToStr(dt,TIME_DATE)+" "+StartTime)+GMT; datetime dt1=StrToTime(TimeToStr(dt,TIME_DATE)+" "+EndTime)+GMT; int StartBar=iBarShift(NULL,PERIOD_M5,dt0); int EndBar=iBarShift(NULL,PERIOD_M5,dt1); int BarCount=StartBar-EndBar+1; double HighDay=iHigh(NULL,PERIOD_M5,iHighest(NULL,PERIOD_M5,MODE_HIGH,BarCount,EndBar)); double LowDay=iLow(NULL, PERIOD_M5, iLowest(NULL,PERIOD_M5,MODE_LOW,BarCount,EndBar)); int NumberOfPoints = (HighDay - LowDay) / (1.0*Point*Construction_step) + 1; // Çàïîëíåíèå ìàññèâà óðîâíåé è ïîèñê óðîâíÿ íà êîòîðîì öåíà íàõîäèëàñü ìàêñ. êîë-âî âðåìåíè int Count[]; ArrayResize(Count, NumberOfPoints); ArrayInitialize(Count,0); for(int i = StartBar; i >= EndBar; i--) { double C = iLow(NULL, PERIOD_M5, i); while(C < iHigh(NULL, PERIOD_M5, i)) { int Index = (C-LowDay) / (1.0*Point*Construction_step); Count[Index]++; C += 1.0*Point*Construction_step; } } int MaxLine = ArrayMaximum( Count, NumberOfPoints); // Âûâîäèì íà ýêðàí ëèíèþ POCs Draw_POCs(iTime(NULL, PERIOD_M5, StartBar), LowDay + 1.0*Point*Construction_step*MaxLine); if(!HDraw) { ArrayResize(Count, 0); return; } int tmp=Count[MaxLine]-Count[MaxLine]*Range_percent/100; int DownLine=0; int UpLine=0; for(i=0; i < NumberOfPoints; i++) { if(Count[i]>=tmp) { DownLine=i; break; } } for(i=NumberOfPoints-1; i > 0; i--) { if(Count[i]>=tmp) { UpLine=i; break; } } if(DownLine==0) DownLine=MaxLine; if(UpLine==0) UpLine=MaxLine; for(i = 0; i < NumberOfPoints; i++) { datetime StartX = iTime(NULL, PERIOD_M5, StartBar); double StartY = LowDay + 1.0*Point*Construction_step*i; datetime EndX = StartX+(Count[i]/Divider+1)*Period()*60; //Time[StartBar+Count[i]]; double EndY = StartY; string name_line = PrefixName+TimeToStr(dt0)+i; if(ObjectFind(name_line)==-1) { ObjectCreate(name_line, OBJ_TREND, 0, StartX, StartY, EndX, EndY); ObjectSet(name_line, OBJPROP_BACK, true); ObjectSet(name_line, OBJPROP_RAY, 0); } ObjectMove(name_line,0, StartX, StartY); ObjectMove(name_line,1, EndX, EndY); ObjectSet(name_line, OBJPROP_WIDTH, 1); if( i==MaxLine) { ObjectSet(name_line, OBJPROP_COLOR, Color_POCs); ObjectSet(name_line, OBJPROP_WIDTH, 3); } if(i>=DownLine&&i<=UpLine) { int shift=60; if(TimeDayOfWeek(dt0)==5) shift=60*3; if(i!=MaxLine)ObjectSet(name_line, OBJPROP_COLOR, Colour_in_a_range); if(i==DownLine) { datetime today=dt1;//StrToTime(TimeToStr(dt1+PERIOD_D1*shift,TIME_DATE)); double DownY=StartY; // Comm=Comm+TimeToStr(today)+" "+TimeToStr(today+PERIOD_D1*shift)+"\n"; name_line = PrefixName+TimeToStr(dt0)+"DOWN"; if(ObjectFind(name_line)==-1) { ObjectCreate(name_line, OBJ_TREND, 0, 0, 0, 0, 0); ObjectSet(name_line, OBJPROP_RAY, 0); } ObjectMove(name_line,0, today, StartY); ObjectMove(name_line,1, today+PERIOD_D1*shift, EndY); ObjectSet(name_line, OBJPROP_COLOR, Colour_in_a_range); } if(i==UpLine) { double UpY=StartY; name_line = PrefixName+TimeToStr(dt0)+"UP"; if(ObjectFind(name_line)==-1) { ObjectCreate(name_line, OBJ_TREND, 0, 0, 0, 0, 0); ObjectSet(name_line, OBJPROP_RAY, 0); } ObjectMove(name_line,0, today, StartY); ObjectMove(name_line,1, today+PERIOD_D1*shift, EndY); ObjectSet(name_line, OBJPROP_COLOR, Colour_in_a_range); } } else { ObjectSet(name_line, OBJPROP_COLOR, Colour_behind_a_range); } } /* name_line = PrefixName+TimeToStr(dt0)+"BOX"; if(ObjectFind(name_line)==-1) { ObjectCreate(name_line, OBJ_RECTANGLE, 0, 0, 0, 0, 0); ObjectSet(name_line, OBJPROP_BACK, true); ObjectSet(name_line, OBJPROP_RAY, 0); } ObjectMove(name_line,0, today, UpY); ObjectMove(name_line,1, today+PERIOD_D1*shift, DownY); ObjectSet(name_line, OBJPROP_WIDTH, 1); ObjectSet(name_line, OBJPROP_COLOR, Bisque); */ ArrayResize(Count, 0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); datetime dt, end_dt; //---- if(Period()>PERIOD_H4) return(-1); //Ïðîâåðÿåì ÒàéìÔðåéì åñëè áîüøå H4 âûõîäèì //---- dt=TimeCurrent(); if(TimeZero!=Time[0]) { /*double c=iClose(NULL,PERIOD_MN1,1); c=iClose(NULL,PERIOD_M5,1); c=iClose(NULL,PERIOD_M15,1); c=iClose(NULL,PERIOD_M30,1); c=iClose(NULL,PERIOD_H1,1); c=iClose(NULL,PERIOD_H4,1); c=iClose(NULL,PERIOD_D1,1); c=iClose(NULL,PERIOD_W1,1); c=iClose(NULL,PERIOD_MN1,1);*/ TimeZero=Time[0]; } if(!To_build_today) dt=decDateTradeDay(dt); else { DrawMarket(dt, StartTime, EndTime, true); dt=decDateTradeDay(dt); } if(RedrawFlag) { end_dt=StrToTime(TimeToStr(iTime(NULL,PERIOD_M5, iBars(NULL,PERIOD_M5)-1),TIME_DATE)); if(Max_of_days_calculation >= 1) end_dt=StrToTime(TimeToStr(iTime(NULL,PERIOD_D1, Max_of_days_calculation),TIME_DATE)); int i=1; while(end_dt!=dt) { if(i<=Days_with_the_histogram) DrawMarket(dt, StartTime, EndTime, true); else DrawMarket(dt, StartTime, EndTime, false); dt=decDateTradeDay(dt); i++; } } RedrawFlag=false; for(i=0; i< ArrayRange(VirginPOC,0); i++) { ObjectMove(VirginPOC[i], 1,Time[0]+Shift*Period()*60,ObjectGet(VirginPOC[i],OBJPROP_PRICE1)); ObjectMove(VirginPOC[i]+" LABLE", 0,Time[0]+Shift*Period()*60,ObjectGet(VirginPOC[i]+" LABLE",OBJPROP_PRICE1)); } // Comment(Comm); //---- return(0); } //+------------------------------------------------------------------+
    Modifié le 2013-12-16 14:15:12 par forexensemble
  • arnaquebroker (invité)

    Pour son intérêt, comme expliquer au dessus je m'en sert comme des endroits très précis ou le cours rebondit dessus, j'ai un stoch pour voir les divergences et les bb sur des TM au dessus qui me donne c'est vrai aussi des zones de rebonds potentielles (mais c'est plutôt en retard) alors que l'indicateur virgin poc me les fournit de manière très précis...Un exemple, vendredis dernier j'avais un poc à 1.3746 et un la zone des 70 % de volume de la veille compris entre 1.3751 et 1.3796 et tu retrouve cette aprèm un rebond sur 1.3796 (il y avait aussi un poc volume à 1.3792) et j'ai maintenant un rebond sur 1.3755 (zone 70 % volume de la veille compris entre 1.3716 et 1.3755).
    Cette indicateur te montre aussi la force de la tendance du moment....et je fait en faite les OB sur minimum 1h et cette indicateur est vraiment pas mal mais il ne te donne ces indicateurs sur pls jours en arrière or je voudrais plutôt qu'il me donne par heure dans la journée : après ajoute le sur ton graphe et regarde bien parce que couplé au BB plus d'autres indics éventuelles tu verras de bon rebond à utilisez en intraday pour grand max 2 positions dans la journée...mais je voudrais avoirs plus de paliers...
  • _squAces_

    J'avais bien compris, c'est juste que tu peux aussi compter ton IB, chaque trader en MP a ses techniques.

    J'appuie tes dires pour la petite analyse MP et je dirai même que les tests S/R sont particulièrement résistants, on peut remarqué au profil de vendredi une double distribution et avec l'IB de à l'ouverture de la bourse en TPO en 4x4 rangé à l'équilibre présageait un range haussier venant tester les VAL/VAH, on devrait consolider avec le POC, le rejet de 8h30 à confirmer le DIB de la séance précédente (vendredi). Gros creux sur les volumes à surveiller de près à 1.3737, on a eu un delta RF de 9!

    Bons trades!!
  • arnaquebroker (invité)

    En vue de ce qui se passe sur eur usd, je dirais 1.3666 pour cette semaine....c'est le poc volume d'il y a 5 ou 6 jours pour moi je passe baissier.....
  • arnaquebroker (invité)

    Aujourd’hui poc volume 1.3756 et les extrêmes : 1.3781 et 1.3739....on verra demain tu verras que ses paliers vont jouer un rôle....
  • _squAces_

    Petite capture-écran.
    _squAces_ a joint une image
    carnet-d-ordre-soit-dom-tape-reading-bloomberg-reuters-8372
  • _squAces_

    Sinon, j'attends toutefois la confirmation de la clôture par rapport au POC, si elle passe en-dessous du point = instable.
    Modifié le 2013-12-16 21:43:00 par _squAces_ : ajout de «par rapport» pour pas de confusion
  • forexensemble

    Merci pour vos partages.
    Très instructif.