Sim, eu posso ver isso. E vejo a resposta à pergunta no post abaixohttps://www.mql5.com/ru/forum/160587/page115#comment_6521492. Em outras palavras, o problema é que a funcionalidade não está dividida em subtarefas lógicas. Vocês se agruparam: recuperação da ordem, decisão sobre a ação comercial e execução do comércio.
Tal tarefa pode ser resolvida exatamente em três etapas:
Coleta de informações sobre pedidos a serem monitorados pelo programa. Este é apenas o ciclo de avaliação dos pedidos, que você já tem. O resultado deste ciclo deve ser o conjunto de ordens.
Cálculo de sinais comerciais. O resultado do cálculo é um comando para abrir e/ou fechar ordens. Isso depende da estratégia comercial. Anteriormente, quando não havia enumeração, eu usava códigos: 0 - sem sinal, 1 - abrir Comprar, -1 - abrir Vender, 2 - fechar Comprar, -2 - fechar Vender.
Execução de uma operação comercial. Se houver um sinal comercial e uma das ordens (ponto 1) se encaixar, é realizada uma operação comercial. Depois disso, todo o algoritmo é reiniciado a partir do ponto 1. Em alguns casos, nós até saímos do OnTick para continuar com o próximo tick.
Bem, obrigado. Pelo menos é claro o que fazer. Eu mesmo tentarei descobrir "como" fazer isso. Embora eu ainda não esteja familiarizado com arrays. Mais uma vez, obrigado de qualquer forma.
Mickey Moose:Escrevi-o em um arquivo, tudo está bem, mas agora como posso poupar os dados, por exemplo "eurusd" "1.2242". dados temporários, etc.?
string s=FileReadString(F1); // Leia a próxima linha do arquivo de texto StringSplit(s, "," , a); // Dividir elementos separados por vírgula na matriz datetime T1=StrToTime(a[4]); // Além disso, a transformação continua... int ord=StrToInteger(a[8]); double Price=StrToDouble(a[12]);
Bem, obrigado. Pelo menos é mais claro o que fazer. Vou tentar descobrir o "como" eu mesmo. Ainda não estou familiarizado com arrays, no entanto. De qualquer forma, mais uma vez, obrigado.
Escreva pelo menos um bloco e me mostre. Eles lhe dirão mais sobre este caso.
Sim, eu posso ver isso. E vejo a resposta à pergunta no post abaixohttps://www.mql5.com/ru/forum/160587/page115#comment_6521492. Em outras palavras, o problema é que a funcionalidade não está dividida em subtarefas lógicas. Vocês se agruparam: recuperação da ordem, decisão sobre a ação comercial e execução do comércio.
Tal tarefa pode ser resolvida exatamente em três etapas:
Bem, obrigado. Pelo menos é claro o que fazer. Eu mesmo tentarei descobrir "como" fazer isso. Embora eu ainda não esteja familiarizado com arrays. Mais uma vez, obrigado de qualquer forma.
Diga-me como sair dessa!!!
for(int i=OrdensTotal()-1; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS);
if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
pausa;
A advertência é: o valor de retorno da 'OrderSelect' deve ser verificado
Dequeoutra formaeste valor'OrderSelect'deve ser verificado?
se eu fizer isto: j=OrderSelect(); Isto é correto?
Diga-me como sair dessa!!!
for(int i=OrdensTotal()-1; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS);
if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
pausa;
A advertência é: o valor de retorno da 'OrderSelect' deve ser verificado
Dequeoutra formaeste valor'OrderSelect'deve ser verificado?
se eu fizer isto: j=OrderSelect(); Isto é correto?
Não funcionou!(
string s=FileReadString(F1); // Leia a próxima linha do arquivo de texto
StringSplit(s, "," , a); // Dividir elementos separados por vírgula na matriz
datetime T1=StrToTime(a[4]); // Além disso, a transformação continua...
int ord=StrToInteger(a[8]);
double Price=StrToDouble(a[12]);
Bem, obrigado. Pelo menos é mais claro o que fazer. Vou tentar descobrir o "como" eu mesmo. Ainda não estou familiarizado com arrays, no entanto. De qualquer forma, mais uma vez, obrigado.
Escreva pelo menos um bloco e me mostre. Eles lhe dirão mais sobre este caso.
Não ajudou!(
Leia-o cuidadosamente, novamente.
Todos os códigos terão este aspecto
Não funcionou!(
Portanto, você não fez nada. Você o escreveu acima:
E você o tem escrito sem verificação. Embora parecesse mais legível dessa forma:
@Ihor Herasko @Alekseu Fedotov
OBRIGADO!!! FUNCIONOU DESSA MANEIRA!