|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Hintergrund einfärben
Hallo zusammen,
ich bin schion ne Weile auf der Suche nach einem Indikator der nach den Bedingungen unten den Hintergrund einfärbt. Nun habe ich das folgende gefunden, in den Metaeditor gehauen und probiert. Das ganze funktioniert schon ganz gut, allerdings folgende Probleme. -- alles was man einzeichnet, trendlinien, Rechtecke, etc verschwinden beim Wechsel zwischen den Timeframes -- er läuft unzuverlässig, bleibt manchmal für 3 oder 4 Kerzen hängen, und ist wieder nach Wechsel des Timeframes da -- er ist im Vordergrund und übermalt alles Hier der Code, vielleicht kann ihn jemand verbessern #property copyright "Copyright 2013, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Green #property indicator_color2 Red double UpBar[]; double DownBar[]; int init() { SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,233); SetIndexBuffer(0,UpBar); SetIndexEmptyValue(0,0.0); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,234); SetIndexBuffer(1,DownBar); SetIndexEmptyValue(1,0.0); return(0); } int deinit() { ObjectsDeleteAll(); return(0); } int start() { int counted_bars=IndicatorCounted(); int i = Bars - counted_bars - 1; double sma200, ema10, ema30, ema50, ema10_1, ema30_1, ema50_1; while(i>=0) { sma200 = iMA(Symbol(), Period(), 200, 0, MODE_SMA, PRICE_CLOSE, i); ema10 = iMA(Symbol(), Period(), 10, 0, MODE_EMA, PRICE_CLOSE, i); ema30 = iMA(Symbol(), Period(), 30, 0, MODE_EMA, PRICE_CLOSE, i); ema50 = iMA(Symbol(), Period(), 50, 0, MODE_EMA, PRICE_CLOSE, i); ema10_1 = iMA(Symbol(), Period(), 10, 0, MODE_EMA, PRICE_CLOSE, i+1); ema30_1 = iMA(Symbol(), Period(), 30, 0, MODE_EMA, PRICE_CLOSE, i+1); ema50_1 = iMA(Symbol(), Period(), 50, 0, MODE_EMA, PRICE_CLOSE, i+1); //Prüfen ob Long if(Close[i] > sma200 && ema10 > ema30 && ema30 > ema50 && ema10 > ema10_1 && ema30 > ema30_1 && ema50 > ema50_1) { //Hintergrund grün einfärben drawBGline(i+"bgup", Time[i], C'200, 255, 150'); //Prüfe ob ReversalBar vorhanden if(Low[i+2] > Low[i+1] && Close[i+1] > Open[i+1] && High[i] > High[i+1]) { //ReversalBar UpBar[i]=Low[i]-40*Point; } } //Prüfen ob Short if(Close[i] < sma200 && ema10 < ema30 && ema30 < ema50 && ema10 < ema10_1 && ema30 < ema30_1 && ema50 < ema50_1) { //Hintergrund rot einfärben drawBGline(i+"bgdown", Time[i], C'255, 200, 150'); //Prüfe ob ReversalBar vorhanden if(High[i+2] < High[i+1] && Close[i+1] < Open[i+1] && Low[i] < Low[i+1]) { //ReversalBar DownBar[i]=High[i]+40*Point; } } i--; } return(0); } void drawBGline(string name, datetime bar, color colur) { ObjectCreate(name, OBJ_VLINE, 0, bar, 0); ObjectSet(name, OBJPROP_BACK, true); ObjectSet(name, OBJPROP_COLOR, colur); ObjectSet(name, OBJPROP_WIDTH, 8); } |
Lesezeichen |
Stichworte |
hintergrund, hintergrundfarbe, indikator, mql4, programmierung, programmierung metatrader |
|
|