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
Übrigens ist es seltsam, dass Sie Sleep() von einem Indikator aus aufrufen, denn das ist verboten:
Die Funktion Sleep() kann nicht von benutzerdefinierten Indikatoren aufgerufen werden, da Indikatoren im Schnittstellen-Thread ausgeführt werden und diesen nicht verlangsamen dürfen. Die Funktion prüft alle 0,1 Sekunden den Status der Stoppflagge des Experten.
Übrigens ist es merkwürdig, dass Sie Sleep() aus dem Indikator heraus aufrufen, denn das ist verboten:
Alexej!
Ein ziemlich flüssiges Instrument :)
Es geht nicht um das Instrument (Liquidität), sondern um Verzögerungen, die bei JEDEM Instrument auftreten können.
Ich handele nun schon seit fast 4 Jahren aktiv mit EAs.
Ich habe keine Pausen in einem meiner EAs (außer Pausen, um auf Daten zu warten, die vom Server in INDICATORS heruntergeladen werden),
Wenn Sie eine Pause machen, ist das ein sicheres Zeichen dafür, dass der Algorithmus Ihres EAs nicht richtig funktioniert :(
Ich weiß nicht, was Sleep() überhaupt ist.
Dann ist es seltsam, dass wir beide jetzt über Pausen sprechen...
Nicht im Sinne dessen, was Sleep() tut, sondern im Sinne der Verwendung in meinem Code.
Wie setzen Sie eine Pause in Ihrem Indikator um?
// Custom indicator Check timer function |
//+------------------------------------------------------------------+
bool CheckTimer(const uint start_value, const uint per_value)
{
uint end_value = GetTickCount();
if(end_value < start_value)
{
if((start_value - end_value) >= per_value) return(true);
}
else
{
if((end_value - start_value) >= per_value) return(true);
}
return(false);
}
//+------------------------------------------------------------------+
//| Custom indicator Get server data function |
//+------------------------------------------------------------------+
int LoadServerData(const string a_symbol, ENUM_TIMEFRAMES period)
{
int fail_cnt = 0;
//---
while((fail_cnt < 5) && !IsStopped())
{
long first_date = long(SeriesInfoInteger(a_symbol, PERIOD_M1, SERIES_SERVER_FIRSTDATE));
//---
if(first_date > 0)
{
if(SymbolIsSynchronized(a_symbol))
{
// Print( "LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные..." );
return(GetLocalData(a_symbol, period));
}
}
else
{
uint start_tick = GetTickCount();
//---
while(!CheckTimer(start_tick, 10))
{
fail_cnt--;
fail_cnt++;
}
}
fail_cnt++;
}
// Print( "LoadServerData: Первой даты на сервере нет!" );
return(0);
}
Dies ist ein altes Beispiel.
Da der GetTickCount-Fehler ziemlich hoch ist (bis zu 16 ms), verwende ich jetzt GetMicrosecondCount().
Im Prinzip tue ich das, aber in Forts wird die Order oft erfolgreich angenommen...aber beim nächsten Tick ist noch keine Position da...
Dies ist, wo die zusätzliche Öffnung verrutschen kann .... teilweise lösen das Problem auf diese Weise, wenn der Auftrag angenommen wird, ich die int-Variable zu erhöhen, und nach der Erhöhung die Bedingungen für die Öffnung sind etwas anders, so dass eine neue Öffnung nicht passieren, aber.... wenn der Auftrag nicht angenommen wird die Variable nicht erhöhen, aber hier ist der Trick ... Ich habe den Stand der Dinge falsch eingeschätzt, und es kamen weitere Aufträge hinzu.
Alexej!
Ein ziemlich flüssiges Instrument :)
Es geht nicht um das Instrument (Liquidität), sondern um die Verzögerung, die bei JEDEM Instrument auftreten kann.
Ich handele nun schon seit fast 4 Jahren aktiv mit EAs.
Ich habe keine Pausen in einem meiner EAs (außer Pausen, um auf Daten zu warten, die vom Server in INDICATORS heruntergeladen werden),
Wenn Sie eine Pause machen, ist das ein sicheres Zeichen dafür, dass der Algorithmus Ihres EAs nicht richtig funktioniert :(
Auch ich handele schon sehr lange und nur mit Hilfe von EAs. Aber meistens auf MT4. Ich habe auf MT5 nur mit Expert Advisors unter Verwendung von Limits gehandelt und es gab keine Probleme. Wenn ich ein Scalper oder ein Pipsder bin, mag ich keine Pausen in Expert Advisors, außerdem verpasse ich gerade einen Einstieg.