jak "zamazać" cześć wykresu

O jezykach programowania w platformach i nie tylko.
pim
Gaduła
Gaduła
Posty: 97
Rejestracja: 19 lut 2015, 09:52

jak "zamazać" cześć wykresu

Nieprzeczytany post autor: pim »

Jaki obiekt wstawić i jakie powinien mieć właściwości aby zasłonić świeczki ?

teraz robie takie cos:

double name = TimeCurrent();
ObjectCreate("Box" + name , OBJ_LABEL, 0, 0, 0, 0, 0);
ObjectSetText("Box" + name, "g", 100, "Webdings");
ObjectSet("Box" + + name , OBJPROP_CORNER, 0);
ObjectSet("Box" + + name, OBJPROP_XDISTANCE, 50);
ObjectSet("Box" + + name, OBJPROP_YDISTANCE, 50 + 100);
ObjectSet("Box" + + name, OBJPROP_COLOR, Black);
ObjectSet("Box" + + name, OBJPROP_BACK, FALSE);


Powstaje czarny obiekt jak na obrazku i on zaslania swieczki ale nie można zmieniać jego rozmiarów i nie przesuwa się razem z wykresem.

Jak to zrobić żeby działało "automagicznie" ?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Awatar użytkownika
adamForex
Gaduła
Gaduła
Posty: 117
Rejestracja: 28 gru 2015, 10:24

Re: jak "zamazać" cześć wykresu

Nieprzeczytany post autor: adamForex »

Nie wiem dokładnie, co próbujesz osiągnąć, więc podaje swoje rozwiązanie po prostu jako przykład.
Zobacz czy możesz coś z tego wyciągnąć.

Kod: Zaznacz cały

  datetime t = TimeCurrent(); //aktualny czas
   
   ObjectDelete(0,"Box"); //kasowanie obiektu przed każdą zmianą
   ObjectCreate(0,"Box" , OBJ_RECTANGLE,0,t - 5000,High[3],t, Low[1]); //tworzysz nowy obiekt na podstawie 
                                                                       //aktualnego czasu i cen
   ObjectSet("Box" , OBJPROP_CORNER, 0); //reszta to wiadomo, skopiowane z Twojego psota
   ObjectSet("Box" , OBJPROP_FILL, true);
   ObjectSet("Box", OBJPROP_COLOR, Black);
   ObjectSet("Box", OBJPROP_BACK, FALSE);
   

pim
Gaduła
Gaduła
Posty: 97
Rejestracja: 19 lut 2015, 09:52

Re: jak "zamazać" cześć wykresu

Nieprzeczytany post autor: pim »

rysowanie rectangle nie działa

ale znalezłem jeszcze inne niecodzienne rozwiązanie :-)

Musimy posiadać w komputerze zainstalowaną czcionkę Webdings.
Wybieramy z menu MT4 obiekt tekst.

Wpisujemy jako tekst literę "g" , rozmiarem czcionki regulujemy wielkość, wybieramy kolor i mamy obiekt zakotwiczony tam gdzie chcemy :D

proste i fajne :D

ja dzięki temu zamazuję sobie cześć wykresu którą uważam za różne "szumy"

2016-02-21___13_02_43.png
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Awatar użytkownika
grey
Gaduła
Gaduła
Posty: 114
Rejestracja: 22 lut 2015, 14:18

Re: jak "zamazać" cześć wykresu

Nieprzeczytany post autor: grey »

Zwykły prostokąt

Kod: Zaznacz cały

   int il = 10; // ilość świeczek
   int st = 3;  // świeczka początkowa

   string name = "Box";
   datetime x1 = iTime(NULL,PERIOD_CURRENT,il);
   datetime x2 = Time[st];
   double   y1 = High[iHighest(NULL,PERIOD_CURRENT,MODE_HIGH,il,st)];
   double   y2 = Low[iLowest(NULL,PERIOD_CURRENT,MODE_LOW,il,st)];

   ObjectDelete(0, name);
   if(!ObjectCreate(name, OBJ_RECTANGLE, 0, x1, y1, x2, y2)) {}
   if(!ObjectFind(0, name))
   {
      ObjectSetInteger(  0,  name,  OBJPROP_COLOR,      Khaki             );
      ObjectSetInteger(  0,  name,  OBJPROP_STYLE,      STYLE_SOLID       );
      ObjectSetInteger(  0,  name,  OBJPROP_WIDTH,      2                 );
      ObjectSetInteger(  0,  name,  OBJPROP_BACK,       true              );
      ObjectSetInteger(  0,  name,  OBJPROP_HIDDEN,     false             );
   }
Zakrywanie świeczek

Kod: Zaznacz cały

   string name = "Box";
   int x_pos = 300;
   int y_pos = 220;
   int x_size = 160;
   int y_size = 230;

   ObjectDelete(0, name);
   if(!ObjectCreate(name, OBJ_RECTANGLE_LABEL, 0, 0, 0)) {}
   if(!ObjectFind(0, name))
   {
      ObjectSetInteger(  0,  name,  OBJPROP_XDISTANCE,  x_pos             );
      ObjectSetInteger(  0,  name,  OBJPROP_YDISTANCE,  y_pos             );
      ObjectSetInteger(  0,  name,  OBJPROP_XSIZE,      x_size            );
      ObjectSetInteger(  0,  name,  OBJPROP_YSIZE,      y_size            );
      ObjectSetInteger(  0,  name,  OBJPROP_BGCOLOR,    clrKhaki          );
      ObjectSetInteger(  0,  name,  OBJPROP_STYLE,      STYLE_SOLID       );
      ObjectSetInteger(  0,  name,  OBJPROP_WIDTH,      2                 );
      ObjectSetInteger(  0,  name,  OBJPROP_BACK,       false             );
      ObjectSetInteger(  0,  name,  OBJPROP_HIDDEN,     false             );
   }

ODPOWIEDZ