Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1472

 
ANDREY:
Pr ist eine Variable, so dass nur 1 Auftrag nach 30 Pips eröffnet wird. Ohne diese Variable öffnen sie sich bei jedem Tick
if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0))
{LoU=Bid;}

Sie brauchen diese Variable also nicht ... und die Belastung ist bereits geringer)

 
MakarFX:
Noch schlimmer... ich muss immer noch die Anzahl der Balken wissen


Ich habe gezwickt ...Versuchen Sie

Das habe ich. Es ist das Gleiche.
Ihr Code.

double LoU,Pr;
int OnInit()
  {
   LoU=Low[0];
  }
//+------------------------------------------------------------------+
void OnTick()
  {
   if(Low[1]<LoU) {LoU=Low[1];}
   if ((Bid-30*Point)>=LoU)
     {
      if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Low[0];
     }
  }


 
MakarFX:

Sie brauchen diese Variable also nicht... und schon ist die Belastung geringer)

Vielleicht brauche ich es nicht. Aber das ist nicht das Problem, mit dem ich zu kämpfen habe.....

 
ANDREY:

Wahrscheinlich nicht notwendig. Aber das ist nicht das Problem, mit dem ich zu kämpfen habe.....

1) Wenn Sie mit der Geschwindigkeit zu kämpfen haben, ist jede Code-Optimierung von Vorteil.

2) Der Unterschied in den Ergebnissen, weil Sie keine LoU-Initialisierung beim Start haben, ist nichts... LEER

 
MakarFX:
Noch schlimmer... Sie müssen immer noch die Anzahl der Balken wissen


Ich habe gezwickt ...Versuchen Sie

Wenn Bid - Low[ ] >= 30 Pips, eröffnen Sie einen Auftrag. Aber woher wissen wir, wie hoch diesesLow[ ] ist, nachdem Bid um 30 Pips über dieses Low[ ] gestiegen ist?
 
ANDREY:
Wenn Bid - Low[? ] >= 30 p. ist, sollten wir alternativ eine Order eröffnen. Aber woher wissen wir die Anzahl der Low[ ] , nachdem Bid um 30 Punkte höher als Low[ ] ist?

Und wenn Bid nach unten geht, bedeutet das einen neuen Tiefpunkt... und von welchem Tiefpunkt aus soll die Berechnung erfolgen?

 
MakarFX:

1) Wenn Sie mit der Geschwindigkeit zu kämpfen haben, ist jede Code-Optimierung von Vorteil.

2) Der Unterschied in den Ergebnissen, weil Sie keine LoU-Initialisierung beim Start haben, bedeutet nichts... LEER

Wenn ich also LoU bei der Deklaration einen Wert zuweise , wird der Code viel schneller laufen ?

Ich habe ihm den Eröffnungskurs des ersten Balkens vom 04.01.2010 zugeordnet.

double LoU = 1.6121,Pr;
void OnTick()//531
{
if (Bid<LoU)
LoU=Bid;
//**************************************************************||TimeCurrent()==1262568096
if (Bid-LoU>=0.0030&&Pr!=LoU)
{
OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0);
Pr=LoU;
LoU=Bid;

}
}
 
MakarFX:

Und wenn Bid nach unten geht, bedeutet das einen neuen Tiefpunkt... und von welchem Tiefpunkt aus soll man rechnen?

Lassen Sie es nach unten gehen, die Hauptsache ist, dass der Auftrag in 30 Pips öffnet. Und nachdem sie geöffnet wurde, lassen Sie den Preis sinken, um das neue Minimum zu finden. Angenommen, wir haben das aktuelle Bid und es ist 30 Punkte von Low[ 50] entfernt und wir können eine Order eröffnen. Wenn ( Bid - Low[ 50] > 30 Punkte ) - eine Order eröffnen, woher wissen wir dann, dass es sich um das Tief der 50. In diesem Fall sollten wir also nicht prüfen, was vor dem lokalen Minimum war, sondern was danach war.
In diesem Fall spielt es keine Rolle, wie stark der Preis nach der Eröffnung des Auftrags fällt.

 
ANDREY:

Ich glaube nicht, dass der fraktale Indikator das Richtige für mich ist. Sie wird viele Aufträge verpassen.

Der von meinem Code eröffnete Auftrag, bei dem der Preis bei jedem Tick überprüft wird, ist blau unterlegt. Ich habe den Eindruck, dass ein Fraktal mir in diesem Fall nichts Notwendiges sagt.

Ich habe ein Fraktal als Beispiel genannt. Und wie Sie das Minimum (in Ihrem Fall) bestimmen, ist ein militärisches Geheimnis... oder Sie verstehen nicht, was ich frage.

 
ANDREY:

Lassen Sie es fallen, die Hauptsache ist, dass der Auftrag in 30 Pips öffnen wird. Und nach der Eröffnung sollte der Preis fallen, um einen neuen Tiefstand zu erreichen. Stellen wir uns vor, wir haben das aktuelle Bid und es ist 30 Punkte von Low[ 50] entfernt und wir können eine Order eröffnen. if ( Bid - Low[ 50] > 30 Punkte ) - eine Order eröffnen. Aber wie prüft man, ob es das Tief der 50. Kerze ist? In diesem Fall sollten wir also nicht prüfen, was vor dem lokalen Minimum war, sondern was danach war.

Sie brauchen die Balken nicht zu zählen

Nach der Eröffnung des Auftrags wird der Variable der Wert Low[0] (das aktuelle Minimum des Barrens) zugewiesen, und nach dem Schließen des Barrens wird ein neuer Wert zugewiesen, wenn der Wert von Low[1] unter dem der Variablen liegt,

Wenn nicht, wird der alte Wert beibehalten, d.h. das Minimum.

Grund der Beschwerde: