Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Pullback von High[0] pullback von Low[0] (http://www.expert-advisor.com/forum/showthread.php?t=6842)

noSkill06s 28.11.20 03:30

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);
  }
//+------------------------------------------------------------------+


MA-EA 28.11.20 07:58

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


Edit:Wenn Du High/Low von Bar 0 willst, wirst Du wohl Höchst/Tiefstwert von Close0 oder Ask/Bid aufzeichnen müssen.

traderdoc 28.11.20 08:39

Zitat:

Zitat von noSkill06s (Beitrag 44712)
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

traderdoc 28.11.20 08:45

Zitat:

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


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

MA-EA 28.11.20 16:34

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. :rolleyes:

traderdoc 28.11.20 18:03

Zitat:

Zitat von MA-EA (Beitrag 44720)
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. :rolleyes:

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

Indikator-Trading 28.11.20 18:33

Lass MA-EA einfach. Er ist kognitiv nicht in der Lage das zu verstehen.... Alles verlorene lebenszeit mit ihm zu kommunizieren...

MA-EA 28.11.20 19:39

Zitat:

Zitat von traderdoc (Beitrag 44721)
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. :rolleyes:

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


@ 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 28.11.20 20:04

Zitat:

Zitat von noSkill06s (Beitrag 44724)
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

traderdoc 28.11.20 22:24

"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


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:18 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum