Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Cree de antemano un archivo apropiado.
Con esta implementación es conveniente/rápido, por ejemplo, copiar matrices de cualquier dimensión (y diferentes) entre sí - sin violar el HDD/SDD.
#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]; \
}
La cuestión es que OnTradeTransaction() no se activará inmediatamente después de OrderSend.
En definitiva, aquí sólo hay una multitud de discutidores sin entrar en el tema de la discusión.
Hay dos variantes del algoritmo si hay que hacer algo inmediatamente después de OrderSend():
1. Podemos iniciar un bucle a la espera de las actualizaciones de las listas de pedidos y ofertas.
2. Finaliza OnTick() y espera a que se active OnTradeTransaction().
3. Compruebe por medio de una marca si aparece un nuevo pedido o acuerdo en la lista.
¿Qué puedo hacer en lugar de MODE_MARGINREQUIRED en mql5?
Esto es algo que tienes que preguntar a los desarrolladores, porque ninguno de los miembros del foro lo sabe. He hecho esta pregunta 4 veces en diferentes hilos, una vez incluso obtuve la respuesta: "usa la búsqueda", pero hay más de 100 preguntas en la búsqueda y ni una sola respuesta. El desarrollador no responde a la pregunta, probablemente debido al hecho de que en Five no existe la posibilidad de obtener el margen para pares distintos de la moneda de depósito.
Todo está todavía en bruto en Five y parece que seguirá así, pero hay un OpenGL para todos =)
¿Qué puede sustituir al cuádruple MODE_MARGINREQUIRED en mql5?
OrderCalcMargin() try
Esto es comprensible, pero no funciona desde el indicador
OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),1.0,SymbolInfoDouble(Symbol(),SYMBOL_ASK),One_Lot);
Comment(One_Lot); // залог на 1 лот
Esto es comprensible, pero no funciona con el indicador
OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),1.0,SymbolInfoDouble(Symbol(),SYMBOL_ASK),One_Lot);
Comment(One_Lot);
Esto está escrito explícitamente en la ayuda, que no funciona desde el indicador https://www.mql5.com/ru/docs/runtime/running
Me gustaría que el cálculo fuera independiente del tipo de programa.
Oooh, a mí también me gustaría mucho :)