Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 199

 
STARIJ:
Leia seu comentário: acontece que se uma das três últimas encomendas fechar com lucro, o comércio vai parar!

Obrigado pela dica

ABRA O NOVO PEDIDO que dei apenas a título de exemplo. Eu ainda não estou negociando.

Eu simplesmente não entendo como codificar esta condição.

Se 3 - 4 - 5 ..... últimos pedidos tiverem sido fechados na STOP

NÃO TENHO A MENOR IDÉIA DO QUE FAZER.

 
Victor Nikolaev:


As diferenças são mínimas. Uma das variáveis é o booleano.

A saída dirá verdadeiro ou falso

Ugh, não consigo descobrir como adicionar variáveis - ou seja, digamos que tenho 4 variáveis booleanas e preciso passar por elas?

//+------------------------------------------------------------------+
//|                                                       Decode.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link      "http://vinin.ucoz.ru"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int N=15;  //0..162
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   for(int n=0;n<N;n++)
     {
      int tmp=n;
      bool a= (bool) MathMod(tmp,2);
      bool b= (bool) MathMod(tmp,3);
      bool c= (bool) MathMod(tmp,4);
      bool d= (bool) MathMod(tmp,5);

      Print("N=",n,"; A=",a,"; B=",b,"; C=",c,"; D=",d);
     }

  }

Eu entendo a essência do caso - deve ser um remanescente menor ou maior que zero após a divisão - mas não consigo descobrir como conseguir isso :(

 
ANDREY:

Obrigado pela dica

ABRA O NOVO PEDIDO que dei apenas a título de exemplo. Eu ainda não estou negociando.

Eu simplesmente não entendo como codificar esta condição.

Se 3 - 4 - 5 ..... últimos pedidos tiverem sido fechados na STOP

SÓ PRECISO TOMAR ALGUMAS MEDIDAS.

Antes de tomarmos qualquer medida, devemos primeiro olhar para 3 a 4 a 5 posições que foram fechadas em seguida. Se tudo estiver parado, então tome algumas medidas. Elementar, Watson...
 
ANDREY: É necessário que não apenas as últimas, mas também as penúltimas e penúltimas ordens tenham sido fechadas em parada.

e só então abrir outro pedido

O roteiro anexo - eu o verifiquei, ele funciona, o resultado está anexado

//+-------------------------------------------------------+
//| Подсчет убыточных ордеров                 PROBA_MA.mq4|
//+-------------------------------------------------------+
#property strict
130
void OnStart()
{
  int Счет=0, Номер=OrdersHistoryTotal()-1;

  for( ; Номер>=0; Номер--)
  {
    if(!OrderSelect(Номер, SELECT_BY_POS, MODE_HISTORY)) continue;
    Alert(Номер, "  Тикет = ", OrderTicket(),"  T =",OrderOpenTime(), "  Профит = ", OrderProfit());
    if(OrderProfit()>=0) break;
    Счет++;
    if(Счет==3)
    {
      Alert("Вот тут и открываем новый ордер");
      return;
    }
  }
  Alert("Подряд идущих убыточных ордеров слишком мало");
}

Isso é tudo história


E isto é um clique direito sobre a história e escolhe o período até 3 de maio

 
STARIJ:

Em anexo está o roteiro - testado, ele funciona, o resultado é anexado

Essa é a história toda.


E isto é clicar com o botão direito do mouse sobre o histórico e selecionar o período até 3 de maio

É uma parada. E não é confiável. Você tem que fazer isso independentemente da classificação.
 

Desculpe incomodá-lo, vou responder minha pergunta novamente.

Acho que é hora de olhar o gráfico, não sou um grande especialista em mql4.

Talvez eu tenha feito uma pergunta no ramo errado.

 
STARIJ:

Em anexo está o roteiro - testado, ele funciona, o resultado é anexado

Essa é a história toda.


E isto é clicar com o botão direito do mouse sobre o histórico e selecionar o período até 3 de maio

Muito obrigado por toda a sua ajuda.
 
Artyom Trishkin Portanto, é uma parada. E não é confiável. Isso deve ser feito independentemente da classificação.

Artem! no canto inferior direito do terminal está o indicador para trocas com o servidor - quilobytes recebidos e enviados. O indicador mostrou 2318. Clique com o botão direito sobre a história e selecione Hoje (e hoje é domingo). A história foi esvaziada. O roteiro mostra que não há ordens no histórico. Eu cliquei com o botão direito do mouse sobre o histórico e selecionei Toda a história. O indicador ganhou vida com 518 kilobytes adicionados a ele. Assim, quando você ajusta o filtro para um período GRANDE, os pedidos são baixados do servidor. Se você definir um período menor, eles são excluídos. Portanto, é melhor definir a Última Semana, os Últimos 3 Dias ou Hoje para acelerar seu trabalho (menos pedidos a serem processados). Isto pode ser facilmente verificado com a ajuda do script com Alert(OrderHistoryTotal());

Sobre a triagem. Se você clicar nos cabeçalhos das colunas na história, você pode ordenar visualmente a história, descendo ou subindo de qualquer coluna. Entretanto, as ordens são sempre selecionadas utilizando a função OrderSelect(Number, SELECT_BY_POS, MODE_HISTORY), a partir do início do intervalo SELECTED do histórico. E na história, as ordens são ordenadas no momento em que foram enviadas para o servidor, o que é o mais natural. Se o número = 0, então esta é a ordem mais antiga do intervalo da história do SELECTED. Se OrderHistoryTotal()-1, é a ordem mais recente do intervalo escolhido da história. Já verifiquei isto muitas vezes. E é improvável que venha a ser alterado.

 
STARIJ:

Artem! no canto inferior direito do terminal está um indicador de troca com o servidor - os kilobytes recebidos e enviados. No indicador era 2318. Clique com o botão direito sobre a história e selecione Hoje (e hoje é domingo). A história está vazia. O roteiro mostra que não há ordens no histórico. Eu cliquei com o botão direito do mouse sobre o histórico e selecionei Toda a história. O indicador ganhou vida com 518 kilobytes adicionados a ele. Assim, quando você ajusta o filtro para um período GRANDE, os pedidos são baixados do servidor. Se você definir um período menor, eles são excluídos. Portanto, é melhor definir a Última Semana, os Últimos 3 Dias ou Hoje para acelerar seu trabalho (menos pedidos a serem processados). Isto pode ser facilmente verificado com a ajuda do script com Alert(OrderHistoryTotal());

Sobre a triagem. Se você clicar nos cabeçalhos das colunas na história, você pode ordenar visualmente a história, descendo ou subindo de qualquer coluna. Entretanto, as ordens são sempre selecionadas utilizando a função OrderSelect(Number, SELECT_BY_POS, MODE_HISTORY), a partir do início do intervalo SELECTED do histórico. E na história, as ordens são ordenadas no momento em que foram enviadas para o servidor, o que é o mais natural. Se o número = 0, então esta é a ordem mais antiga do intervalo da história do SELECTED. Se OrderHistoryTotal()-1, é a ordem mais recente do intervalo escolhido da história. Já verifiquei isto muitas vezes. E é improvável que isso venha a ser alterado.

Você é tão novo aqui que não sabe tudo como era antes. Tem sido uma regra de três anos que uma busca baseada no tempo é a única maneira confiável de identificar a última/primeira posição ou posições consecutivas. Você está trabalhando com dinheiro. Está bem, nem que seja com o seu próprio, mas com o de outra pessoa também. Mesmo indiretamente com seu programa.

E o que você está me dizendo não é um segredo ou uma revelação - todos sabem disso há anos ;)

