Bernd Posted September 16, 2010 Report Posted September 16, 2010 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
WOGO Posted September 16, 2010 Report Posted September 16, 2010 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 dieVola 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.
Philipp Posted September 16, 2010 Report Posted September 16, 2010 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!
Bernd Posted September 20, 2010 Author Report Posted September 20, 2010 Hallo, Super und Danke euch beiden für die Antworten. Gruß Bernd
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now