Calling the iCustom(Symbol(),Period(),"Examples\\Zigzag".... about a separate class; works in debugging with historical data, but not in real time
- Ich kann Dir zu mt5 nicht helfen, aber
- Du kannst hier Deutsch sprechen,
- trotzdem ist ".. it works .. not .. in real market" zu wenig Dir zu helfen!
Was sagen die logs? Es wird doch eine Auftrag erteilt? Bist Du mit dem Debugger Deinen EA durchgegangen?
Verwende Print oder Comment, um die entscheidenden Variablenwerte einzusehen!
- Ich kann Dir zu mt5 nicht helfen, aber
- Du kannst hier Deutsch sprechen,
- trotzdem ist ".. it works .. not .. in real market" zu wenig Dir zu helfen!
Was sagen die logs? Es wird doch eine Auftrag erteilt? Bist Du mit dem Debugger Deinen EA durchgegangen?
Verwende Print oder Comment, um die entscheidenden Variablenwerte einzusehen!
Im Register Journal steht:
2017.11.29 05:04:23.458 Experts expert M1HochTief (EURUSD,M1) loaded successfully
2017.11.29 05:53:56.252 Network '5092998': scanning network for access points
2017.11.29 05:53:59.952 Network '5092998': scanning network finishedEs kommen
keine Fehler oder so.
Im Register Experten kommt:
2017.11.29 05:04:25.160 M1HochTief (EURUSD,M1) vorher
2017.11.29 05:04:25.359 M1HochTief (EURUSD,M1) zigZagLow[0]: 0.0
2017.11.29 05:04:25.359 M1HochTief (EURUSD,M1) nachher 0
2017.11.29 05:04:25.359 M1HochTief (EURUSD,M1) LetztesTief3: 0.0 LetztesTief2: 0.0 LetztesTief1: 0.0 LetztesTief: 0.0 LetztesTiefMerker: 0.0
2017.11.29 05:04:25.430 M1HochTief (EURUSD,M1) zigZagHigh[0]: 0.0
2017.11.29 05:04:25.430 M1HochTief (EURUSD,M1) LetztesHoch3: 0.0 LetztesHoch2: 0.0 LetztesHoch1: 0.0 LetztesHoch: 0.0 LetztesHochMerker: 0.0
Das bedeutet, das Programm wird geladen, läuft 2mal durch und bleibt dann stehen
Hi Thomas,
Falls du mehr Code postest, kann ich dir helfen.
Grüße, Otto
Naja, wenn keine neuen Positionen eröffnet werden, könnte es sein, dass:
- Du zu ungeduldig bist ;)
- Du einen Fehler in Deiner 'Logik' zu Positionseröffnung hast.
Dazu lass Dir mit Comment() die aktuellen Werte für die Positionseröffnung auf dem Chart anzeigen (so wird das EA-Log nicht so voll wie mit Print()) und Du kannst Deinen EA 'beim Atmen' zuschauen!
(Bei mir werden boolsche Ausdrücke mit "..",(string)boolVar,.. mit true oder false ausgegeben nicht mit 0 und 1 (jedenfalls im MT4)
Hi Thomas,
Falls du mehr Code postest, kann ich dir helfen.
Grüße, Otto
Vielmehr Code ist es nicht. Die Klasse und der Aufruf der Klasse. Alles andere läuft ja.
Dennoch, im Anhang die kompletten Dateien ...
Hab’s selber rausgefunden.
Der Aufruf
zigZagHandle=iCustom(Symbol(),Period(),"Examples\\Zigzag",20,7,5);
Muss schon im Bereich
int OnInit()
stattfinden, dann gibt der ZigZag seine Werte im Bereich
void OnTick()
mit
if(CopyBuffer(zigZagHandle,1,0,7,zigZagHigh)<0)
{ Print("Can't copy ZigZag buffer 1!");
return;
}
Immer zurück
Wenn jedoch der Zigzag in einer eigenen Klasse aufgerufen wird und somit bei jeder Abfrage des nächsten Hochs der Zigzag wiederholt mit
zigZagHandle=iCustom(Symbol(),Period(),"Examples\\Zigzag",20,7,5);
initialisiert wird (siehe oben im Code der Klasse), fängt er nach einiger Zeit an zu spinnen. Manchmal geht er, meistens jedoch nicht.
So sieht nach meinen Test aus
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
My class for the iCustom (Symbol (), Period (), "Examples\\Zigzag"... in the file<identifycandle\SARBBKlassen.mqh>
class CGetHochTief {
int zigZagHandle;
double zigZagLow[];
public:
double GetTief(int FeinheitE ,int AbweichungE, int RueckschritteE) {
zigZagHandle=iCustom(Symbol(),Period(),"Examples\\Zigzag",FeinheitE,AbweichungE,RueckschritteE,0);
if(CopyBuffer(zigZagHandle,2,0,AbweichungE,zigZagLow)<0) { Print("Can't copy ZigZag buffer 1!"); }
return(zigZagLow[0]);
}
};
CGetHochTief GetHochTief;
_______________________________________________________________
Calling the class in the Expertadviser
#include <identifycandle\SARBBKlassen.mqh>
....
void OnTick() {
LetztesTiefMerker = GetHochTief.GetTief(20,7,5);
...
}
_______________________________________________________________
I'm at a loss, does anyone have any idea why it works in the test environment and not in the real market?
I would be very grateful for any tips.
Kind regards - Thomas