E o que eu estava dizendo - você ainda não entendeu...

 
Artyom Trishkin:

Você é tão novo aqui que não sabe tudo como era antes. Tem sido uma regra de três anos que uma busca baseada no tempo é a única maneira confiável de identificar a última/primeira posição ou posições consecutivas. Você está trabalhando com dinheiro. Está bem, nem que seja com o seu próprio, mas com o de outra pessoa também. Mesmo indiretamente com seu programa.

E o que você está me dizendo não é um segredo ou uma revelação - todos sabem disso há anos ;)

E do que eu estava falando - você ainda não entendeu...

Artem, ou é um corrico discreto ou você não sabe sobre o que está escrevendo!!!

Em seu último post você falou sobre a classificação. Explicou a você que não há dependência de classificação.

Eu vi e participei de uma das discussões sobre a seleção dos pedidos por tempo. A conclusão foi que os pedidos são agora classificados no banco de dados de pedidos no momento em que são enviados para o servidor. Mas TEORETALMENTE há um medo de que os desenvolvedores possam mudar isso. Esse foi o fim dessa discussão. Como especialista em banco de dados, asseguro que este medo é infundado, uma mudança está fora de questão. Você pode encaminhar a questão para os desenvolvedores. Se eu escrever algo, eu sei o que escrevo. É o 50º aniversário da programação. Se você notar em minhas mensagens alguma confusão de seu ponto de vista - escreva-me pessoalmente. Explicarei, e suas dúvidas serão dissipadas. Mas aqui é improvável que as brigas sejam apropriadas. Escrevi ao homem um roteiro - ele disse obrigado. Não é bom?

Sobre o outro dia. Eu acabei de mudar meu nome de usuário, você pode adivinhar o que era por estilo. Ou verifique seu IP, você provavelmente tem acesso... Por favor, deixe-o sem resposta.

Razão: