Fragen Sie! - Seite 95

 

Die kurze Antwort lautet: Nein.

Wie immer ist der Balken 0 sowohl für EAs als auch für Indikatoren zeitlich unvollständig, und sein Hoch, sein Tief, sein Schlusskurs und sein Volumen unterscheiden sich mit ziemlicher Sicherheit von den Werten, die sich ergeben, wenn der Balken abgeschlossen ist und zu Balken 1 wird. Genauer gesagt, der Wert von StochRSICurr am Ende des Tagesbalkens ist erst beim ersten Tick des nächsten Tagesbalkens (und später) bekannt. Ich denke, Sie erweisen sich einen Bärendienst, wenn Sie versuchen, die Werte von Balken 0 zu verwenden, da diese, mit wenigen Ausnahmen, nur den Teilzustand des unvollständigen Balkens wiedergeben.

Soweit ich weiß, wird der Indikator zum Zeitpunkt des ersten iCustom-Aufrufs mit der jeweiligen Parameterwertkombination bei jedem Aufruf der Funktion EA start() aufgerufen. Aufeinanderfolgende iCustom-Aufrufe während des einen EA-Startfunktionsaufrufs an denselben Indikator mit derselben Parameterwertkonfiguration verwenden das, was der erste Aufruf erzeugt hat, wieder. Die nächste EA start()-Funktion, die wiederum iCustom aufruft, ruft den Indikator erneut auf, und zwar im Kontext des Ticks, der den Aufruf der Startfunktion verursacht hat.

In den Augen des Indikators wird er also für jeden Tick, für den der EA ihn aufruft, einmal aufgerufen. Wenn Sie einem MA mitteilen, dass er den Eröffnungskurs oder den Höchstkurs usw. verwenden soll, ändert sich nur, welche Balkenwerte er betrachtet, während die Art des Aufrufs die gleiche bleibt: Er wird bei jedem Tick (den der EA zulässt) aufgerufen.

 
 

Bitte helfen Sie mir

Hallo zusammen,

Niemand will mir helfen. Ich poste ein weiteres Mal mein Problem und bitte um Hilfe.

Ich möchte nur verstehen, warum das Ergebnis ist nicht die mit den beiden Möglichkeiten der Codierung der gleichen Indikator (siehe den Code und Bild).

Manuel

Dateien:
 

langsames Backtesting

Ich wollte mich nur bei Ralph Ronnquist bedanken. Dieser Teil funktioniert jetzt einwandfrei.

Ich habe aber noch eine andere Frage an alle, die mir helfen können. Wenn ich versuche, den Strategy Tester mit meinem EA zu verwenden, ist er extrem langsam. Ich weiß, dass er funktioniert, da ich einige Ergebnisse erhalte, aber ich muss ihn über Nacht laufen lassen, um Ergebnisse für 3 Monate zu erhalten.

Mein EA basiert auf täglichen Trend mit Stochastic RSI Kreuzung (Testen) und dann nur Preis-Aktion. Was könnten die Hauptgründe dafür sein, dass es so langsam ist. Liegt es an der Programmierung oder liegt es daran, dass ich einen externen Indikator verwende, oder liegt es daran, dass der Stochastic RSI viel Energie schluckt.

Ich lasse viele andere EAs laufen und sie sind alle viel schneller als meiner. Mein System ist mit 3GB Ram und Intel Centrino Duo Prozessor sehr leistungsfähig.

Für Vorschläge und Ideen wäre ich dankbar.

Putz

 

Wie man schreibt

Hallo Programmierer

ich bin ein absoluter Neuling in der Mql.4 Kodierung. Ich lerne noch, indem ich bestehende EAs modifiziere.

Folgendes Beispiel für einen schwebenden Pivot:

für aktuellen Bar;

double Flow_Pivot0 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,0,0))/3.0;

für einen Balken zurück

wo ich "Zahl" oder Variable "shift_bars" setzen muss

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0;

