Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Crie previamente um ficheiro apropriado.
Com esta implementação é conveniente/rápido, por exemplo, copiar matrizes de qualquer dimensão (e diferentes) umas para as outras - sem violar o 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]; \
}
A questão é que a OnTradeTransaction() não irá acionar imediatamente após o OrderSend.
Em resumo, há apenas uma multidão de argumentistas aqui sem entrar no assunto da discussão.
Existem duas variantes do algoritmo se algo tiver de ser feito imediatamente após OrderSend():
1. Podemos iniciar um loop à espera de actualizações das listas de encomendas e ofertas.
2. Termine OnTick() e espere a OnTradeTransaction() acionar.
3. Marque com um visto para ver se uma nova ordem ou negócio aparece na lista.
O que posso fazer em vez do MODE_MARGINREQUIRED em mql5 ?
Isso é algo que você precisa perguntar aos desenvolvedores, porque nenhum dos membros do fórum sabe disso. Fiz esta pergunta 4 vezes em diferentes tópicos, uma vez até obtive a resposta: "use search", mas há mais de 100 perguntas em busca e não há uma única resposta. O desenvolvedor não está respondendo à pergunta, provavelmente devido ao fato de que em Cinco não há possibilidade de obter a margem para pares diferentes da moeda de depósito.
Tudo ainda está cru em Cinco e parece que vai ficar assim, mas há um OpenGL para todos =)
O que pode substituir o quádruplo MODE_MARGINREQUIRED em mql5 ?
OrderCalcMargin() tente
Isto é compreensível, mas não funciona a partir do indicador
OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),1.0,SymbolInfoDouble(Symbol(),SYMBOL_ASK),One_Lot);
Comment(One_Lot); // залог на 1 лот
Isto é compreensível, mas não funciona com o indicador
OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),1.0,SymbolInfoDouble(Symbol(),SYMBOL_ASK),One_Lot);
Comment(One_Lot);
Isto está escrito explicitamente na ajuda, que não funciona a partir do indicador https://www.mql5.com/ru/docs/runtime/running
Eu gostaria de um cálculo que fosse independente do tipo de programa.
Oooh, eu também gostaria muito :)