Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4536
Beiträge: 41153
Benutzer: 6.933
Aktive Benutzer: 231
Links: 80
Wir begrüßen unseren neuesten Benutzer: peterken
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einer Stunde
- peterken
vor einem Tag
- traderotor
vor 3 Tagen
- Brummi
vor 5 Tagen
- Fussellien...
vor 5 Tagen
- ZHannes82

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 86
Gesamt: 86
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 2 Wochen
Neues Mitglied
 
Registriert seit: Aug 2020
Beiträge: 6
noSkill06s befindet sich auf einem aufstrebenden Ast
Standard Repainting Indikator am Code erkennen

Hallo Leute,

immer wieder prüfe ich Indikatoren über den Strategytester ob sie repainten oder nicht, mich interessiert es sehr stark wie ich diesen Sachverhalt am Code erkennen kann.

Ich habe hier einen Indikator hier angehängt der ebenfalls repaintet, bei vielen ist es z.B. sehr einfach (nicht wirklich da erkennt man das am "shift+1" (nicht sicher jedenfalls dannach haben andere indis z.B. nicht repaintet) der hier ist aber einer ganz anderen Natur bzw. denke ich das die Lösung im Array steckt "EMPTY".

Könnt ihr mir vielleicht helfen wo das repainten bei diesem Indikator implementiert wird?
und wie man es eventuell z.B. korrigieren könnte? (die Ergebnisse und Qualität des Indikators spielt keine rolle es geht mir mehr um das lernen)

hier der Code

Code:
#property indicator_chart_window 
#property indicator_buffers 5 
#property indicator_color1 Red 
#property indicator_color2 Green
#property indicator_color3 LightSeaGreen
#property indicator_color4 Red
#property indicator_color5 Green 


//---- indicator parameters 
extern int Periode = 20; 
extern int Decal_Band = 0; 
extern double EType_Band = 2.0; 

//---- buffers 
double MovingBuffer[]; 
double UpperBuffer[]; 
double LowerBuffer[]; 


double UpperBGreen[] ;
double UpperBRed[] ; 
double LowerBGreen[] ; 
double LowerBRed[] ; 

double EType[] ; 

//+------------------------------------------------------------------+ 
//| initialisation | 
//+------------------------------------------------------------------+ 
int init() 
{ 
//---- indicators 
IndicatorBuffers(8); 

SetIndexStyle(0,DRAW_LINE,0,2); 
SetIndexBuffer(0,UpperBRed);  
SetIndexStyle(1,DRAW_LINE,0,2); 
SetIndexBuffer(1,UpperBGreen); 

SetIndexStyle(2,DRAW_LINE,0,1); 
SetIndexBuffer(2,MovingBuffer); 

SetIndexStyle(3,DRAW_LINE,0,2); 
SetIndexBuffer(3,LowerBRed); 
SetIndexStyle(4,DRAW_LINE,0,2); 
SetIndexBuffer(4,LowerBGreen); 

SetIndexStyle(5,DRAW_NONE); 
SetIndexBuffer(5,UpperBuffer); 

SetIndexStyle(6,DRAW_NONE); 
SetIndexBuffer(6,LowerBuffer); 

SetIndexStyle(7,DRAW_NONE); 
SetIndexBuffer(7,EType); 


//---- 
return(0); 
} 
//+------------------------------------------------------------------+ 
//| Bollinger Bands | 
//+------------------------------------------------------------------+ 
int start() 
{ 
int index ; 

int limit=Bars-Periode; 

for(index=limit-2 ; index>=0 ; index--) 
{ 
MovingBuffer[index]=iMA(NULL,0,Periode,Decal_Band,MODE_SMA,PRICE_CLOSE,index); 
EType[index] = iStdDev(NULL,0,Periode,Decal_Band,MODE_SMA,PRICE_CLOSE,index); 

UpperBuffer[index] = MovingBuffer[index] + EType[index] * EType_Band ;  

LowerBuffer[index] = MovingBuffer[index] - EType[index] * EType_Band ; 

UpperBGreen[index] = UpperBuffer[index] ; 
UpperBRed[index] = UpperBuffer[index] ;

LowerBGreen[index] = LowerBuffer[index] ; 
LowerBRed[index] = LowerBuffer[index] ; 

if ((UpperBuffer[index] > UpperBuffer[index+1])&&(UpperBuffer[index+1] > UpperBuffer[index+2])) UpperBRed[index+1] = EMPTY_VALUE ;
else if((UpperBuffer[index] < UpperBuffer[index+1])&&(UpperBuffer[index+1] < UpperBuffer[index+2])) UpperBGreen[index+1] = EMPTY_VALUE ;  

if ((LowerBuffer[index] > LowerBuffer[index+1])&&(LowerBuffer[index+1] > LowerBuffer[index+2])) LowerBRed[index+1] = EMPTY_VALUE ; 
else if ((LowerBuffer[index] < LowerBuffer[index+1])&&(LowerBuffer[index+1] < LowerBuffer[index+2]))LowerBGreen[index+1] = EMPTY_VALUE ; 

} 

//---- 
return(0); 
} 
//+------------------------------------------------------------------+
Angehängte Dateien
Dateityp: mq4 bollinger_bicolor.mq4 (3,2 KB, 1x aufgerufen)
Mit Zitat antworten
  #2 (permalink)  
Alt vor 2 Wochen
AVT AVT ist offline
Premium Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 434
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von noSkill06s Beitrag anzeigen
Ich habe hier einen Indikator hier angehängt der ebenfalls repaintet, bei vielen ist es z.B. sehr einfach (nicht wirklich da erkennt man das am "shift+1" (nicht sicher jedenfalls dannach haben andere indis z.B. nicht repaintet) der hier ist aber einer ganz anderen Natur bzw. denke ich das die Lösung im Array steckt "EMPTY".

Könnt ihr mir vielleicht helfen wo das repainten bei diesem Indikator implementiert wird?
Ich hab den beobachtet.
Das ist kein Repainter. Repainting heißt, daß nachträglich bereits abgeschlossene Werte verändert werden. Das macht der hier nicht, er ändert nur die Werte der laufenden Kerze und das ist ok, denn die Kerze ist noch nicht abgeschlossen.
AVT
Mit Zitat antworten
  #3 (permalink)  
Alt vor 2 Wochen
Neues Mitglied
 
Registriert seit: Aug 2020
Beiträge: 6
noSkill06s befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AVT Beitrag anzeigen
Ich hab den beobachtet.
Das ist kein Repainter. Repainting heißt, daß nachträglich bereits abgeschlossene Werte verändert werden. Das macht der hier nicht, er ändert nur die Werte der laufenden Kerze und das ist ok, denn die Kerze ist noch nicht abgeschlossen.
AVT
vielen Dank für deine Antwort, was mich stutzig macht ist:

int limit = Bars-Periode (Periode wurde mit 20 deklariert und initialisiert)

Bars = 999 (1000-1) - 20 = 979 das sind die Bars die ja "Backwards" angezeigt werden?

der Schleifenkopf (Initialisierungsausdruck) wird mit index =limit-2 deklariert das heißt doch jetzt das, dass Signal bzw. die Werte des Indikators nur für den bar[2] fest sind und bar[1] und bar[0] noch variabel :/

ich habe ihn auch beobachtet und bei mir kann auch sein das ich mich verguckt habe hat er repaintet.
Mit Zitat antworten
  #4 (permalink)  
Alt vor 2 Wochen
Neues Mitglied
 
Registriert seit: Aug 2020
Beiträge: 6
noSkill06s befindet sich auf einem aufstrebenden Ast
Standard

kurze Anmerkung mit Repainten mein ich das sich die Trendfarben der upper and lower Bollinger bands ändern
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
coden, indikator, programmieren

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 16:38 Uhr.





Die Suchmaschine - Der Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2020 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2020 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------