Herzlichen Dank!

 

BadGay,

gehen Sie zu:

https://www.mql5.com/en/forum/173124

B.

 

Keine Lösung gefunden

Hallo Bongo

sorry, aber auf diesem Link habe ich keine Antwort gefunden.

Normaler Fall

double High1 = iHigh(NULL,0,0); // Kurs jetzt hoch

wenn ich eine externe Eingabe benötige

double iHigh1 = iHigh(NULL,iHigh12_TimeFrame,Barsback_iHigh1); // Kurshoch jetzt

Grünbedeutet wie viele Balken zurück

aber in meinem Fall, wo ich Barback_xxx einfügen muss, muss die volle Zeile unten einen Balken zurück sein

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0;

Bongo:
BadGay,

weiter zu:

https://www.mql5.com/en/forum/173124

B.
 

Zurück Zeiten

Badguy:
Hallo Bongo

Sorry, aber auf diesem Link habe ich keine Antwort gefunden.

Normaler Fall

double High1 = iHigh(NULL,0,0); // Kurs jetzt hoch

wenn ich eine externe Eingabe benötige

double iHigh1 = iHigh(NULL,iHigh12_TimeFrame,Barsback_iHigh1); // Preishoch jetzt

Grünbedeutet wie viele Balken zurück

aber in meinem Fall, wo ich Barback_xxx einfügen muss, muss die volle Zeile unten einen Balken zurück sein

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0;

Hallo

Wenn Sie die Linie jeweils um 1 Bar nach hinten verschieben wollen.

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0; = Aktueller Tag

double Flow_Pivot1 = (iHigh(NULL,1440,1)+iLow(NULL,1440,1)

+ iClose(NULL,TimeFrame_Flow,1))/3.0; = 1 Tag zurück

double Flow_Pivot1 = (iHigh(NULL,1440,2)+iLow(NULL,1440,2)

+ iClose(NULL,TimeFrame_Flow,2))/3.0; = 2 Tage zurück

double Flow_Pivot1 = (iHigh(NULL,1440,Barback_xxx)+iLow(NULL,1440,Barback_xxx)

+ iClose(NULL,TimeFrame_Flow,Barback_xxx))/3.0;

Barback_xxx = 1, 2, 3, 4 usw. verschiebt jeweils 1 Takt zurück.

 

Hallo Cja

das ist nicht das, was ich meine.

cja:
Hallo

Wenn du die Linie um jeweils 1 Bar zurückschieben willst.

Das ist ein schwebender PIVOT. Richtig?

#1

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0; = Aktueller Tag

Das ist der normale PIVOT für heute. Richtig?

#2

double Flow_Pivot1 = (iHigh(NULL,1440,1)+iLow(NULL,1440,1)

+ iClose(NULL,TimeFrame_Flow,1))/3.0; = 1 Tag zurück

Das ist der normale PIVOT, aber von gestern. Richtig?

#3

double Flow_Pivot1 = (iHigh(NULL,1440,2)+iLow(NULL,1440,2)

+ iClose(NULL,TimeFrame_Flow,2))/3.0; = 2 Tage zurück

Ich brauche #1, aber xx Bars zurück in jedem Timeframe.

Gleiche Funktion wie diese Indi : PrevDayAndFloatingPivot_O.mq4. ( aber nur der FloatingPivot )

Indi angehängt ist

double Flow_Pivot1 = (iHigh(NULL,1440,Barback_xxx)+iLow(NULL,1440,Barback_xxx)

+ iClose(NULL,TimeFrame_Flow,Barback_xxx))/3.0;

Barback_xxx = 1, 2, 3, 4 usw. schaltet jeweils 1 Takt zurück.
 

Vielleicht ist das eine dumme Frage... aber ich hoffe, Sie können mir helfen.

.... wie kann man eine Order(pending order) schließen oder öffnen, wenn eine andere Order den tp erreicht?

Danke b4!