Da última vez que fiz uma pergunta sobre a abertura de pedidos, agora tenho uma pergunta sobre o fechamento dos mesmos).
Abaixo está um pedaço de código com funções que abrem ordens e as fecham.
Quando meu consultor especializado está trabalhando, recebo uma "peculiaridade" como esta: por exemplo, 10 pedidos diferentes são abertos e 2 deles são fechados no processo,
Os demais permanecem abertos até o final do teste, embora um fechamento condicional de uma ordem deva ocorrer quando outra for aberta.
if (Totalcena>Cena) { if (OrderTotal()>0) { for (int i=OrdersTotal()-1; i>=0; i--) { se (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==verdadeiro) { if(OrderMagicNumber()==12345)
Da última vez que fiz uma pergunta sobre a abertura de pedidos, agora tenho uma pergunta sobre o fechamento dos mesmos).
Abaixo está um pedaço de código com funções que abrem ordens e as fecham.
Quando meu consultor especializado está trabalhando, recebo uma "peculiaridade" como esta: por exemplo, 10 pedidos diferentes são abertos e 2 deles são fechados no processo,
Os demais permanecem abertos até o final do teste, embora um fechamento condicional de uma ordem deva ocorrer quando outra for aberta.
Outra pergunta sobre os erros 4051 e 134 ao usar OrderClose(), o que eles significam? Eu copiei informações do registro.
134 - sem dinheiro, 4051 - parâmetros ruins passados para a função.
Quanto ao ponto - verifique se a variável magick é atribuída apenas uma vez, de preferência em função init(), caso contrário, cada ordem terá sua própria magick e o resultado será algo como você descreve.
for (int i2=0; i2<ArraySize(symbols1); i2++) { if (symbols1[i2]==OneSymbol) int PosSymbolIn1array=i2; } return(-1);
string OneSymbolMod = symbols2[PosSymbolIn1array]; int NewArraySize = ArraySize(textMod)+1; ArrayResize(textMod,NewArraySize); textMod[i1]=OneSymbolMod; string textNew; textNew=StringConcatenate(textMod[1],textMod[2]...);//собрать массив в строку вообще не могу :( return (textNew); } }
Eu sei que é errado e não consigo montar o conjunto em um fio. Por favor, ajude.
for (int i2=0; i2<ArraySize(symbols1); i2++) { if (symbols1[i2]==OneSymbol) int PosSymbolIn1array=i2; } return(-1);
string OneSymbolMod = symbols2[PosSymbolIn1array]; int NewArraySize = ArraySize(textMod)+1; ArrayResize(textMod,NewArraySize); textMod[i1]=OneSymbolMod; string textNew; textNew=StringConcatenate(textMod[1],textMod[2]...);//собрать массив в строку вообще не могу :( return (textNew); } }
Eu sei que é errado e não consigo montar o conjunto em um fio. Por favor, ajude.
Você deveria ter encontrado o índice do personagem na matriz de substituição, então por que criar outra matriz?
Tente adicioná-la a uma variável de texto simples no primeiro laço:
ReplaceSymbolsInStr(texto da corda)
{
símbolos de corda1[] = {"a", "b", "c", "d"};
símbolos de corda2[] = {"1", "2", "3", "4"};
string textNew="";
int textLen = StringLen(texto);
para (int i1=0; i1<textLen; i1++) { string OneSymbol = StringSubstr(text,i1,1);
for (int i2=0; i2<ArraySize(symbols1); i2++)
{ if (symbols1[i2]==UmSímbolo) {textNew = textNew + symbols2[i2]; i2=ArraySize(symbols1); }
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Os DoCs têm um limite para o número de negócios?
Alguns têm não apenas um limite no número de acordos, mas até mesmo um limite no número de solicitações.
Eles são tão inventores! :-))
Os demais permanecem abertos até o final do teste, embora um fechamento condicional de uma ordem deva ocorrer quando outra for aberta.
Outra pergunta sobre os erros 4051 e 134 ao usar OrderClose(), o que eles significam? Eu copiei informações do registro.
A última opção parece ter funcionado mais ou menos bem. Embora seja possível simplificar os cálculos
Por favor, avise! Como posso fechar dois pedidos pendentes com a mesma magia, mas com lotes diferentes.
int start()
{
duplo MyLastBullOpenPrice=0;
for(int Cnt=0;Cnt<OrdersTotal();Cnt++)
{
OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==12345 && OrderType()==OP_BUY)
{
MyLastBullOpenPrice=OrderOpenPrice();
duplo Cena=OrderOpenPrice()+5*Point;
duplo Totalcena= Licitação;
if (Totalcena>Cena)
{
if (OrderTotal()>0)
{ for (int i=OrdersTotal()-1; i>=0; i--)
{ se (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==verdadeiro)
{ if(OrderMagicNumber()==12345)
{ if(OrderDelete(OrderTicket())==verdadeiro)
{
Print("Error = ",GetLastError()); return(0);
}
} } } }
}
}
return(MyLastBullOpenPrice);
}
Os demais permanecem abertos até o final do teste, embora um fechamento condicional de uma ordem deva ocorrer quando outra for aberta.
Outra pergunta sobre os erros 4051 e 134 ao usar OrderClose(), o que eles significam? Eu copiei informações do registro.
134 - sem dinheiro, 4051 - parâmetros ruins passados para a função.
Quanto ao ponto - verifique se a variável magick é atribuída apenas uma vez, de preferência em função init(), caso contrário, cada ordem terá sua própria magick e o resultado será algo como você descreve.
Por favor, ajude-me a adicionar (ou escrever) uma função de substituição de caracteres para uma cadeia de caracteres através de matrizes.
Ter duas matrizes de personagens:
símbolos de corda1[] = {"a", "b", "c", "d"};símbolos de corda2[] = {"1", "2", "3", "4"};
Tentou escrever uma função que substituiria o texto badc por 2143, com base nas arrays, acabou assim:
string ReplaceSymbolsInStr(string text){
string textMod[] ={""};
string symbols1[] = {"a","b","c","d"};
string symbols2[] = {"1","2","3","4"};
int textLen = StringLen(text);
for (int i1=0; i1<textLen; i1++)
{
string OneSymbol = StringSubstr(text,i1,1);
for (int i2=0; i2<ArraySize(symbols1); i2++)
{
if (symbols1[i2]==OneSymbol) int PosSymbolIn1array=i2;
}
return(-1);
string OneSymbolMod = symbols2[PosSymbolIn1array];
int NewArraySize = ArraySize(textMod)+1;
ArrayResize(textMod,NewArraySize);
textMod[i1]=OneSymbolMod;
string textNew;
textNew=StringConcatenate(textMod[1],textMod[2]...);//собрать массив в строку вообще не могу :(
return (textNew);
}
}
Eu sei que é errado e não consigo montar o conjunto em um fio. Por favor, ajude.
Alguns têm não apenas um limite no número de acordos, mas até mesmo um limite no número de solicitações.
Eles são tão inventores! :-))
Por favor, ajude-me a adicionar (ou escrever) uma função de substituição de caracteres em uma cadeia através de matrizes.
Ter duas matrizes de personagens:
símbolos de corda1[] = {"a", "b", "c", "d"};símbolos de corda2[] = {"1", "2", "3", "4"}
Tentou escrever uma função que substituiria o texto badc por 2143, com base nas arrays, acabou assim:
string ReplaceSymbolsInStr(string text){
string textMod[] ={""};
string symbols1[] = {"a","b","c","d"};
string symbols2[] = {"1","2","3","4"};
int textLen = StringLen(text);
for (int i1=0; i1<textLen; i1++)
{
string OneSymbol = StringSubstr(text,i1,1);
for (int i2=0; i2<ArraySize(symbols1); i2++)
{
if (symbols1[i2]==OneSymbol) int PosSymbolIn1array=i2;
}
return(-1);
string OneSymbolMod = symbols2[PosSymbolIn1array];
int NewArraySize = ArraySize(textMod)+1;
ArrayResize(textMod,NewArraySize);
textMod[i1]=OneSymbolMod;
string textNew;
textNew=StringConcatenate(textMod[1],textMod[2]...);//собрать массив в строку вообще не могу :(
return (textNew);
}
}
Eu sei que é errado e não consigo montar o conjunto em um fio. Por favor, ajude.
Você deveria ter encontrado o índice do personagem na matriz de substituição, então por que criar outra matriz?
Tente adicioná-la a uma variável de texto simples no primeiro laço:
ReplaceSymbolsInStr(texto da corda)
{símbolos de corda1[] = {"a", "b", "c", "d"};
símbolos de corda2[] = {"1", "2", "3", "4"};
string textNew="";
int textLen = StringLen(texto);
para (int i1=0; i1<textLen; i1++)
{
string OneSymbol = StringSubstr(text,i1,1);
for (int i2=0; i2<ArraySize(symbols1); i2++)
{
if (symbols1[i2]==UmSímbolo) {textNew = textNew + symbols2[ i2 ]; i2=ArraySize(symbols1) ; }
}
}
retornar (textNew);
}
Ou é ainda mais fácil assim:
ReplaceSymbolsInStr(texto da corda)
{símbolos de corda1[4] = {"a", "b", "c", "d"}; // tamanho da matriz pelo número de símbolos nela contidos
string textNew="";
para (int i1=0; i1< StringLen(text) ; i1++)
{
string OneSymbol = StringSubstr(text,i1,1);
for (int i2=0; i2<ArraySize(symbols1); i2++)
{
if (símbolos1[i2]==UmSímbolo )
{
textNew = textNew + (i2+1); // o número do símbolo em si é adicionado ao texto retornado
i2=ArraySize(symbols1) ; // completou o ciclo de busca
}
}
}
retornar (textNew);
}
Bom dia!
Você poderia aconselhar (ou dar um link de exemplo), como enviar dados em formato csv automaticamente para o e-mail?
Obrigado.