Jump to content
Tom Next - Daytrading Community

Recommended Posts

Posted

Hallo Gemeinde,

 

Wie bekomme ich ein OBJ_RECTANGLE immer in die Linke obere Ecke.

 

Mein Code:

ObjectCreate("RECT", OBJ_RECTANGLE, 0, (Time[50]),Low[4],(Time[58]),High[10]);

 

Es verschiebt sich mit dem Chart.

 

Gruß Bernd

Posted

Wie bekomme ich ein OBJ_RECTANGLE immer in die Linke obere Ecke.

So wirklich einfach ist das nicht, da du bei einem Rechteck keine X/Y-Koordinaten angeben kannst sondern nur Zeit/Kurs.

 

Du müßtest also dazu bei jedem sich neu bildenden Bar das Rechteck mit ObjectMove() um eine Zeiteinheit verschieben.

Das Problem dabei ist aber immer noch, daß sich die Y-Auflösung auch ändert. Das Rechteck "klebt " ja quasi an einem Kurs und hinzu kommt, wenn sich die

Vola erhöht, dann wird dein Rechteck auch noch kleiner.

 

Wenn ich mir's so recht überlege, würde das wohl ziemlich aufwändig werden, zumindest fällt mir nichts vernünftiges ein. :birdie:

Posted

Wogo hat die Problematik schon skizziert. "Oben Links" ändert sich laufend, schon wenn du mit der Maus im Chart rumscrollst.

Ich hab einen Indikator der vermutlich genau das macht was du willst:

 

//+------------------------------------------------------------------+
//|                                           commentsBackground.mq4 |
//|                                                               ps |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "ps"
#property link      ""

#property indicator_chart_window
extern double width=32;
extern double heigth=65;
extern color col=Brown;

string title="commentsBG";
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
 {
//---- indicators
  datetime obenLinksDatum=iTime(Symbol(),0,WindowFirstVisibleBar());
  double obenLinksPreis=WindowPriceMax(0);
  datetime untenRechtsDatum=iTime(Symbol(),0,WindowFirstVisibleBar()-WindowBarsPerChart()*(width/100));
  double untenRechtsPreis=WindowPriceMax(0)-(WindowPriceMax(0)-WindowPriceMin(0))*(heigth/100);
  
  ObjectCreate(title,OBJ_RECTANGLE,0,obenLinksDatum,obenLinksPreis,untenRechtsDatum,untenRechtsPreis);
  ObjectSet(title,OBJPROP_COLOR,col);
//----
  return(0);
 }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
 {
//----
  
//----
  return(0);
 }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
 {
  int    counted_bars=IndicatorCounted();
//----
  datetime obenLinksDatum=iTime(Symbol(),0,WindowFirstVisibleBar());
  double obenLinksPreis=WindowPriceMax(0);
  datetime untenRechtsDatum=iTime(Symbol(),0,WindowFirstVisibleBar()-WindowBarsPerChart()*(width/100));
  double untenRechtsPreis=WindowPriceMax(0)-(WindowPriceMax(0)-WindowPriceMin(0))*(heigth/100);
  
  ObjectSet(title,OBJPROP_PRICE1,obenLinksPreis);
  ObjectSet(title,OBJPROP_PRICE2,untenRechtsPreis);
  ObjectSet(title,OBJPROP_TIME1,obenLinksDatum);
  ObjectSet(title,OBJPROP_TIME2,untenRechtsDatum);
  
//----
  return(0);
 }
//+------------------------------------------------------------------+

 

Supportfrei!

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...