Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Hintergrund einfärben (http://www.expert-advisor.com/forum/showthread.php?t=5028)

Minge67 28.06.16 18:44

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);
}


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:21 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum