Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 49

 
Chiripaha:

Ich bin auf dieses interessante Problem gestoßen:

Ich schreibe eine triviale Bedingung:

,,,

Wenn Ihre A- und B-Preise gleich sind, könnte die korrekte Bedingung wie folgt aussehen

if( А + 0.5 * Point < Б )
{
  // Выполнить действия
}
 
Aizec:

Kann ich ein kleines Code-Beispiel haben?

https://www.mql5.com/ru/code/10831
 


TarasBY:

Verstanden:
Gebrochene Zahlen müssen vor dem Vergleich normalisiert werden.
Verlegt:

Wenn Ihre A- und B-Preise, die richtige Bedingung könnte wie folgt aussehen

Herzlichen Dank für Ihre Hilfe!

Ich normalisiere die Daten ständig, und deshalb war ich von einem ähnlichen Phänomen überrascht. Aber anscheinend wird beim Schreiben und durch die Erfahrung nicht alles berücksichtigt, so dass der Rat, "kurz vor dem Vergleich der zu vergleichenden Parameter zu normalisieren", sehr wirksam ist. Alles hat konsequent funktioniert.

 

Guten Abend zusammen.

Können Sie mir bitte sagen, warum eine Bestellung nicht geöffnet wird?

int last;

int start()

(

if (Hour( ) == 12) // wenn eine 12-Stunden-Kerze auf TF 60 gebildet wird
last = iBarShift (Symbol (),0,iTime( NULL, 0, 0) ); // remember N of this candle
if (last == 10) // and when this candle is N10

int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point, "jfh",123 ); // Eröffnen der Order

)

zurück(0);

Ich glaube, iBarShift funktioniert nicht, weil der Parameter iTime( NULL, 0, 0) ) die Zeit in Sekunden zurückgibt, während ich sie im Format D'04.04.2000 19:05 ' benötige.

FRAGE 1. Welche Funktion liefert die Öffnungszeit einer Kerze im Format D'04.04.2000 19:05 '

Ich habe es überprüft - bei diesem Format funktioniert die iBarShift-Funktion und der Auftrag wird geöffnet. Es funktioniert jedoch nur , wenn die erste Bedingung nicht erfüllt ist if (Hour( ) == 12)

FRAGE 2 Warum funktioniert iBarShift nicht nach der Bedingung if (Hour( ) == 12)

DANKE!

 
solnce600:

Guten Abend zusammen.

Können Sie mir bitte sagen, warum eine Bestellung nicht geöffnet wird?

int last;

int start()

(

if (Hour( ) == 12) // wenn eine 12-Stunden-Kerze auf TF 60 gebildet wird
last = iBarShift (Symbol (),0,iTime( NULL, 0, 0) ); // remember N of this candle
if (last == 10) // and when this candle is N10

int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point, "jfh",123 ); // Eröffnen der Order

)

zurück(0);

Ich glaube, iBarShift funktioniert nicht, weil der Parameter iTime( NULL, 0, 0) ) die Zeit in Sekunden zurückgibt, während ich sie im Format D'04.04.2000 19:05 ' benötige.

FRAGE 1. Welche Funktion liefert die Öffnungszeit einer Kerze im Format D'04.04.2000 19:05 '

Ich habe es überprüft - bei diesem Format funktioniert die iBarShift-Funktion und der Auftrag wird geöffnet. Es funktioniert jedoch nur , wenn die erste Bedingung nicht erfüllt ist if (Hour( ) == 12)

FRAGE 2 Warum funktioniert iBarShift nicht nach der Bedingung if (Hour( ) == 12)

DANKE!


d.h. Sie eröffnen (wenn ich Sie richtig verstanden habe) eine Position am 22. Takt des Stundenrahmens

int start()
  {

if(iBarOfDayCalc(60)==22)
     int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point,"jfh",123 ); //открыть ордер

 return(0);
  }

//  фуннкцыя------------------------
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 26.02.2008                                                     |
//|  Описание : Возвращает расчётный номер бара от начала суток.               |
//|           : Нумерация баров начинается с 1 (единица).                      |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    tf - таймфрейм                       (0 - текущий таймфрейм)            |
//|    dt - дата и время открытия бара      (0 - текущее время)                |
//+----------------------------------------------------------------------------+
int iBarOfDayCalc(int tf=0, datetime dt=0) {
  if (tf<=0) tf=Period();
  if (dt<=0) dt=TimeCurrent();
  if (tf>PERIOD_D1) {
    Print("iBarOfDayCalc(): Таймфрейм должен быть меньше или равен D1");
    return(0);
  }
  double ms=MathMod(dt/60, 1440);      // количество минут от начала суток
  int    bd=MathFloor(ms/tf)+1;        // номер бара от начала суток

  return(bd);
}
 
r772ra:


Das heißt, Sie eröffnen (wenn ich Sie richtig verstehe) eine Position am 22. Takt des Stundenrahmens

In meinem Beispiel - genau so, nämlich an der 22.

Aber im Allgemeinen möchte ich mir jede Kerze (mit den von mir benötigten Parametern) merken.

und nach ihm (gespeichert) Kerze wird in einem gewünschten Abstand bewegt werden (dh, wird - 5.6....100)

einen Auftrag eröffnen.

Wenn ich mich also nicht irre, wird die oben genannte Funktion von Kim bei mir wahrscheinlich nicht funktionieren,

weil er die Kerzen vom Beginn des Tages an zählt und nur mit 24 Kerzen arbeitet.

Ich denke, ich brauche die Funktion iBarShift , die sich jede Kerze merken kann.

(z. B. jede fünfzigste oder hundertste Kerze von jeder Kerze, die ich brauche).

Aber diese Funktion aus irgendeinem Grund habe ich nicht funktionieren(die Details, die ich in der ersten Post skizziert)

Ich wäre Ihnen dankbar, wenn Sie mir helfen könnten, Antworten auf meine Fragen zu finden.

Herzlichen Dank für Ihre Teilnahme.

 

Guten Tag, könnten Sie bitte raten, wie man sicherstellt, dass nach dem Öffnen dieser bestimmten Position der EA-Code von Anfang an zu arbeiten beginnt, wenn ich tue

wenn (Ticketkauf>0)
{
Rückkehr;
}

Es werden keine weiteren Aufträge zu anderen Bedingungen geöffnet, und ich muss mehrere von ihnen öffnen. Ich muss noch mehrere Bestellungen aufgeben. Danke.

 
Vinin:

Wenn genügend Indikatorpuffer vorhanden sind, geht es auch ohne Objekte


aber wie? wenn der Indikator in einem Fenster angezeigt wird, wie können Sie die Pfeile auf dem Diagramm anzeigen? Ich verwende nur 4 Puffer

 

Guten Tag. Entschuldigen Sie, dass ich mich in ein laufendes Gespräch einmische... Wenn Sie eine Minute haben ... Ich habe einen Indikator, der den Pfeil nach oben und unten zieht ich brauche, um einen EA für sie kann ich sagen, ich bin gerade erst begonnen Lernen muell und nicht den Umgang mit Indikatoren

#property indicator_chart_window

#Eigenschaft indicator_buffers 2

#Eigenschaft indicator_color1 blau

#Eigenschaft indicator_color2 Rot

//---- Eingabeparameter

extern int NumBars=500;

//---- Puffer

double ExtMapBuffer1[];

double ExtMapBuffer2[];

Doppelseite;

vielleicht hat jemand eine Vorlage

 

Wenn jemand etwas weiß, bitte ich um Rat. Gepard 5.0 Expert Advisor auf Forex4you eröffnet einige Trades mit großem Minus. Wo kann ich die Einstellungen anpassen?