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: 43248
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: 257
Gesamt: 257
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree9Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 28.11.20
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 36
noSkill06s befindet sich auf einem aufstrebenden Ast
Standard Pullback von High[0] pullback von Low[0]

Hi Leute ich brauche Hilfe und komme gleich zum Punkt,

Schritt1: Kerze 0 Schlusskurs 1euro Hoch 1euro Low 1euro Open 1euro
Schritt2: Kerze 0 Schlusskurs 2euro Hoch 2euro Low 1euro Open 1euro
Schritt3: Kerze 0 Schlusskurs 3euro hoch 3euro Low 1euro Open 1euro
Schritt4: Kerze 0 Schlusskurs 2euro hoch 3euro Low 1euro Open 1euro

Schlusskurs notiert zum ersten mal unter Hoch = Dot
Schlusskurs notiert zum ersten mal über Low = Dot

wenn der Kurs jetzt nach dem rücksetzer nochmal hochzieht und wieder zurücksetzt kein weiterer Dot mehr
wenn der Kurs jetzt nach dem rücksetzer nochmal runterzieht und wieder zurücksetzt kein weiterer Dot mehr


Was habe ich probiert?
Code:
   for(int i=0;i<limit;i++){
      if(Close[i]<High[i]){
         double pullbackHighest_DotPreis=Close[i]<High[i];
         pullbackHighest_Dot[i]=pullbackHighest_DotPreis;
      }else if(Close[i]>Low[i]){
         double pullbackLowest_DotPreis=Close[i]>Low[i];
         pullbackLowest_Dot[i]=pullbackLowest_DotPreis;
      }
   }
warum High[i] und nicht iHigh[i]?, weil ich immer die aktuelle Kerze nehme und den shift nicht brauche

Der ganze Code
Code:
//+------------------------------------------------------------------+
//|                                   sellHigherLow_buyLowerhigh.mq4 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 clrAqua
#property indicator_color2 clrMagenta
#property indicator_width1 2
#property indicator_width2 2

double pullbackLowest_Dot[];
double pullbackHighest_Dot[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   //pullbackLowest_Dot
   SetIndexBuffer(0,pullbackLowest_Dot);
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,159);
   SetIndexLabel(0,"Sell Signal");
   //pullbackHighest_Dot
   SetIndexBuffer(1,pullbackHighest_Dot);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,159);
   SetIndexLabel(1,"Sell Signal");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   //counting Bars
   int counted_bars, limit;
   counted_bars=IndicatorCounted();
   limit=Bars-counted_bars;
   
   //Erklärung mit Code
   for(int i=0;i<limit;i++){
      if(Close[i]<High[i]){
         double pullbackHighest_DotPreis=Close[i]<High[i];
         pullbackHighest_Dot[i]=pullbackHighest_DotPreis;
      }else if(Close[i]>Low[i]){
         double pullbackLowest_DotPreis=Close[i]>Low[i];
         pullbackLowest_Dot[i]=pullbackLowest_DotPreis;
      }
   }
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
  #2 (permalink)  
Alt 28.11.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Ein brauchbares High/Low gibts doch frühestens für Bar 1.


Edit:Wenn Du High/Low von Bar 0 willst, wirst Du wohl Höchst/Tiefstwert von Close0 oder Ask/Bid aufzeichnen müssen.
noSkill06s likes this.
  #3 (permalink)  
Alt 28.11.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von noSkill06s Beitrag anzeigen
Hi Leute ich brauche Hilfe und komme gleich zum Punkt,

Schritt1: Kerze 0 Schlusskurs 1euro Hoch 1euro Low 1euro Open 1euro
Schritt2: Kerze 0 Schlusskurs 2euro Hoch 2euro Low 1euro Open 1euro
Schritt3: Kerze 0 Schlusskurs 3euro hoch 3euro Low 1euro Open 1euro
Schritt4: Kerze 0 Schlusskurs 2euro hoch 3euro Low 1euro Open 1euro

Was soll das bedeuten?

Schlusskurs notiert zum ersten mal unter Hoch = Dot
Schlusskurs notiert zum ersten mal über Low = Dot

Was ist mit Dot gemeint?

wenn der Kurs jetzt nach dem rücksetzer nochmal hochzieht und wieder zurücksetzt kein weiterer Dot mehr
wenn der Kurs jetzt nach dem rücksetzer nochmal runterzieht und wieder zurücksetzt kein weiterer Dot mehr


Was habe ich probiert?
Code:
   for(int i=0;i<limit;i++){
      if(Close[i]<High[i]){
         double pullbackHighest_DotPreis=Close[i]<High[i];
         pullbackHighest_Dot[i]=pullbackHighest_DotPreis;
      }else if(Close[i]>Low[i]){
         double pullbackLowest_DotPreis=Close[i]>Low[i];
         pullbackLowest_Dot[i]=pullbackLowest_DotPreis;
      }
   }
