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

 
Mein Handelssystem basiert auf der Analyse von historischen Daten. Ich habe eine Funktion gebaut, um das Signal direkt im EA zu berechnen. Soweit ich verstanden habe, verwendet der Expert Advisor beim Testen jedoch nur die Daten im visuellen Fenster (es gibt viel weniger Balken als in Standardfenstern mit aus dem Archiv geladener Historie). Und ich brauche mindestens mehrere zehntausend historische Balken, um das Signal zu berechnen. Gibt es eine Möglichkeit, dieses Problem zu lösen, d.h. dem zu testenden EA zu erlauben, die gesamte Historie zu verwenden, auch wenn der zu testende Zeitraum kleiner ist? Ich verwende MT4 und MQL4
 
sannin:

Hilfe, wenn es Ihnen nichts ausmacht

einem Expert Advisor beizubringen, nach dem Indikator zu handeln

BS_Living Now ver #1.mq4 https://www.mql5.com/ru/code/11014#50910

UP= iCustom(Symbol(),NULL,"Jetzt",BQuant,0,0);

DOW= iCustom(Symbol(),NULL,"Jetzt",BQuant,1,0);


if(DOW){OrderSend(Symbol(), OP_SELL, Lot, Bid, Slip, 0, 0, "Forex-Robots.ru SELL", Magic, 0,Red);}


if(UP ){OrderSend(Symbol(), OP_BUY, Lot, Ask, Slip, 0, 0, "Forex-Robots.ru BUY", Magic, 0,Blue);}


Kommentar

(

"\n Profit: ", UP,

"\n Profit: ", DOW

);

Ich habe versucht, die Werte im Kommentar zu lesen, aber sie sind immer statisch.

Der Name des Indikators sollte "BS_Living Now ver #1" lauten.
 

Ja, ich habe einen Indikator mit dem Namen Now im Ordner

Ich habe die Werte in den Kommentar geschrieben, um zu sehen, wie sich die Zahlen ändern, aber sie sind sowohl im Tester als auch live statisch und sie sind nicht Null

 
sannin:

Ja, ich habe einen Indikator mit dem Namen Now im Ordner

Ich habe die Werte in den Kommentar geschrieben, um zu sehen, wie sich die Zahlen ändern, und sie sind statisch, sowohl im Tester als auch im wirklichen Leben, und sie sind nicht Null.


Wenn er einem Fraktal ähnelt, sollte sein Wert in der Historie gesucht werden, aber nicht auf dem Nullbalken.

Z.I.: Das stimmt, die Berechnungen beginnen ab Takt 1, es macht keinen Sinn, etwas bei Takt Null zu suchen...

 

Können Sie mir sagen, wie ich einem EA die Funktion hinzufügen kann, alle Aufträge zu schließen, wenn der Abstand zwischen dem Marktpreis und dem am weitesten entfernten Auftragspreis z.B. 1000 Pips überschreitet?

 
evillive:

Wenn er im Prinzip den Fraktalen ähnelt, dann ist es sinnvoll, seinen Wert weiter in der Geschichte zu suchen, aber nicht bei Nullbar.

Z.I.: Das stimmt, die Berechnungen beginnen ab Takt 1, es macht keinen Sinn, im Nulltakt nach etwas zu suchen...

Ab Takt Nr. 2 nach Code, Extrim_Detect(s+1);
 
AlexeyVik:

Und dementsprechend ist die Bedingung

Vielen Dank, Alexey. Ich habe alles getan, was Sie empfohlen haben.

extern int    Min_iMA_OpenDistance   = 60;
extern int    Max_iMA_OpenDistance   = 85; 

geänderte Einstiegsbedingung

int GetSignal()
{
  int Signal = 0;

  double iMA_Signal = iMA(Symbol(), 0, iMA_Period, 0, MODE_SMMA, PRICE_CLOSE, 0);
  
  int Ma_Bid_Diff = MathAbs(iMA_Signal - Bid)/vPoint;
  
  if(Ma_Bid_Diff > Min_iMA_OpenDistance && Ma_Bid_Diff < Max_iMA_OpenDistance && Bid > iMA_Signal) Signal = -1;
  if(Ma_Bid_Diff > Min_iMA_OpenDistance && Ma_Bid_Diff < Max_iMA_OpenDistance && Bid < iMA_Signal) Signal = 1;
  
  return(Signal);
}

