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: 4340
Beiträge: 40978
Benutzer: 6.672
Aktive Benutzer: 194
Links: 80
Wir begrüßen unseren neuesten Benutzer: Rupp
Mit 1.311 Benutzern waren die meisten Benutzer gleichzeitig online (16.09.19 um 01:18).
Neue Benutzer:
vor 2 Tagen
- Rupp
vor 5 Tagen
- walkn
vor einer Woche
- hakanhukum...
vor einer Woche
- Marco_FX
vor einer Woche
- Manoo

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 15.03.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 139
Max2018 befindet sich auf einem aufstrebenden Ast
Standard Bid Zwischen Rectangle Widerstand Unterstützung

Hallo,

wie könnte man eine "If" Abfrage formulieren, wenn der Bidkurs zwischen einem eingezeichneten Rectangle Objekt liegt.
Begründung:
Ich habe in einem Chart verschiedene Widerstände und Unterstützungen eingezeichnet mit Rectangle Objekten. Jedesmal wenn der Kurs nun
irgend eines der Objecte berührt oder darin liegt, soll ein EA eine Funktion ausführen.
Problem:
Zum einen habe ich zahlreiche Rectangles eingezeichnet, und die if Abfrage soll bei JEDEM Rectangle funktionieren

Mein Ansatz geht irgendwie nicht:
Code:
if (OB_Check(ZwischenRectangle)!=true)break;
und
Code:
bool OB_Check(double ZwischenRectangle) {
   for (int vv = 0; vv <= 300; vv++) 
{ 
   ObereRectangleLinie[vv] = NormalizeDouble(ObjectGetDouble(0,vv,OBJPROP_PRICE1),NACHKOMMA);    
   UntereRectangleLinie[vv] = NormalizeDouble(ObjectGetDouble(0,vv,OBJPROP_PRICE2),NACHKOMMA);
if(Bid>ObereRectangleLinie[vv]&&Bid<UntereRectangleLinie[vv])
return(false);
            }
         }
      }
   }
   return(true);  
}
  #2 (permalink)  
Alt 15.03.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.258
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Dann nimm mal statt && die Zeichen || für die logische ODER-Verknüpfung.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 18.03.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 139
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

Danke! Geht leider nicht

Habe die Rectangles von 1 bis n durchnummeriert - geht aber nicht.
Zur Vereinfachung hier das vollständige TestProgramm
Eigentlich müsste der Comment, wenn Bid zwischen einem Rectangle ist, auf 1 umspringen.... macht es aber nicht

Code:
 
int ObereRectangleLinie[111],UntereRectangleLinie[111]; 
 

int start()
   {   
   double ZwischenRectangle; 
       if (PO_Check(ZwischenRectangle)!=true)Comment(1);
       if (PO_Check(ZwischenRectangle)==true)Comment(0);   
}     
  bool PO_Check(double ZwischenRectangle) {
   for(int i = OrdersTotal()-1; i >= 0; i--) 
   {ObereRectangleLinie[i] = NormalizeDouble(ObjectGetDouble(0,i,OBJPROP_PRICE1),1);    
   UntereRectangleLinie[i] = NormalizeDouble(ObjectGetDouble(0,i,OBJPROP_PRICE2),1);
if(Bid>ObereRectangleLinie[i]||Bid<UntereRectangleLinie[i])
return(false);
   }
   return(true);
}
  #4 (permalink)  
Alt 18.03.19
Neues Mitglied
 
Registriert seit: Dec 2016
Beiträge: 16
FatSpiderman befindet sich auf einem aufstrebenden Ast
Standard

Ich verstehe den Iterator in deinem Testprogramm nicht:

for(int i = OrdersTotal()-1; i >= 0; i--)

OrdersTotal() liefert dir doch die Anzahl deiner Orders zurück.

Wenn du keine Order im Markt hast, kommst du gar nicht in die Schleife rein bzw. falls du weniger Orders im Markt hast als Rectangles, werden gar nicht alle Objekte getestet.
Müsst hier nicht i mit der Anzahl deiner Objekte initialisiert und iteriert werden, in deinem Fall 111?
  #5 (permalink)  
Alt 18.03.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.258
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Dass das so nicht ging, war klar, denn das war auch nur der Hinweis auf die korrekte Logik der Abfrage bzgl. der Position des aktuellen Kurses.

Wie @FatSpiderman schon richtig bemerkte, hat da OrdersTotal() nichts zu suchen. Es muss nach den Objekten gesucht werden und bei ObjectGetDouble() muss u.a. der Parameter des ObjectNamens!! angegeben werden und ein Index.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #6 (permalink)  
Alt 18.03.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 139
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

Aaaah ja, stimmt

So geht´s
Code:
 
 
int ObereRectangleLinie[111],UntereRectangleLinie[111]; 
 

int start()
   {   
   double ZwischenRectangle; 
       if (PO_Check(ZwischenRectangle)!=true)Comment(1);
       if (PO_Check(ZwischenRectangle)==true)Comment(0);   
}     
  bool PO_Check(double ZwischenRectangle) {
   for(int i = 111; i >= 0; i--) 
   {ObereRectangleLinie[i] = NormalizeDouble(ObjectGetDouble(0,i,OBJPROP_PRICE1),1);    
   UntereRectangleLinie[i] = NormalizeDouble(ObjectGetDouble(0,i,OBJPROP_PRICE2),1);
if(Bid<ObereRectangleLinie[i]&&Bid>UntereRectangleLinie[i])
return(false);
   }
   return(true);
}
DAAANKEEE
  #7 (permalink)  
Alt 18.03.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.258
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Wenn das tatsächlich gehen sollte, dann hättest Du den Objekten die Namen "0" bis "111" gegeben müssen, was etwas ungewöhnlich wäre.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #8 (permalink)  
Alt 18.03.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 139
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

JA habe ich, die werden automatisch eingezeichnet und durchnummeriert - alternativ zeichne ich die manuell ein und gebe den Rectangles auch eine Nummer....

DANKE nochmal
  #9 (permalink)  
Alt 18.03.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 139
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

hier den geändert:

Download Forex Indicator "SS SupportResistance v04c", Support and Resistance levels

bzw

SS_SupportResistance_v04c.mq4--MetaTrader 4/5 robots,Experts and Indicators source code advisors,Forex Automated Trading Systems.

dort aber dann statt den Namen, die Widerstände und Unterstützungen durchnummerieren
Thema geschlossen

Lesezeichen

Stichworte
rectangle widerstand unterstützung


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


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