Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43270
Benutzer: 7.223
Aktive Benutzer: 73
Links: 84
Wir begrüßen unseren neuesten Benutzer: TS_6
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 5 Stunden
- TS_6
vor 2 Tagen
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak
vor 2 Wochen
- Amateur

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 10.09.20
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 36
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)
  #2 (permalink)  
Alt 10.09.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
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
  #3 (permalink)  
Alt 10.09.20
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 36
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.
  #4 (permalink)  
Alt 10.09.20
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 36
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
Thema geschlossen

Lesezeichen

Stichworte
coden, indikator, programmieren


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 17:10 Uhr.





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