Nachdem ich die Änderungen vorgenommen habe, "schwört" der Compiler jedoch auf die folgende Zeile

iMA_OpenDistance  *= DcD; 

iMA_OpenDistance' - nicht deklarierter Bezeichner - nicht deklarierter Bezeichner. Ich habe das Tutorial und die Hilfe zu Identifikatoren gelesen, aber nichts funktioniert. Können Sie mir sagen, wo ich einen Fehler gemacht habe und wie ich ihn beheben kann?

 
tatianati:

Vielen Dank, Alexey. Ich habe getan, was Sie empfehlen.

Geänderte Eingangsbedingungen

Nachdem ich die Änderungen vorgenommen habe, "schwört" der Compiler jedoch auf die folgende Zeile

iMA_OpenDistance' - nicht deklarierter Bezeichner. Ich habe mein Tutorial und die Hilfe zu Bezeichnern gelesen, aber nichts funktioniert. Können Sie mir sagen, wo ich einen Fehler gemacht habe und wie ich ihn beheben kann?

Offenbar müssen wir die Kräfte der Telepathie einsetzen.

Zuerst gab es nur iMA_OpenDistance, dann wurde sie in 2 Variablen Min_iMA_OpenDistance und Max_iMA_OpenDistance aufgeteilt, so dass die Variable iMA_OpenDistance nicht deklariert ist.

Sie brauchen die Werte der externen Variablen nicht zu ändern. Es ist besser, eine zusätzliche Variable zu deklarieren und mit ihr zu tun, was Sie wollen.

So wie ich es verstehe, ist die Variable vPoint Point*10. Dementsprechend ist Ma_Bid_Diff der Abstand zwischen Bid und dem MA in 4-stelligen Punkten. Und was ist DcD? Meine telepathischen Fähigkeiten reichen nicht aus. Aber trotzdem scheint es mir, dass iMA_OpenDistance *= DcD; unnötig ist. Oder handelt es sich um eine Umrechnung in fünfstellige Punkte? Und wozu?

 
AlexeyVik:

Offenbar müssen wir Telepathie einsetzen.

Zuerst gab es nur iMA_OpenDistance, dann wurde sie in 2 Variablen Min_iMA_OpenDistance und Max_iMA_OpenDistance aufgeteilt, so dass die Variable iMA_OpenDistance nicht deklariert ist.

Sie brauchen die Werte der externen Variablen nicht zu ändern. Es ist besser, eine zusätzliche Variable zu deklarieren und mit ihr zu tun, was Sie wollen.

So wie ich es verstanden habe, ist die Variable vPoint Point*10. Dementsprechend ist Ma_Bid_Diff der Abstand zwischen Bid und dem MA in 4-stelligen Punkten. Was ist DcD? Meine telepathischen Fähigkeiten reichen nicht aus. Aber trotzdem scheint es mir, dass iMA_OpenDistance *= DcD; unnötig ist. Oder handelt es sich um eine Umrechnung in fünfstellige Punkte? Und wozu?



Alexey, du bist wirklich ein Telepath, es ist wirklich eine 5-stellige Übersetzung. Danke für die Klarstellung und dafür, dass ich Min_iMA und Max_iMa anstelle von iMa nicht verstanden habe. Nochmals vielen Dank.

P.S. Wenn Sie einen Telepathie-Kurs anbieten, bin ich der Erste, der sich anmeldet :-)

 

Vielleicht hat jemand einen solchen Berater.

1. eröffnet zwei verschiedene Kauf- und Verkaufsaufträge gleichzeitig

2. wenn einer von ihnen mit Gewinn schließt, werden wieder zwei verschiedene Kauf- und Verkaufsaufträge eröffnet, usw.

Wenn Sie nichts mit dem Verlust von Aufträgen zu tun haben, scheint es recht einfach zu sein. Vielleicht kann jemand es für Sie schreiben? ich wäre Ihnen sehr dankbar!