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: 4973
Beiträge: 43253
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

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

Empfehlungen

Like Tree4Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 09.04.12
Mitglied
 
Registriert seit: Oct 2011
Beiträge: 77
Biatsch befindet sich auf einem aufstrebenden Ast
Standard Brauche Hilfe

HTML-Code:
      Differenz[i] = iBands(NULL,240,BandsPeriod,BandsDeviations,0,PRICE_CLOSE,MODE_UPPER,i) - iBands(NULL,240,BandsPeriod,BandsDeviations,0,PRICE_CLOSE,MODE_LOWER,i);
      MABuffer[i]  = iMAOnArray(Differenz,0,MAPeriod,0,MODE_SMA,i);

      if(Differenz[i]>MABuffer[i]){
.
.
.}

Kann mir jemand bei diesem Code_Ausschnitt helfen ?
Die if_Bedingung wird nie erfüllt, aber was stimmt da nicht ?
Ich vermute, dass die iMAOnArray_Funktion nicht richtig berechnet wird.
Wenn ich diese paar Zeilen lösche funktioniert der Rest.

Hier sollen die Differenz zwischen oberem und unterem Bollinger_Band und ein MovingAverage dieser Differenz miteinander verglichen werden.
Die Differenz soll kleiner sein als ihr MA, damit es weitergeht.
  #2 (permalink)  
Alt 10.04.12
Mitglied
 
Registriert seit: Oct 2011
Beiträge: 77
Biatsch befindet sich auf einem aufstrebenden Ast
Standard

Ich habe gerade mit der Print_Funktion den Wert vom Differenz_Buffer ausgegeben.
Dieser beträgt konstant 0.
Aber warum ist das so ?

Der Differenz_Buffer ist als double_Variable definiert.
  #3 (permalink)  
Alt 10.04.12
Mitglied
 
Registriert seit: Jan 2012
Beiträge: 142
Hoschie befindet sich auf einem aufstrebenden Ast
Standard

Hi,

welche Werte haben die folgenden Parameter:

BandsPeriod
BandsDeviations

Gruss,
Hoschie
  #4 (permalink)  
Alt 10.04.12
Mitglied
 
Registriert seit: Oct 2011
Beiträge: 77
Biatsch befindet sich auf einem aufstrebenden Ast
Standard

BandsPeriod = 34
BandsDeviations = 2


Es gab aber noch folgenden Ausgangszustand:
Ich hatte diese 2 Buffer nicht als solche in der Init_Funktion definiert, da diese ja auch nicht gezeichnet werden sollten.
Nachdem ich sie aber initiiert habe mit
SetIndexBuffer(3,DifferenzBuffer);
SetIndexBuffer(4,MABuffer);
funktionierte es.
Vorher waren die ausgegebenen Werte dieser beiden Buffer konstant 0.

Mir stellt sich nun aber die Frage, ob denn jedes Array, das nicht einmal gezeichnet werden soll so initiiert werden muss.
Ist denn tatsächlich die Gesamtzahl an Arrays auf 8 begrenzt ?
JoeDormann likes this.
  #5 (permalink)  
Alt 10.04.12
Mitglied
 
Registriert seit: Jan 2012
Beiträge: 142
Hoschie befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Biatsch Beitrag anzeigen
BandsPeriod = 34
BandsDeviations = 2


Es gab aber noch folgenden Ausgangszustand:
Ich hatte diese 2 Buffer nicht als solche in der Init_Funktion definiert, da diese ja auch nicht gezeichnet werden sollten.
Nachdem ich sie aber initiiert habe mit
SetIndexBuffer(3,DifferenzBuffer);
SetIndexBuffer(4,MABuffer);
funktionierte es.
Vorher waren die ausgegebenen Werte dieser beiden Buffer konstant 0.

Mir stellt sich nun aber die Frage, ob denn jedes Array, das nicht einmal gezeichnet werden soll so initiiert werden muss.
Ist denn tatsächlich die Gesamtzahl an Arrays auf 8 begrenzt ?


Hallo Biatsch,

nur für den IndikatorBuffer kannst du 8 Arrays verwenden. Mehr geht nicht.
void IndicatorBuffers( int count)
Allocates memory for buffers used for custom indicator calculations. The amount of buffers cannot exceed 8 or be less than the value given in the indicator_buffers property. If custom indicator requires additional buffers for counting, this function must be used for specifying of the total amount of buffers.
Nein, du musst es nicht in der init-Methode initieren. Du kannst in der start-Methode mal folgendes versuchen:
ArrayResize(MyBuffer5,Bars);
ArraySetAsSeries(MyBuffer5,true);


Gruss,
Hoschie
  #6 (permalink)  
Alt 16.04.12
Mitglied
 
Registriert seit: Oct 2011
Beiträge: 77
Biatsch befindet sich auf einem aufstrebenden Ast
Standard

Moin. So, meine vorherigen Probleme habe ich mitlerweile nachvollzogen und damit beseitigt.
Ich möchte nun, dass meine Indikator Pfeile einzeichnet, die bei einem Long_Signal nach oben und bei einem Short_Signal nach unten gerichtet sind.

Ich verstehe diesmal aber nicht, warum alle Pfeile nach oben gerichtet sind, obwohl da ARROWDOWN steht !?

Also die Pfeile befinden sich zumindest immer an der richtigen Stelle.

Der Code sieht so aus:
#
PHP-Code:
if(Bedingung_1){
               
x++;
               
ObjectCreate("BUY" x,OBJ_ARROW,0,Time[i],Low[i]);
               
ObjectSet   ("BUY" x,OBJPROP_COLOR,Blue); 
               
ObjectSet   ("BUY" x,OBJPROP_STYLE,SYMBOL_ARROWUP); 
               
ObjectSet   ("BUY" x,OBJPROP_WIDTH,5); 
               
ObjectSet   ("BUY" x,OBJPROP_BACK,true);
               }

if(
Bedingung_2){
               
x++;
               
ObjectCreate("SELL" x,OBJ_ARROW,0,Time[i],High[i]);
               
ObjectSet   ("SELL" x,OBJPROP_COLOR,Red); 
               
ObjectSet   ("SELL" x,OBJPROP_STYLE,SYMBOL_ARROWDOWN); 
               
ObjectSet   ("SELL" x,OBJPROP_WIDTH,5); 
               
ObjectSet   ("SELL" x,OBJPROP_BACK,true);
               } 
JoeDormann likes this.
  #7 (permalink)  
Alt 17.04.12
Mitglied
 
Registriert seit: Oct 2011
Beiträge: 77
Biatsch befindet sich auf einem aufstrebenden Ast
Standard

Also ich habe jetzt ArrowUp und ArrowDown durch die Pfeilcodes 241 und 242 ersetzt, aber es funktioniert immer noch nicht.

Ich muss auch sagen, dass ich garnicht genau weiß, wozu die einzelnen Objektfunktionen da sind^^

Wie schon erwähnt, werden die Pfeile alle an die richtige Stelle eingezeichnet. Nur die Pfeilart stimmet nicht mit der gewollten überein.

Hätte jemand einen Vorschlag, was die Ursache für das Problem sein könnte ?
  #8 (permalink)  
Alt 17.04.12
Elite Mitglied
 
Registriert seit: Jun 2010
Ort: Trier
Beiträge: 116
naranjoe befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

das sieht mir schwer danach aus, als ob immer Bedingung_1 ausgeführt wird und Bedingung_2 nicht zum Zug kommt.
Blockier doch mal zum Test Bedingung_1 und gib Bedingung_2 vor, damit sie
auf jeden Fall ausgeführt wird.

Gruß
naranjoe
  #9 (permalink)  
Alt 17.04.12
Mitglied
 
Registriert seit: Oct 2011
Beiträge: 77
Biatsch befindet sich auf einem aufstrebenden Ast
Standard

Nee,
Die Bedingungen werden beide erfüllt. Außerdem ist die eine Pfeilfarbe rot, die andere blau. Im Chart sind beide Pfeilfarben vertreten und auch an den richtigen Stellen.

Beide Bedingungen werden immer korrekt angezeigt.
Die Pfeile, die nach unten gerichtet sein sollen, sind aber nach oben gerichtet.
  #10 (permalink)  
Alt 17.04.12
Elite Mitglied
 
Registriert seit: Jun 2010
Ort: Trier
Beiträge: 116
naranjoe befindet sich auf einem aufstrebenden Ast
Standard

Fehler gefunden!

Ersetze das
OBJPROP_STYLE,SYMBOL_ARROWUP bzw. SYMBOL_ARROWDOWN

durch
OBJPROP_ARROWCODE ,SYMBOL_ARROWUP bzw. SYMBOL_ARROWDOWN

Dadurch sollte das Problem behoben sein.

Gruß
naranjoe
Biatsch likes this.
Thema geschlossen

Lesezeichen

Stichworte
code, if bedingung, indikator, mql4, programmierung, programmierung metatrader

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 +1. Es ist jetzt 19:39 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.
-----------------------------------------------------------------------------------------------------------------------------