[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 408

 
Zhunko:

Es ist schwer zu sagen, wie es um die zugewiesene Person steht. Da müssen Sie die Metakwots fragen.

Ich habe Victor sofort beim Wort genommen, aber... um Zweifel zu zerstreuen, habe ich einfach zu den Metaquotes geschrieben.

Zhunko:

Ich habe mein echtes Konto in MRC sperren lassen, weil ich häufig Charts öffne und aktualisiere. Dies ist keine MQL4-Funktion, sondern ein hauseigener Diagrammbetrachter

Was meinen Sie mit "häufig ein Diagramm öffnen "? Ich verstehe, was Sie mit dem Aktualisieren von Marktumgebungsvariablen meinen, aber ich verstehe nicht, was mit dem Öffnen und Aktualisieren eines Diagramms ist...

Zhunko:

Vielleicht greift MarketInfo() zum Beispiel auf den Server zu oder erhält nur einen Teil der Daten aus der Marktübersicht.

Ich habe an den Kundendienst geschrieben und werde hier antworten, sobald sie antworten!
 
Andrew245:

Das habe ich vermutet, aber ich kann sie nicht finden, diese Stop-Loss-Parameter
https://docs.mql4.com/ru/trading/OrderSend
 

Ich habe einmal eine Frage zur Nutzung von Bibliotheken gestellt. Ich war allerdings ein wenig verwirrt.

So wie ich es verstehe, ist die Bibliothek ein Satz von Funktionen mit Code, der, ich weiß nicht mehr genau, wie er heißt, "geschlossen" ist, d.h. es bedeutet, dass der Code der Bibliotheksfunktion im Prozess durch nichts von außen beeinflusst wird.

Es ist logisch, dass es sehr praktisch ist, wenn alle häufig verwendeten und nicht nur die einzigen Funktionen aus dem EA ausgelagert werden. Aber wozu brauchen wir dann die Inludes? Schließlich funktionieren Bibliotheken auch ohne sie. Einschlüsse sind also nicht erforderlich? Wer benutzt sie?

 
pako:

Sind 10 % pro Jahr eine gute oder eine schlechte Sache?

Nun, es heißt immer, das Wichtigste sei, die Bilanzkurve flach zu halten, und mit MM könne man seine Gewinne steigern. Oder ist das nicht so?
 
Dmido:

Nun, es heißt immer, die Hauptsache sei, die Bilanzkurve flach zu halten, und um die Gewinne zu steigern, könne man MM einsetzen. Oder ist das nicht so?


Versuchen Sie, die

wenn der Kolianer nicht kommt.

 
TarasBY:
Der aktuelle Tag beginnt am Anfang des aktuellen D1-Balkens (iTime (NULL, PERIOD_D1, 0)), aber Sie suchen nicht nach einfachen Wegen?! :)))


funktioniert nicht.

iTime (NULL, PERIOD_D1, 0) druckt 137082240

und in die Funktion eingefügt wird, druckt die gesamte verfügbare Historie der Trades, aber nicht die Trades für heute.....

GetProfitFromDateInCurrency(NULL,-1,-1,(iTime (NULL, PERIOD_D1, 0))); 
видимо правильнее будет GetProfitFromDateInCurrency(NULL,-1,-1,(TimeCurrent()-iTime (NULL, PERIOD_D1, 0)));   НО И ТУТ РЕЗУЛЬТАТ ВСЕ СДЕЛКИ, ВМЕСТО СЕГОДНЯШНИХ
 
lottamer:


funktioniert nicht.

iTime (NULL, PERIOD_D1, 0) druckt 137082240

und in die Funktion eingefügt wird, druckt die gesamte verfügbare Transaktionshistorie, nicht nur die heutigen Transaktionen.....

Wenn Sie GetProfitFromDateInCurrency() verwenden (Original - das ist WICHTIG: Ich weiß nicht, was Sie in Ihrer Version dort haben müssen), dann muss die Funktion wie folgt aufgerufen werden:
GetProfitFromDateInCurrency (Symbol(), -1, -1, iTime (NULL, PERIOD_D1, 0));

und die Funktion liefert einen Gewinn für die seit Beginn des aktuellen Tages abgeschlossenen Aufträge.

Und der ganze Unsinn im Code wird über Print() abgefangen.

 
hoz:
Was meinen Sie mit "häufiges Öffnen des Diagramms"? Ich verstehe die Aktualisierung der Variablen der Marktumgebung, aber ich verstehe nicht das Öffnen und Aktualisieren des Diagramms...
Wenn Sie ein Diagramm öffnen und aktualisieren, werden auf dem Server neue Daten angefordert. Einige gierige Maklerfirmen ziehen es vor, ihr Geld nicht für leistungsfähigere Server und breitere Kanäle auszugeben, sondern es in ihren Taschen zu verteilen. Sie müssen die Anzahl der Anfragen des Terminals begrenzen, damit ein schwacher Server nicht "hängen bleibt". MRC hat nur 2000 Anfragen pro Tag. Das ist 10 Mal weniger als die Anzahl ihrer Instrumente multipliziert mit der Anzahl der TFs, ohne Berücksichtigung der Handelsaufträge.
hoz:

Ich habe einmal eine Frage zur Nutzung von Bibliotheken gestellt. Ich war allerdings ein wenig verwirrt.

So wie ich es verstehe, ist die Bibliothek ein Satz von Funktionen mit Code, der, ich weiß nicht mehr genau, wie er heißt, "geschlossen" ist, d.h. es bedeutet, dass der Code der Bibliotheksfunktion im Prozess durch nichts von außen beeinflusst wird.

Es ist logisch, dass es sehr praktisch ist, wenn alle häufig verwendeten und nicht nur die einzigen Funktionen aus dem EA ausgelagert werden. Aber wozu brauchen wir dann die Inludes? Schließlich funktionieren Bibliotheken auch ohne sie. Einschlüsse sind also nicht erforderlich? Wer benutzt sie?

Die Einschlüsse in MQL4 helfen, den Code zu ordnen. So sieht zum Beispiel ein Indikator für 3000 Linien in meinem Artikel aus:

#property indicator_separate_window

#include <stdlib.mqh>
#include <stderror.mqh>
#include <ServicesMT4.mqh>
#include <Spectrum.mqh>
#include <TimeFrames.mqh>
#include <GeneralFunctions.mqh>
#include <DynamicArray2.mqh>
#include <SPECTRUM_IND_Macros.mq4>
#include <SPECTRUM_IND_Preset_Buffers.mq4>
#include <SPECTRUM_IND_Extern_Variable.mq4>
#include <SPECTRUM_IND_Global_Variable.mq4>
#include <SPECTRUM_IND_Functions_Project.mq4>

void init()
 {
  int    i = 0;
  string i_sName = StringSubstr(WindowExpertName(), 0, StringLen(WindowExpertName()) - 8);
  g_nCounterStart = 0;
  #include <SPECTRUM_IND_Check_Param.mq4>
  if (Postfix == "") g_sNameIndicator = i_sName + g_sPostfix;
  else g_sNameIndicator = i_sName + g_sPostfix + Postfix + " ";
  g_sNameObject = g_sNameIndicator + "Derivative ";
  g_sNameLine = g_sNameIndicator + "Line ";
  g_sNameSpectrum = g_sNameIndicator;
  IndicatorShortName(g_sNameIndicator);
  #include <SPECTRUM_IND_Extern_Variables_In_Array.mq4>
  #include <SPECTRUM_IND_Buffers.mq4>
  ServiceRefreshChart(WindowHandle(Symbol(), 0), 1000);
 }

void deinit()
 {
  ObjectsDeleteAll(g_nWindow);
  DeleteObject();
 }

void start()
 {
  if (g_bStop) return;
  #include <SPECTRUM_IND_Start_Variable.mq4>
  #include <SPECTRUM_IND_Start_Initialize.mq4>
  #include <SPECTRUM_IND_Optimization.mq4>
  #include <SPECTRUM_IND_Calc_Filters.mq4>
  #include <SPECTRUM_IND_Calc_Last_Derivative.mq4>
  #include <SPECTRUM_IND_Show_Lines.mq4>
  #include <SPECTRUM_IND_Show_Sum.mq4>
  g_nBegin = s_nBegin;
  g_nTemp_SizeChart = s_nSizeChart;
  g_tLastTime = iTime(NULL, g_nPeriod, 0);
  ArrayCopy(g_adTemp_PriceBeginBar, s_adPriceBeginBar);
 }
Die 5 Zeilen von ähnlichen Operationen akkumulieren, oder ein separater Algorithmus, oder einige andere Kriterien der Gruppe und es kann in einer separaten Datei zugeordnet werden. Dennoch ist es besser, Code bis zu 200 Zeilen zu betrachten, als 10000 Zeilen auf einmal. Sie werden müde werden, daran zu feilen. In MQL4 ist es besser, Funktionsaufrufe zu vermeiden. Insbesondere in Schleifen. Wenn möglich, ist es besser, die Funktion offen zu legen. Der Code wird viel schneller funktionieren. Einschlüsse sind hier von großer Hilfe.

Leider erlaubt der Compiler nicht, dass eine Inclusion mehr als einmal in einem Modul verwendet wird. Dies ist in der Regel ein Weg, um sich wiederholenden Code zu sparen.

 
hoz:
Ich habe Victor sofort beim Wort genommen, aber... um alle Zweifel zu zerstreuen, habe ich einfach zu den Metaquotes geschrieben.
...

Victor hat absolut und vollkommen Recht. Die Anfrage an den Server, die beim Öffnen der Karte kommt, ist keine Anfrage der Emulatorfunktion, sondern eine manuelle Aktion des Benutzers.

 
Integer:

Victor hat absolut und vollkommen Recht. Die Anfrage an den Server, die beim Öffnen des Diagramms kommt, ist keine Anfrage einer Emulatorfunktion, sondern eine manuelle Benutzeraktion.

Die Anforderung des Diagramms ist ähnlich wie die Anforderung von RefreshRates(). Ich habe keinen Zweifel, dass es sich um den Server handelt. Das heißt, RefreshRates() ist keine Handelsfunktion.

Ich werde die Metacvots fragen müssen.