Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
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
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;
BadGay,
weiter zu:
https://www.mql5.com/en/forum/173124
B.Zurück Zeiten
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.
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!