Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 234

 
Vitaly Muzichenko:

Eine gute "Ton"-Programmierung ist ein Programm ohne Fehler oder Warnungen, alles andere ist amateurhaft.


Lassen wir die Geschmacklosigkeit hinter uns. Ich gehe davon aus, dass solche Warnungen aus einem bestimmten Grund ausgesprochen werden. Die Frage ist, warum?

 
Artyom Trishkin:
Sie werden das Geld, das der Expert Advisor verdient, nicht aus dem Journal abheben. Dementsprechend muss das Programm die Fehler verarbeiten, um entsprechend handeln zu können.

Die Software behandelt sie also trotzdem, wenn es welche gibt, und zeigt Meldungen darüber an. Was übersehe ich hier?

 
Andrey Sokolov:

Die Software behandelt sie also trotzdem, wenn es welche gibt, und zeigt Meldungen darüber an. Was übersehe ich hier?

Nicht das Programm, sondern das Terminal.
Damit das Programm sie verarbeiten kann, müssen sie zunächst abgeholt werden. Um dies zu erreichen, geben die Handelsfunktionen im Fehlerfall false zurück. Wenn das Ergebnis der Funktion falsch ist, müssen Sie den Fehlercode GetLastError() erhalten und ihn in Ihrem Programm behandeln.
 

hallo! der terminal ist nicht zugelassen! wohin soll ich gehen, was soll ich tun?

 
kalmyk87 hallo! das terminal genehmigt nicht! wohin soll ich gehen, was soll ich tun?
Autorisierung = Verbindung zum Server des Brokers, Sie müssen das Internet einschalten. Wenn Demo - Sie Ihr Passwort vergessen haben, eröffnen Sie ein neues Konto. Wenn wirklich - rufen Sie Ihren Makler an.
 
STARIJ:
Autorisierung = Kommunikation mit dem Server des Brokers, Sie müssen das Internet einschalten. Wenn Demo - Passwort vergessen, neues Konto eröffnen. Wenn echt - rufen Sie den Makler an.

Ich habe mein Konto autorisiert... aber das mql5-Profil ist aus irgendeinem Grund nicht autorisiert...

 

Guten Tag. Bitte helfen Sie mir bei dieser Frage...

Der Indikator zieht einen weißen Pegel für den aktuellen Tag aus der CSV-Datei. Erreicht der Kurs dieses Niveau nicht, wird er (das Niveau) auch an den folgenden Tagen mit einer gepunkteten Linie angezeigt. Erreicht der Preis in der Zukunft diese weiß gestrichelte Linie, bleibt er stehen. Nach der Überprüfung der nicht erreichten Niveaus am nächsten Tag betrachtet der Indikator das Niveau jedoch als abgeschlossen und hört auf, es zu zeichnen.

Ich möchte, dass diese gepunktete Linie auf dem Diagramm bleibt. Danke.

//------------- читаю и разбираю строку из файла --

txt_data = FileReadString(file);   дата_уровней = StrToTime(txt_data+" 00:00");
if(FileIsEnding(file)==true)     break; // если конец  Выход из цикла
ArrayInitialize(d_input, 0);
for (int i=0; i<12; i++)  //== считываю уровни в массив
 {
 txt_data = FileReadString(file); 
 d_input[i] = replace_dot(txt_data);
 if ( FileIsLineEnding(file) ) break;
 }

if(уровни == Daily)
  {
   double white = d_input[4];
   t0 = дата_уровней + 1*PeriodSeconds(PERIOD_H1);
   t1 = дата_уровней + 23*PeriodSeconds(PERIOD_H1);
     Draw_Level("white", white, c_day_3, STYLE_SOLID, толщина); 
      if(показ_неотработок)
    if( !check_white_level(дата_уровней, white) )
     draw_line(t0, white, c_day_3) ;
  }