warum High[i] und nicht iHigh[i]?, weil ich immer die aktuelle Kerze nehme und den shift nicht brauche

iHigh[i] gibt es nicht, nur iHigh(). Der Shift ist bereits i, also auch bei High[i] wird in dem Sinne ein Shift benutzt. iHigh() wird angewendet, wenn auf andere Handelsinstrumente, andere TimeFrames bezogen auf das Chart des ausführenden Programms zugegriffen werden soll.

Der ganze Code
Code:
//+------------------------------------------------------------------+
//|                                   sellHigherLow_buyLowerhigh.mq4 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 clrAqua
#property indicator_color2 clrMagenta
#property indicator_width1 2
#property indicator_width2 2

double pullbackLowest_Dot[];
double pullbackHighest_Dot[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   //pullbackLowest_Dot
   SetIndexBuffer(0,pullbackLowest_Dot);
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,159);
   SetIndexLabel(0,"Sell Signal");
   //pullbackHighest_Dot
   SetIndexBuffer(1,pullbackHighest_Dot);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,159);
   SetIndexLabel(1,"Sell Signal");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   //counting Bars
   int counted_bars, limit;
   counted_bars=IndicatorCounted();
   limit=Bars-counted_bars;
   
   //Erklärung mit Code
   for(int i=0;i<limit;i++){
      if(Close[i]<High[i]){
         double pullbackHighest_DotPreis=Close[i]<High[i];
         pullbackHighest_Dot[i]=pullbackHighest_DotPreis;
      }else if(Close[i]>Low[i]){
         double pullbackLowest_DotPreis=Close[i]>Low[i];
         pullbackLowest_Dot[i]=pullbackLowest_DotPreis;
      }
   }
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
Ohne der Beantwortung der Fragen - kein Weiterkommen.

traderdoc
noSkill06s likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #4 (permalink)  
Alt 28.11.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Ein brauchbares High/Low gibts doch frühestens für Bar 1.


Edit:Wenn Du High/Low von Bar 0 willst, wirst Du wohl Höchst/Tiefstwert von Close0 oder Ask/Bid aufzeichnen müssen.
Ach @MA-EA, immer wieder dieselbe Leier.
Was bedeutet denn High[0]?
Was bedeutet denn Low[0]?
Und was bedeutet Close[0]?

Da gibt es nichts aufzuzeichnen und aas ist denn der Höchst/Tiefstwert von Close[0]?

So und nun erst mal tief in Dich gehen, Luft holen, nachdenken oder -lesen und dann die Antworten schreiben!

traderdoc
noSkill06s likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #5 (permalink)  
Alt 28.11.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Soweit ich sehn kann, versucht er High und Low Price für Bar0 zu nutzen. Auf Bar0 gibts zwar schon Highs/Lows, aber Keine, die man als Solche benutzen könnte, weil Bar0 ja noch nicht abgeschlossen ist.
noSkill06s likes this.
  #6 (permalink)  
Alt 28.11.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Soweit ich sehn kann, versucht er High und Low Price für Bar0 zu nutzen. Auf Bar0 gibts zwar schon Highs/Lows, aber Keine, die man als Solche benutzen könnte, weil Bar0 ja noch nicht abgeschlossen ist.
Ja und? Ein High ist ein High und ein Low ist ein Low. Ob man das nutzen kann, sollte oder müsste, steht auf einem ganz anderen Blatt.

traderdoc
noSkill06s likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #7 (permalink)  
Alt 28.11.20
Benutzerbild von Indikator-Trading
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Lass MA-EA einfach. Er ist kognitiv nicht in der Lage das zu verstehen.... Alles verlorene lebenszeit mit ihm zu kommunizieren...
TogoTiger and noSkill06s like this.
  #8 (permalink)  
Alt 28.11.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Ja und? Ein High ist ein High und ein Low ist ein Low. Ob man das nutzen kann, sollte oder müsste, steht auf einem ganz anderen Blatt.
Auf Bar0 sind High und Low, wenn man sie so nennen kann, aber noch nicht endgültig. Deswegen nehm ich mal an, dass dieser Indi vom Fred-Starter auch nicht funktioniert, wie er soll.

Mich würde auch mal interessieren, was aus dem Gerät überhaupt mal werden soll...


@ Indikator-Trading: Mit Dir zu kommunizieren scheint auch nicht viel Sinn zu haben. Ausser man will sich vom eigentlichen Thema ablenken. Dafür sind Viele Deiner "Beiträge" noch ganz nützlich. Ansonsten kann man die Meisten Deiner arroganten Posts ignorieren.
noSkill06s likes this.
  #9 (permalink)  
Alt 28.11.20
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 36
noSkill06s befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von noSkill06s Beitrag anzeigen
Hallo alle zusammen erstmal vielen dank für die vielen Rückmeldungen, ganze besonderer dank an traderdoc, werde auf die hingewiesenen punkte sofort gleich eingehen.

Was soll das bedeuten?
-Es geht um die Aktuelle Kerze die noch nicht geschlossen hat
-Bsp eine neue Kerze erscheint jetzt am Chart machen wir es ganz einfach
open/close/high/low sind alle im moment 1€ jetzt steigt die Kerze auf 5€
in diesem moment sind Close[0] und High[0] ja identisch nämlich 5€ jetzt
setzt aber die Kerze zurück auf 4€ jetzt ist Close[0]=4€ und High[0]=5€
und ich möchte genau jetzt bei diesem ersten rücksetzer einen Dot erscheinen
lassen exakt an diesem Preis wo der Preis kein neues Hoch mehr gebildet hat
sondern den ersten rücksetzer hatte

Was ist ein Dot?
-ich möchte keinen Arrow nutzen da er ja ist Ansicht Sache aber zuviel platz
kostet ein Dot damit ist der mql4 reference windings 159 gemeint das ist ein
kleiner Punkt der nimmt nicht viel platz und ist dennoch gut zu erkennen klar
die färbe ist megawichtig damit man es auch richtig sehen kann

iHigh() sorry habe es falsch geschrieben iHigh() ist natürlich richtig und iHigh[] gibt es glaub ich nicht, ich habe es mit High[] weil mir es immer nur um den aktuellen Bar geht nämlich "0"

iHigh() = nicht verwendet wegen shift
iHighest() = nicht verwendet weil ich über eine bestimmte Periode nicht die
Hochs oder die Tiefs brauche (iLowest())

ich bin echt am verzweifeln das muss doch irgendwie gehen, es kann ja nicht sein das man eine Visualisierung nur am Open/Close/High/ oder eben am Low machen kann?

Wie man am System sehen kann ist das keine Handelsstrategie es geht mir so einfach das klingt nur um das erlernen dieser Möglichkeit, und ich wäre sogar bereit dafür zu zahlen (wenn ich etwas nicht kann macht mich das verrückt)
habe ganz Youtube abgeklappert Stackoverflow fragen durchgeschaut mql4 doku rauf und runter aber ich komme nicht drauf.

In Worten ausgedrückt angenommen
Wenn (Close[0] kleiner High[0]){
double meinRücksetzer=Close[0];//ich speichere den Preis wo der kurs zum
ersten mal zurücksetzt
meinDot[i]=meinRücksetzer;//und binde ihn hier wieder ein wenn ich das
}


Wie gesagt ich muss das wissen bin für jede Hilfe dankbar und jeden Beitrag weiss es sehr zu schätzen wenn sich jemand die Zeit nimmt aber ich gehe soweit ich würde sogar zahlen wenn jemand sagt okay das geht ich weiss und ich nehme dich da an die Hand und bring es dir bei. Bitte nicht falsch verstehen das mit "ich muss das wissen" ich habe da keinen bezahlten Auftrag oder sonst was aber es ist halt sehr intressant
@traderdoc
  #10 (permalink)  
Alt 28.11.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

"Was soll das bedeuten?
-Es geht um die Aktuelle Kerze die noch nicht geschlossen hat
-Bsp eine neue Kerze erscheint jetzt am Chart machen wir es ganz einfach
open/close/high/low sind alle im moment 1€ jetzt steigt die Kerze auf 5€
in diesem moment sind Close[0] und High[0] ja identisch nämlich 5€ jetzt
setzt aber die Kerze zurück auf 4€ jetzt ist Close[0]=4€ und High[0]=5€
und ich möchte genau jetzt bei diesem ersten rücksetzer einen Dot erscheinen
lassen exakt an diesem Preis wo der Preis kein neues Hoch mehr gebildet hat
sondern den ersten rücksetzer hatte"

Ich habe immer noch keine Ahnung, wieso ist open/close/high/low = 1€ und wie kann eine Kerze auf 5€ steigen. Was hat überhaupt die Kerze mir € zu tun?

Es muss eine definierte Größe zwischen Open und High geben, sonst funktioniert das deshalb nicht, weil am Anfang alle 4 Werte identisch sind. Kurz danach könnte der Kurs auch nur um 1Pipette steigen und dann wieder fallen, aber wohin, ohne das Open zu unterschreiten?

Wenn der Abstand klar definiert ist, ist der Rest kein Thema.

traderdoc
noSkill06s likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Thema geschlossen

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 +1. Es ist jetzt 13:28 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.
-----------------------------------------------------------------------------------------------------------------------------