Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 5 > Programmierung MQL5

Programmierung MQL5 Hier gehts rund ums Programmieren in MQL5.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4845
Beiträge: 42781
Benutzer: 7.157
Aktive Benutzer: 92
Links: 83
Wir begrüßen unseren neuesten Benutzer: Lnx4All
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 16 Stunden
- Lnx4All
vor einer Woche
- Tagtranple...
vor einer Woche
- Albert12
vor einer Woche
- guentheral...
vor 2 Wochen
- Graf-Rotz

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

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 24.05.22
Neues Mitglied
 
Registriert seit: Apr 2022
Beiträge: 15
Yango befindet sich auf einem aufstrebenden Ast
Standard 2D-Array mit Preisen befüllen

Hallo,

kann meinen Fehler nicht finden. Habe zwei 2D-Arrays, von denen eines mit den Preisen der HLINES und das andere mit den Preisen der RECTANGLE befüllt werden soll (erste Schleife für die Linien, zweite Schleife für die Rechtecke). Jeweils innerhalb der Schleife schaut eine Funktion (HasPriceBeenCheckedRectangles und HasPriceBeenCheckedRectangles), ob die Preise schon vorhanden sind. Lasse mir die Arrays über Print ausgeben.. nur irgendwie gibt er mir immer nur die Preise der Rechtecke (oben und unten aus, was so gewollt ist), aber nicht die, der Linien. Ich bin jetzt soweit, dass ich weiß, dass irgendetwas mit den If-Abfragen für die Preise der Linien nicht stimmt. Nur was.. Im Debugging-Modus sehe ich, dass er immer nur die obere oder die untere Linie bekommt und das wechselt sich ständig ab, nie bekommt er beide gleichzeitig.

double RectanglePrices[2][1000];
int RectanglePricesIdx = -1;
double LinePrices[2][1000];
int LinesPricesIdx = -1;

int obj_index = ObjectsTotal(0,0,-1);

for (int i = obj_index; i>=0; i--){

string object_name = ObjectName(ChartID(), i);
double Price_Line_Up = 0;
double Price_Line_Do = 0;

if (ObjectGetInteger(ChartID(), object_name, OBJPROP_TYPE) != OBJ_HLINE) continue;

if (ObjectGetInteger(ChartID(), object_name, OBJPROP_COLOR) == clrMaroon )Price_Line_Up = ObjectGetDouble(_Symbol,object_name,OBJPROP_PRICE) ;
if (ObjectGetInteger(ChartID(), object_name, OBJPROP_COLOR) == clrBrown ) Price_Line_Do = ObjectGetDouble(_Symbol,object_name,OBJPROP_PRICE) ;

if( !HasPriceBeenCheckedLines(Price_Line_Up, Price_Line_Do) ){
LinesPricesIdx++;
LinePrices[0][LinesPricesIdx] = Price_Line_Up;
LinePrices[1][LinesPricesIdx] = Price_Line_Do;
Print("Lines");
ArrayPrint(LinePrices,_Digits,NULL,0,LinesPricesId x,ARRAYPRINT_INDEX);
}
}

for (int i = obj_index; i>=0; i--){

string object_name = ObjectName(ChartID(), i);
double Price_Rectangle_Up = 0;
double Price_Rectangle_Do = 0;

if (ObjectGetInteger(ChartID(), object_name, OBJPROP_TYPE) != OBJ_RECTANGLE) continue;

if (ObjectGetInteger(ChartID(), object_name, OBJPROP_COLOR) == clrRed || ObjectGetInteger(ChartID(), object_name, OBJPROP_COLOR) == clrGreen){
Price_Rectangle_Up = ObjectGetDouble(_Symbol,object_name,OBJPROP_PRICE, 0);
Price_Rectangle_Do = ObjectGetDouble(_Symbol,object_name,OBJPROP_PRICE, 1); }

if( !HasPriceBeenCheckedRectangles(Price_Rectangle_Up, Price_Rectangle_Do) ){
RectanglePricesIdx++;
RectanglePrices[0][RectanglePricesIdx] = Price_Rectangle_Up;
RectanglePrices[1][RectanglePricesIdx] = Price_Rectangle_Do;
Print("Recs");
ArrayPrint(RectanglePrices,_Digits,NULL,0,Rectangl ePricesIdx,ARRAYPRINT_INDEX);
}
}

bool HasPriceBeenCheckedRectangles(double rectanglepriceUP, double rectanglepriceDO)
{
int i;
for (i=0;i<=RectanglePricesIdx;i++)
{
if ( (RectanglePrices[0][i]==rectanglepriceUP)||(RectanglePrices[1][i]==rectanglepriceDO) )
{
return true;
}
}
return false;
}

bool HasPriceBeenCheckedLines(double linepriceUP, double linepriceDO)
{
int i;
for (i=0;i<=LinesPricesIdx;i++)
{
if ( (LinePrices[0][i]==linepriceUP)||(LinePrices[1][i]==linepriceDO) )
{
return true;
}
}
return false;
}
Mit Zitat antworten
  #2 (permalink)  
Alt 25.05.22
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.648
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ob es daran liegt, kann ich nicht mit Sicherheit sagen, aber in beiden Zeilen

for (int i = obj_index; i>=0; i--){

müsste stehen:

for (int i = obj_index-1; i>=0; i--){

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #3 (permalink)  
Alt 26.05.22
Neues Mitglied
 
Registriert seit: Apr 2022
Beiträge: 15
Yango befindet sich auf einem aufstrebenden Ast
Standard

Danke für die Antwort. Daran liegt es leider nicht..

lG
Mit Zitat antworten
  #4 (permalink)  
Alt 26.05.22
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.648
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ja, nur ein Fehler ist es trotzdem und sollte demnächst berücksichtigt werden.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #5 (permalink)  
Alt 27.05.22
Neues Mitglied
 
Registriert seit: Apr 2022
Beiträge: 15
Yango befindet sich auf einem aufstrebenden Ast
Standard

Ja, das stimmt.
Mit Zitat antworten
Antwort

Lesezeichen

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 05:23 Uhr.





Die Suchmaschine - Der Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2022 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.
-----------------------------------------------------------------------------------------------------------------------------