//   отображение  уровней 
void Draw_Level(string name, double _level, color _colr, int _style, int _width)
{
string o_name = i_name +"_"+ name +"_"+ TimeToStr(t0,TIME_DATE);
if (_level>0)
 {
  if (ObjectFind(o_name) != 0)
   ObjectCreate(o_name, OBJ_TREND, 0, t0, _level, t1, _level);
  ObjectSet(o_name, OBJPROP_TIME1, t0);
  ObjectSet(o_name, OBJPROP_PRICE1, _level);
  ObjectSet(o_name, OBJPROP_TIME2, t1);
  ObjectSet(o_name, OBJPROP_PRICE2, _level);
  ObjectSet(o_name, OBJPROP_COLOR, _colr);
  ObjectSet(o_name, OBJPROP_STYLE, _style);
  if(_style == STYLE_DOT)   ObjectSet(o_name, OBJPROP_WIDTH, 1);
    else     ObjectSet(o_name, OBJPROP_WIDTH, _width);
  ObjectSet(o_name, OBJPROP_RAY, false);  // луч
  ObjectSetText(o_name, DoubleToStr(_level, 4) );
  ObjectSetInteger(0, o_name, OBJPROP_SELECTABLE, False); 
   ObjectSetInteger(0, o_name, OBJPROP_HIDDEN, True);  
   ObjectSetString(0, o_name, OBJPROP_TOOLTIP, "\n"); // убираю всплывающую надпись
 }
}
// проверка_отработки уровня
bool check_white_level(datetime t_open, double _level)
{
if (_level <= 0) return(False);
int bar0 = iBarShift(NULL, 0, t_open);
double max = High[iHighest(NULL, 0, MODE_HIGH, bar0, 0)];
double min = Low[iLowest(NULL, 0, MODE_LOW, bar0, 0)];
if( _level <= max && _level >= min )
  return(TRUE);
return(False);
}
void draw_line(datetime begin, double _level, color _clr)
{
if (_level <= 0) return;
string o_name = i_name +"_wh1_"+ TimeToStr(begin,TIME_DATE);
datetime t_0 = begin ;
datetime t_1 = TimeCurrent() ;
  if (ObjectFind(o_name) != 0)
   ObjectCreate(o_name, OBJ_TREND, 0, t_0, _level, t_1, _level);
  ObjectSet(o_name, OBJPROP_TIME1, t_0);
  ObjectSet(o_name, OBJPROP_PRICE1, _level);
  ObjectSet(o_name, OBJPROP_TIME2, t_1);
  ObjectSet(o_name, OBJPROP_PRICE2, _level);
  ObjectSet(o_name, OBJPROP_COLOR, _clr);
  ObjectSet(o_name, OBJPROP_STYLE, STYLE_DOT);
   ObjectSet(o_name, OBJPROP_WIDTH, 1);
    ObjectSet(o_name, OBJPROP_RAY, false);  // луч
    ObjectSetInteger(0, o_name, OBJPROP_SELECTABLE, False); 
  ObjectSetInteger(0, o_name, OBJPROP_HIDDEN, True);  
  ObjectSetString(0, o_name, OBJPROP_TOOLTIP, "\n"); // убираю всплывающую надпись
}
 
HELFEN SIE MIR ZU VERSTEHEN, WAS EINE ANLEIHE IST
1) Wie berechne ich meine Kaution? Wie kann ich diesen Wert in EA ermitteln?
2) Wie berechne ich eine Marge für die Sperrung? Wie erhalte ich diesen Wert in meinem EA?
3) Wie erhalte ich den Margenwert aus dem Ticket eines offenen Auftrags? Ich konnte keine Funktionen wie OrderMargin() finden, obwohl ich die Marge bei Aufträgen im Terminal sehen kann (oder liegt sie?).
4) Handelt es sich bei der Kaution um einen Parameter, der einmalig zum Zeitpunkt der Auftragseröffnung festgelegt wird, oder wird sie bei jedem neuen Auftragseingang zum aktuellen Kurs neu berechnet (floating)?

Ist die Formel für die manuelle Berechnung der Kaution korrekt?
(base_lot * trade_lot * current_rate%%%%%USD) / leverage = USD margin
 
smart_man:
HELFEN SIE MIR ZU VERSTEHEN, WAS EINE KAUTION IST
1) Wie berechne ich die Kaution? Wie erhalte ich diesen Wert in meinem EA?
2) Wie berechne ich eine Marge für die Sperrung? Wie erhalte ich diesen Wert in meinem EA?
3) Wie erhalte ich den Margenwert aus dem Ticket eines offenen Auftrags? Ich konnte keine Funktionen wie OrderMargin() finden, obwohl ich die Marge bei Aufträgen im Terminal sehen kann (oder liegt sie?).
4) Handelt es sich bei der Kaution um einen Parameter, der einmalig zum Zeitpunkt der Auftragseröffnung festgelegt wird, oder wird sie bei jeder Auftragseröffnung zum aktuellen Kurs neu berechnet (floating)?

Ist die Formel für die manuelle Berechnung der Kaution korrekt?
(base_lot * trade_lot * current_rate%%%%%USD) / leverage = USD margin

1)

 margin =AccountInfoDouble(ACCOUNT_MARGIN);                        //-Размер зарезервированных залоговых средств на счете  в валюте депозита

2) nicht verwenden

3) Die Formel ist dieselbe wie die Ihre, nur ist es statt "current_%%%%%USD" der offene Preis der Position.

4) Parameter ist festgelegt


Richtig

 
Alekseu Fedotov:

1)

2) nicht verwenden

3) Die Formel ist dieselbe wie die Ihre, nur ist es statt "current_%%%%%USD" der offene Preis der Position.

4) Parameter ist festgelegt


Richtig

Ich danke Ihnen!

2) Habe Informationen gefunden, dass die Formel die gleiche ist, nur am Ende noch alles durch 2 teilen, weiß aber nicht, ob das wirklich stimmt

3) Eröffnungspreis der Position, der durch OrderOpenPrice() ?

5) Eine weitere Frage, wenn eine Eröffnung geplant ist, dann müssen vorher alle zukünftigen Kosten des Auftrags berechnet werden (Höhe der Marge, Höhe des Gewinns und des Verlusts, aber hier müssen wir auch den Punktwert berechnen, die Verfügbarkeit von freien Mitteln prüfen, das Limit in Prozent der freien Mittel für das Risiko auf einmal, habe ich etwas anderes übersehen? Oder gibt es einen anderen Weg? Gibt es eine Inanspruchnahme, sollte sie ebenfalls berechnet werden?

5.1) Wie berechne ich den Pip-Wert?

5.2) Wie prüfe ich, ob ich über freie Mittel verfüge?

Ich stelle diese Fragen, weil es schwierig ist, sie allein zu verstehen, da es so viele Besonderheiten gibt, wie z. B. die Buchhaltung.

Grund der Beschwerde: