Bernd Posted September 16, 2010 Report Share 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 Quote Link to comment Share on other sites More sharing options...
WOGO Posted September 16, 2010 Report Share 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. Quote Link to comment Share on other sites More sharing options...
Philipp Posted September 16, 2010 Report Share 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! Quote Link to comment Share on other sites More sharing options...
Bernd Posted September 20, 2010 Author Report Share Posted September 20, 2010 Hallo, Super und Danke euch beiden für die Antworten. Gruß Bernd Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.