Wie programmiert man? - Seite 157

 

danke wolfe!

Vielen Dank für Ihre Antwort und das Buch! es ist neu für mich, so werde ich in ihm graben und lernen einige mehr. ich werde dann die nächste Version von meinem ea oder anouther Frage, wenn ich eine Straßensperre getroffen.

Eric

 

Zeitfixierung eines Objekts

Ich frage mich, ob mir jemand sagen kann, wie ich ein Objekt (z. B. einen Pfeil) zeitlich fixieren kann, so dass der Pfeil beim Ändern der Diagramm-TF auf der ursprünglichen Zeit bleibt. Ähnlich wie beim Zeichnen einer vertikalen Linie und dem anschließenden Ändern der TF des Diagramms. Danke!

 

wie man .00 ändert oder entfernt

double HiPrice2 = iHigh(NULL,NULL,1);

double LoPrice2 = iLow (NULL,NULL,1);

double Rangehilo= (HiPrice2-LoPrice2);

if (Digits < 4) Rangehilo = Rangehilo * 100; else Rangehilo = Rangehilo * 10000;

Comment("\n", "Range: ",DoubleToStr(Rangehilo,2)+" pip","\n");

Ich versuche, Range PIP zwischen High und Low zu erstellen, aber es wird wie folgt angezeigt

->> Bereich: 37.00 pip

Meine Frage ist, wie kann ich .00 entfernen, damit nur 37 Pips angezeigt werden?

Danke

 

NormalizeDouble(var1,0);

Lux

PS: Habe gerade deinen Code bemerkt: DoubleToStr(Rangehilo,0) - ändern Sie die 2 in 0

 
luxinterior:
NormalizeDouble(var1,0);

Lux

PS: Habe gerade deinen Code bemerkt: DoubleToStr(Rangehilo,0) - ändere die 2 in 0

Ohohhh, nur ein kleiner Fehler..danke luxinterior!

 

stdev-Bänder hinzufügen

Hallo, entschuldigen Sie die dumme Frage, aber bitte helfen Sie mir hier weiter:

Wenn Sie einen Indikator haben, der aus einer Linie im Chartfenster besteht, und Sie möchten dieser Linie Standardabweichungsbänder hinzufügen, wie z.B. Bollinger-Bänder. Wie machen Sie das?

Sagen wir, Ihr Puffer, der Ihren ursprünglichen Indikator darstellt, heißt abc

also deklarieren Sie zuerst diese:

extern int BandsPeriod=20;

extern int BandsShift=0;

extern double BandsDeviations=2.0;

1) Sie ändern

#Eigenschaft indicator_buffers 1 (aus 1 wird 3)

2)

SetIndexPuffer(0,abc);

SetIndexStil(0,DRAW_LINE);

und hinzufügen

SetIndexBuffer(1,UpperBuffer);

SetIndexStyle(1,DRAW_LINE);

SetIndexBuffer(2,LowerBuffer);

SetIndexStyle(2,DRAW_LINE);

SetIndexDrawBegin(0,BandsPeriod+BandsShift);

SetIndexDrawBegin(1,BandsPeriod+BandsShift);

3) fügen Sie den restlichen Code der Bollinger-Bänder in die Initialisierungsschleife ein

int start()

{

int i,k,counted_bars=IndicatorCounted();

double abweichung,summe,oldval,newres;

//----

if(Bars<=BandsPeriod) return(0);

//---- anfänglicher Nullpunkt

if(gezählte_Balken<1)

und so weiter....

4) aber wie zum Teufel ersetzt man den Puffer namens MovingBuffer im ursprünglichen bands.mq4 Code durch den neuen Puffer aus dem Indikator, der "abc" heißt?

Was ist der beste Weg, um dies zu tun?

Sollte ich versuchen, den Code meines Indikators in den bands.mq4-Code einzubauen oder andersherum?

Ich habe ein bekanntes Stück Code namens bands.mq4 angehängt, damit Sie sehen können, womit ich arbeite.

Nochmals Entschuldigung für meine Unkenntnis der Programmierung

Vielleicht kennt jemand eine Anleitung zum Hinzufügen von Stdev-Bändern? Das wäre genau das, was ich jetzt brauche. Vielen Dank

Dateien:
bands.mq4  3 kb
 
 

Kodierung für einen EA

Hallo zusammen,

Ich würde gerne eine Kodierung erstellen, die einen EA vom Handel abhält, wenn er bereits einen profitablen Handel für die aktuelle Handelssitzung durchgeführt hat.

Ich habe eine Reihe von EAs, die ich gebaut habe, die mir erlauben, die Eröffnungszeit und die Schlusszeit für den Handel jeden Tag zu wählen. Der EA wird auch nur bei der Eröffnung jedes neuen Balkens aktiv. Wenn ich also einen Handel laufen habe und er geschlossen wird, weil er entweder meinen Stop-Loss oder meinen Take-Profit erreicht hat, wartet der EA bis zur Eröffnung des nächsten Balkens, bevor er einen neuen Handel eröffnet.

Ein Beispiel: Ich habe den EA so eingestellt, dass er zwischen 6:00 Uhr morgens und 2:00 Uhr nachmittags auf einem Ein-Stunden-Chart handelt. Um 6:00 Uhr morgens wird ein Handel eröffnet. Um 9:23 Uhr ist mein Take-Profit erreicht und der Handel wird geschlossen. Um 10:00 Uhr wird ein neuer Handel eröffnet und bleibt so lange offen, bis entweder der neue Stop-Loss oder Take-Profit erreicht wird oder die Zeit 14:00 Uhr erreicht, woraufhin der Handel geschlossen wird und für den Rest des Tages abgeschlossen ist.

Ich möchte, dass der EA nicht nur die Tageszeit erkennt, sondern auch, ob ich während der Handelssitzung bereits einen gewinnbringenden Handel getätigt habe. Im obigen Beispiel würde der EA also nicht um 10:00 Uhr einen neuen Handel eröffnen, obwohl es noch in der Handelszeit für den Tag ist, weil bereits ein Gewinn erzielt wurde. Andererseits, wenn es mein Stop-Loss war, der im obigen Beispiel getroffen wurde, würde der EA um 10:00 Uhr einen neuen Handel eröffnen, da noch kein Gewinn erzielt wurde.

Ich denke, dass ich die Funktion "OrderSelect" zusammen mit dem Parameter "Mode_History" verwenden müsste, um zuvor geschlossene Geschäfte zu betrachten und dann den Eröffnungskurs mit dem Schlusskurs des Auftrags zu vergleichen, um festzustellen, ob ein Gewinn oder Verlust realisiert wurde. Hört sich das ungefähr richtig an? Da ich ein Anfänger in der Programmierung bin, bin ich mir nicht sicher, ob das der beste Weg ist, um das Problem anzugehen, und wenn ja, werde ich sehr, sehr lange brauchen, um es in das richtige Format zu bringen, damit es richtig funktioniert.

Wenn mir jemand helfen könnte oder mir zumindest ein paar Einblicke oder Ideen geben könnte, wie ich dieses Problem angehen kann, wäre ich sehr dankbar. Wenn mein Beispiel keinen Sinn ergibt, lassen Sie es mich wissen und ich werde versuchen, es besser zu erklären.

Vielen Dank im Voraus für jede Hilfe, die mir angeboten wird.

Ron

 

Prüfen auf Auftragsverluste...

Auf dieser Seite, unter diesem Link https://www.mql5.com/en/forum/176053/page25 befindet sich eine Kopie des DIN_Kukus_EA_V2.6. Wenn Sie sich den Inhalt des EAs ansehen, werden Sie eine Funktion finden, die in der Auftragshistorie nach Auftragsverlusten sucht, so wie Sie es für sich selbst beschrieben haben. Sie können dieses Arbeitsbeispiel verwenden, um die Anzahl der erfolgreichen Trades aus Ihrer Orderhistorie zu extrahieren. Sie können die Funktion auch abändern, um die Historie für einen bestimmten Zeitraum zu extrahieren, aber ich hoffe, das hilft Ihnen, zu sehen, wie Sie das, was Sie vorhaben, für sich selbst erreichen können...

 

Ich möchte die Ergebnisse des Indikators in EA verwenden

Hallo zusammen,

Der Gliding_Channels Indikator zeigt die aktuellen Kanaldaten im Kommentarbereich des Datenfensters an. Er gibt die vertikale Tiefe des Kanals auf dem aktuellen Balken, den Winkel des Kanals (sowohl positiv als auch negativ), die Obergrenze und die Untergrenze an. Ich möchte diese Daten sehen, aber sie stehen im Widerspruch zu den Daten, die mein EA im Kommentarbereich anzeigt, wodurch meine Kommentare flackern.

Ich habe versucht, einen SetIndexBuffer für jedes der vier Daten im Indikator hinzuzufügen, damit ich sie in meinem EA mit iCustom referenzieren kann. Ich war nur in der Lage, einen der vier Werte in meine EA-Kommentare auf diese Weise zu bringen. (Ich hatte auch weiterhin das Flackerproblem).

Kann mir jemand den richtigen Weg zeigen, wie ich auf diese vier Indikatorergebnisse in meinem EA zugreifen kann?

In meinem EA werde ich diese vier Werte "depth, angle, limitHI, and limitLO" nennen.

Dateien: