Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1440

 
Aleksey Vyazmikin #:

Ich denke, was OnTick meinte, war.

Ja, das stimmt, es ist unscharf.

 
Alexey Viktorov #:

Das ist der Grund, warum viele Leute anfangen, eine Programmiersprache zu lernen. Und damit Sie Ihre illusorische Idee testen können, muss sich jemand hinsetzen und schreiben. Natürlich kann man so einen Enthusiasten finden, der um des Schreibens willen, aus Langeweile oder aus irgendeinem anderen Grund schreiben kann... Aber wenn man sich darauf einlässt und eine Strategie durch LS bekommt, in dem Wissen, dass es nicht funktionieren wird, sich weigert zu schreiben, dann wird man den Verdacht haben, dass man betrogen wurde, eine profitable Strategie hat und in die Büsche geht. Und wer braucht so eine Einstellung? Wenn Sie eine Strategie veröffentlichen und jemand daran interessiert ist, haben Sie Glück. Und so, für Ihr Geld jede Laune....

Sie sind ein interessanter Mensch.

Also haben Sie genug Begeisterung für einen solchen Indikator) https://c.mql5.com/1/237/vgif-ru-19978.gif.

Und Sie wollen nicht zwei Zeilen Code in den RSI einfügen, nur um zu üben, aus Langeweile oder aus anderen Gründen...

 
FYFRX #:

Sie sind ein interessanter Mann.

Sie haben also genug Begeisterung für einen solchen Indikator) https://c.mql5.com/1/237/vgif-ru-19978.gif

Und Sie wollen nicht zwei Zeilen Code in den RSI einfügen, nur um zu üben, aus Langeweile oder aus anderen Gründen...

Nun, wenn Sie wissen, dass es sich um zwei Zeilen handelt, sollten Sie wissen, um welche Zeilen es sich handelt und wo Sie sie einfügen müssen.

 

Guten Morgen und gute Laune allerseits!

Gestern gab es eine Verwirrung mit meinem Expert Advisor. Bis gestern hatte er fast einen Monat lang ohne Probleme getestet, aber gegen Abend funktionierte plötzlich die Berechnung des Risikos in Abhängigkeit von der freien Marge nicht mehr richtig und der EA begann, Positionen mit dem maximal möglichen Lot zu eröffnen. Ich beschloss, eine Kontrollfunktion zu schreiben, die den Handel unter bestimmten Bedingungen erlaubt, um solche "Geschenke" auszuschließen. Ich schrieb sie und fügte sie in den EA-Code ein. Ich weiß nicht, ob diese Funktion geholfen hat oder etwas anderes beim Schreiben passiert ist, aber die Arbeit des Expert Advisors hat sich normalisiert.

Bitte an die geschätzte Community!

Bitte sehen Sie sich den Code an und teilen Sie mit, was der Funktion noch hinzugefügt werden sollte, um solche "Geschenke" für den Handel auf einem echten Konto auszuschließen?

bool Check_Trading()
  {
   bool canTrade=false;
   if(!AccountInfoInteger(ACCOUNT_TRADE_ALLOWED))
     {
      Print("Ошибка разрешения торговли для текущего счёта!", GetLastError());
      canTrade=false;
     }
   if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
     {
      Print("Ошибка разрешения торговли для эксперта!", GetLastError());
      canTrade=false;
     }
   if(!AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING)
     {
      Print("Ошибка при проверке режима расчёта маржи для счёта с режимом хэдж!", GetLastError());
      canTrade=false;
     }
   if(!AccountInfoDouble(ACCOUNT_MARGIN_FREE))
     {
      Print("Ошибка при получении размера свободных средств для открытия позиции!", GetLastError());
      canTrade=false;
     }
   if(!SymbolInfoInteger(_Symbol,SYMBOL_TRADE_CALC_MODE)==SYMBOL_CALC_MODE_FOREX)
     {
      Print("Ошибка способа расчета прибыли и маржи для рынка Форекс по текущему символу!", GetLastError());
      canTrade=false;
     }
   if(!SymbolInfoDouble(_Symbol,SYMBOL_MARGIN_HEDGED))
     {
      Print("Ошибка расчета маржи для позиций по текущему символу для счёта с режимом хэдж!", GetLastError());
      canTrade=false;
     }
   if(!SymbolIsSynchronized(_Symbol))
     {
      Print("Ошибка синхронизации данных по текущему символу!", GetLastError());
      canTrade=false;
     }
   canTrade=true;
   return(canTrade);
  }

Mit freundlichen Grüßen, Vladimir.

 

Ich kann nicht verstehen, wie und was es braucht, es nimmt und liest eine Datei aus Tester\Agent... Ordner in TERMINAL_DATA_PATH, aber ich muss es in TERMINAL_PATH lesen und ich kann nicht den absoluten Pfad verwenden.


 
mwwm #:

Ich kann nicht verstehen, wie und was es braucht, es nimmt und liest eine Datei aus Tester\Agent... Ordner in TERMINAL_DATA_PATH, aber ich muss es in TERMINAL_PATH lesen und ich kann nicht den absoluten Pfad verwenden.

Wenn Sie während des Testens mit Dateien arbeiten müssen, ist es bequemer, zu diesem Zweck einen gemeinsamen Ordner für alle Terminals und Agenten zu verwenden. Dazu genügt es, das Flag FILE_COMMON zu den Datei-Öffnungsoperationen hinzuzufügen.

Sie können diesen Ordner über das Hauptmenü von MetaEditor aufrufen, um die erforderlichen Dateien darin abzulegen: DateiGemeinsamen Datenordner öffnen

 
Yuriy Bykov #:

Wenn es notwendig ist, während der Tests mit Dateien zu arbeiten, ist es bequemer, einen gemeinsamen Ordner aller Terminals und Agenten für diesen Zweck zu verwenden. Zu diesem Zweck genügt es, beim Öffnen von Dateien das Flag FILE_COMMON zu setzen.

Sie können diesen Ordner über das Hauptmenü von MetaEditor aufrufen, um die erforderlichen Dateien darin abzulegen: DateiGemeinsamen Datenordner öffnen

Dankeschön)

 
FYFRX #:

Sie sind ein interessanter Mann.

Sie haben also genug Begeisterung für einen solchen Indikator) https://c.mql5.com/1/237/vgif-ru-19978.gif

Und Sie wollen nicht zwei Zeilen Code in den RSI einfügen, nur um zu üben, aus Langeweile oder aus anderen Gründen...

Dies ist nicht meine Kreation. Erinnern Sie sich an die Monna Lisa in dem Film "Office Romance"?

Was die zwei Zeilen angeht, so habe ich es Ihnen erklärt.

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien.

Fragen von MQL5 MT5 MetaTrader 5-Anfängern

Alexey Viktorov, 2023.01.30 07:17 AM

Das ist der Grund, warum viele Leute anfangen, eine Programmiersprache zu lernen. Und so stellt sich heraus, dass, damit Sie Ihre illusorische Idee testen können, sich jemand hinsetzen wird, um zu schreiben. Natürlich kann man so einen Enthusiasten finden, der um des Schreibens willen, aus Langeweile oder aus irgendeinem anderen Grund schreiben kann ... Aber wenn man sich darauf einlässt und durch die LS-Strategie durchkommt und erkennt, dass es nicht funktionieren wird, sich zu weigern zu schreiben, dann wird man den Verdacht haben, dass man betrogen wurde, eine profitable Strategie hat und in die Büsche geht. Und wer braucht so eine Einstellung? Wenn Sie eine Strategie veröffentlichen und jemand daran interessiert ist, haben Sie Glück. Aber für Ihr Geld, jede Laune...

Schreiben Sie diese Wünsche in ein beliebiges Thema über das Schreiben von freiem Code und jemand wird sicher antworten. Wahrscheinlich auch ich. Auch wenn es unwahrscheinlich ist, ich bin erst in 2-3 Tagen wieder hier...
 
MrBrooklin den Handel unter bestimmten Bedingungen erlaubt, um solche "Geschenke" auszuschließen. Ich schrieb sie und fügte sie in den EA-Code ein. Ich weiß nicht, ob diese Funktion geholfen hat oder etwas anderes passiert ist, während ich sie geschrieben habe, aber die Arbeit des Expert Advisors wurde normalisiert.

Eine Bitte an die geschätzte Community!

Bitte sehen Sie sich den Code an und raten Sie, was der Funktion noch hinzugefügt werden sollte, um solche "Geschenke" für den Handel auf einem echten Konto auszuschließen?

Mit freundlichen Grüßen, Vladimir.

Vladimir, wie haben Sie

   if(!AccountInfoDouble(ACCOUNT_MARGIN_FREE))

in den Typ bool umgewandelt

KONTO_SPIELRAUM_FREI

Der Betrag der freien Mittel auf dem Konto in der Einzahlungswährung, der für die Eröffnung einer Position zur Verfügung steht.

double


Das ist es, worüber mein Auge gestolpert ist. Den Rest will ich mir gar nicht erst ansehen...

 
Alexey Viktorov #:

Vladimir, wie hast du das in einen Bool-Typ umgewandelt?

KONTO_SPIELRAUM_FREI

Betrag der freien Mittel auf dem Konto in der Einzahlungswährung, der für die Eröffnung einer Position zur Verfügung steht

doppelt


Hierüber bin ich gestolpert. Ich möchte mir den Rest nicht einmal ansehen: ....

Hallo Alexey, ich habe so gedacht - wenn freie Mittel auf dem Konto in der Einzahlungswährung, die für die Eröffnung einer Position zur Verfügung stehen, ausreichen, dann ist es richtig. Jetzt weiß ich, dass dieser Wert nur zur Berechnung dient. Ich danke Ihnen für den Hinweis.

Mit freundlichen Grüßen, Vladimir.

Grund der Beschwerde: