[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 130
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
aber es gibt einen weiteren Code im EA:
Aber es gibt einen weiteren Code im EA:
Fügen Sie z.B. Print("close by CloseMarket ", j); in diese Funktion ein und etwas ähnliches in die vorhergehende, die Sie gepostet haben. Führen Sie sie aus und schauen Sie sich die Protokolle an, um zu sehen, welche dieser Ausdrucke erscheint, um zu analysieren, welcher auslöst. protokollieren Sie dann in ähnlicher Weise die Werte der Variablen, die in den Close-Ausführungsbedingungen überprüft werden, und finden Sie die Gründe für ihre Auslösung...
Und was hindert Sie daran, den EA genau auf das Fenster zu setzen, in dem Sie zeichnen wollen?
Mein EA arbeitet besser auf M1, weil es besser auf M1 ist und öffnet 1 Handel auf M5 bar Eröffnung, es auch füllt, wenn die Bedingungen erlauben. Ich verwende auch Indikatoren für M5 und andere TFs. Und es ist besser, auf M1 bei der Bar-Eröffnung zu testen, während er auf anderen TFs mit allen Ticks schlecht testet.
Ich zeichne nicht, ich sehe nur die Ergebnisse der vom EA durchgeführten Berechnungen, die in einigen Sekunden angezeigt werden, um sicherzustellen, dass alles in Ordnung ist. Vielen Dank für Ihre Aufmerksamkeit und Hilfe!
Mein EA funktioniert besser auf M1, da er besser auf M1 trawlt und 1 Handel auf M5 Bar Eröffnung öffnet, auch Nachfüllungen, wenn die Bedingungen erlauben. Und ich verwende Indikatoren bei M5 und anderen TFs. Und es ist besser, auf M1 bei der Bar-Eröffnung zu testen, während er auf anderen TFs mit allen Ticks schlecht testet.
Ich zeichne nicht, ich sehe nur die Ergebnisse der vom EA durchgeführten Berechnungen, die in einigen Sekunden angezeigt werden, um sicherzustellen, dass alles in Ordnung ist. Vielen Dank für Ihre Aufmerksamkeit und Hilfe!
Sowohl auf M1 als auch auf M5 stammen die Ticks aus derselben Quelle, und Sie können einen beliebigen Zeitrahmen aus einem beliebigen Diagramm verwenden, ersetzen Sie einfach Close[] durch iClose usw. Um es besser zu testen, müssen Sie bessere fxt-Dateien von Ticks machen, hier ist ein Beispiel, aber im Allgemeinen Google, gibt es eine Menge Informationen zu diesem Thema.
Die Praxis hat gezeigt, dass es besser ist, auf Op zu eröffnen und auch besser zu testen, als auf Ticks. Ich bin überhaupt nicht scharf auf Zecken. Wenn das Depo es zulässt, werde ich vielleicht auf eine höhere TF umsteigen, die an einem Tag bessere Ergebnisse zeigt. Ich lasse keine Angebote für die Nacht, um gut zu schlafen. Nochmals vielen Dank!
Print("Close by CloseMarket ", j); in dieser Funktion und etwas Ähnliches in der vorhergehenden, die Sie gepostet haben. Führen Sie sie aus und schauen Sie im Log nach den Ergebnissen dieser Drucker, um zu analysieren, welcher auslöst. Dann protokollieren Sie ebenfalls die Werte der Variablen, die in den Close-Bedingungen geprüft werden, und finden Sie die Gründe für deren Auslösung...
Die Praxis hat gezeigt, dass es besser ist, auf Orep zu öffnen und auch besser zu testen als auf Zecken. Und mit Zecken habe ich überhaupt nichts am Hut. Wenn das Depo es zulässt, werde ich vielleicht auf eine höhere TF umsteigen, die innerhalb eines Tages bessere Ergebnisse zeigt. Ich lasse keine Angebote für die Nacht, um gut zu schlafen. Nochmals vielen Dank!
Lieber Herr Programmierer! Ich kann keine horizontale Linie durch den maximalen numerischen Wert des MACD-Indikatorfensters zeichnen.
Code
#property indicator_separate_window
#Eigenschaft indicator_buffers 3
#Eigenschaft indicator_color1 Lime
#Eigenschaft indicator_color2 Rot
//--- Puffer
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double topBuffer[];
bool initFinished=false; // Fügen Sie eine Variable hinzu, die den Status der Initialisierung speichert.
// false - die Initialisierung ist noch nicht erfolgt.
// wahr - wurde initialisiert
//+------------------------------------------------------------------+
//| Benutzerdefinierte Initialisierungsfunktion für Indikatoren |
//+------------------------------------------------------------------+
int init()
{
//---- Indikatoren
SetIndexStyle(0,DRAW_LINE);
SetIndexPuffer(0,ExtMapPuffer1);
SetIndexStyle(1,DRAW_LINE);
SetIndexPuffer(1,ExtMapPuffer2);
SetIndexStyle(2,DRAW_NONE);
SetIndexPuffer(2,topPuffer);
//----
zurück(0);
}
//+------------------------------------------------------------------+
//| Benutzerdefinierte Indikator-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
zurück(0);
}
//+------------------------------------------------------------------+
//| Benutzerdefinierte Indikator-Iterationsfunktion |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted(),
Grenze;
if(gezählte_Balken>0)
gezählte_Balken--;
limit=Balken-gezählt_Balken;
//----
for(int i=0;i<limit;i++)
{
ExtMapBuffer1[i]=iMACD(0,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);
ExtMapBuffer2[i]=iMACD(0,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,i);
if(initFinished==false)
{
IndikatorKurzname("MACD_max-min");
int win_idx=WindowFind("MACD_max-min");
// Ermitteln der Nummer des Teilfensters unseres Indikators
if(win_idx<0)
{
// Wenn die Nummer des Unterfensters -1 ist, liegt ein Fehler vor.
Print("Fenster nicht gefunden");
zurück(0);
}
double top=WindowPriceMax(win_idx);
//Ermittelt den maximalen Wert der vertikalen Skala des angegebenen Unterfensters des aktuellen Diagramms
ObjectCreate("max",OBJ_HLINE,win_idx,0,top);
// Zeichnen einer horizontalen Linie in einem Unterfenster unseres Indikators
ObjectSet("max",OBJPROP_COLOR,Yellow);
ObjectSet("max",OBJPROP_WIDTH,0);
WindowRedraw();
// Das Fenster neu zeichnen, um die Linie zu sehen
initFinished=true;
// Zeichnung ist beendet
}
topPuffer[i]=top;
}
//----
zurück(0);
}
//+------------------------------------------------------------------+
Es sieht aus wie in der Zeile
double top=WindowPriceMax(win_idx);
top-Variable erhält keinen Wert und in der
ObjectCreate("max",OBJ_HLINE,win_idx,0,top);
stattdessen (d.h. anstelle der Variablen top) erhalte ich automatisch 0 (Null). Ich erhalte also eine Nullzeile im gewünschten Fenster und in der gewünschten Farbe. topBuffer[] ist ebenfalls leer. Wenn in dieser Zeile anstelle der Variable top ein numerischer Wert steht, nimmt die Zeile diesen festen Wert an, irgendwo habe ich einen klinischen Fehler, helfen Sie mir zu verstehen!
IndicatorShortName sollte nach init() verschoben werden