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
Legen Sie vorher eine entsprechende Datei an.
Mit dieser Implementierung ist es bequem/schnell, z.B. Arrays beliebiger Dimension (und unterschiedlicher) ineinander zu kopieren - ohne HDD/SDD zu vergewaltigen.
#define ARRAYCOPY(Dest, Source) \
if (ArraySize(Source) > 0) \
{ \
const int handleRAM = FileOpen("\\\\REN\\pipe\\RAM", FILE_READ | FILE_WRITE | FILE_BIN); \
\
if (handleRAM != INVALID_HANDLE) \
{ \
if (FileWriteArray(handleRAM, Source) > 0) \
FileReadArray(handleRAM, Dest); \
\
FileClose(handleRAM); \
} \
}
#define MATRIX_TO_VECTOR(Matrix, Vector) \
if (ArraySize(Matrix) > 0) \
{ \
const int Range1 = ArrayRange(Matrix, 0); \
const int Range2 = ArrayRange(Matrix, 1); \
\
ArrayResize(Vector, Range1 * Range2); \
\
int k = 0; \
\
for (int i = 0; i < Range1; i++) \
for (int j = 0; j < Range2; j++) \
{ \
Vector[k] = Matrix[i][j]; \
\
k++; \
} \
}
// Копирует одномерный массив в двумерный
#define VECTOR_TO_MATRIX(Vector, Matrix) \
if (ArraySize(Vector) > 0) \
{ \
const int Size = ArraySize(Vector); \
const int Range = ArrayRange(Matrix, 1); \
\
ArrayResize(Matrix, Size / Range + ((Size % Range == 0) ? 0 : 1)); \
\
for (int i = 0; i < Size; i++) \
Matrix[i / Range][i % Range] = Vector[i]; \
}
Der Punkt ist, dass OnTradeTransaction() nicht unmittelbar nach OrderSend ausgelöst wird.
Kurz gesagt, es gibt hier nur eine Ansammlung von Streitern, ohne auf das Thema des Streits einzugehen.
Es gibt zwei Varianten des Algorithmus, wenn unmittelbar nach OrderSend() etwas getan werden muss:
1. Wir können eine Schleife starten, in der wir auf die Aktualisierung der Listen der Bestellungen und Angebote warten.
2. Beenden Sie OnTick() und warten Sie auf die Auslösung von OnTradeTransaction().
3. Prüfen Sie durch Ankreuzen, ob ein neuer Auftrag oder ein neues Geschäft in der Liste erscheint.
Was kann ich anstelle von MODE_MARGINREQUIRED in mql5 tun?
Das ist etwas, das Sie die Entwickler fragen müssen, denn keiner der Forumsmitglieder weiß das. Ich habe diese Frage 4 Mal in verschiedenen Threads gestellt, einmal bekam ich sogar die Antwort: "Verwenden Sie die Suche", aber es gibt mehr als 100 Fragen in der Suche und keine einzige Antwort. Der Entwickler beantwortet die Frage nicht, wahrscheinlich aufgrund der Tatsache, dass es in Five keine Möglichkeit gibt, die Marge für andere Paare als die Einzahlungswährung zu erhalten.
Alles ist noch roh in Five und es sieht so aus, als ob das auch so bleiben wird, aber es gibt ein OpenGL für alle =)
Was kann das Vierfache von MODE_MARGINREQUIRED in mql5 ersetzen?
OrderCalcMargin() try
Das ist verständlich, aber es funktioniert nicht mit dem Indikator
OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),1.0,SymbolInfoDouble(Symbol(),SYMBOL_ASK),One_Lot);
Comment(One_Lot); // залог на 1 лот
Dies ist verständlich, funktioniert aber nicht mit dem Indikator
OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),1.0,SymbolInfoDouble(Symbol(),SYMBOL_ASK),One_Lot);
Comment(One_Lot);
Dies wird explizit in der Hilfe geschrieben, die nicht über den Indikator https://www.mql5.com/ru/docs/runtime/running funktioniert.
Ich möchte eine Berechnung, die unabhängig von der Art des Programms ist.
Oooh, ich hätte auch gerne eine Menge :)