[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 97

 

Aqui: https://docs.mql4.com/ru/dateandtime/DayOfWeek

Já vi isso, ele retorna no dia da semana, mas preciso saber qual dia da semana é o último dia da semana seguinte. Porque há dias em que o último dia útil não é sexta-feira

 
Você pode me dizer se pode alterar o modelo do gráfico que se abre após o teste? Para tornar as marcas do negócio visíveis, mas quando aplico meu próprio modelo, todas as marcas estão lá...
 
alexhammer:


Seus códigos não funcionam.... ( Eu só preciso abrir um pedido ao mesmo tempo em que o stop..... é acionado. Sem indicadores... apenas fechando o lote.... não achou que fosse uma tarefa tão difícil!

AJUDA-ME!!! É urgente! :(

 
ScioMe:
Você pode modificar o padrão do gráfico que será aberto após o teste? Estou usando meu próprio modelo e todas as marcas estão lá...

Comece o testador com "Visualização" verificada.

Quando o testador carregar o histórico e começar a trabalhar, pressione o botão de pausa e defina seu padrão no gráfico,

pressione o botão de pausa para continuar o testador. Você pode pular a visualização se desejar (Pular para botão).

Quando o testador terminar, você verá todas as setas no gráfico com seu padrão.

 
PariaH:


Seus códigos não se encaixam.... ( Eu só preciso abrir um pedido ao mesmo tempo em que o stop..... é acionado. Sem indicadores... apenas fechando o lote.... não achou que fosse uma tarefa tão difícil!

POR FAVOR, ajudem!!! É urgente!!! :(

Acho que isto pode ser resolvido mantendo um registro do número de lotes pendurados. A função CalculateOrders() no MovingAverage Expert Advisor incorporado.

Você fez um pedido->calcule o número de pedidos ativos-> lembre-se dele em uma variável->.

verificar cada iteração na função Iniciar-> se o número de pedidos diminuiu-> se diminuiu, reagir conforme necessário.

 
PariaH:


Seus códigos não se encaixam.... ( Basta abrir um pedido ao mesmo tempo em que a stop..... é acionada Sem indicadores... apenas fechando o lote.... não achou que fosse uma tarefa tão difícil!

AJUDA-ME!!! É urgente! :(

Esta função retorna a bandeira para fechar a última posição na parada:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия последней позиции по стопу.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   ocp, osl;
  int      dg, i, j=-1, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
  if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo(sy, MODE_DIGITS);
    if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
    ocp=NormalizeDouble(OrderClosePrice(), dg);
    osl=NormalizeDouble(OrderStopLoss(), dg);
    if (ocp==osl) return(True);
  }
  return(False);
}

... na tomada:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия последней позиции по тейку.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   ocp, otp;
  int      dg, i, j=-1, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
  if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo(sy, MODE_DIGITS);
    if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
    ocp=NormalizeDouble(OrderClosePrice(), dg);
    otp=NormalizeDouble(OrderTakeProfit(), dg);
    if (ocp==otp) return(True);
  }
  return(False);
}

Procure aqui por si mesmo. Então você pode escrever o seu próprio...

 

Olá.

Estou trabalhando em um Expert Advisor, não consigo entender como a seguinte linha deve ser executada:

if (profitbuy<=0)mtpb=tpb;

A condição é clara, não é claro em que resultado a variável mtpb toma o valor da variável tpb.

 
paibolit:

Olá.

Estou trabalhando em um Expert Advisor, não consigo entender como a seguinte linha deve ser executada:

if (profitbuy<=0)mtpb=tpb;

A condição é clara, não é claro em que resultado a variável mtpb toma o valor da variável tpb.

Se o lucro das posições da baía não for maior que zero, então mtpb=tpb.
 
ZZZEROXXX:

Aqui: https://docs.mql4.com/ru/dateandtime/DayOfWeek

Já vi isso, ele retorna no dia da semana, mas preciso saber qual dia da semana é o último dia da semana seguinte. Porque há dias em que o último dia da semana não é sexta-feira.

O fim não justifica os meios.

Para esclarecer, eis uma pergunta: você mesmo, quando quer determinar "que dia da semana será o último da próxima semana", o que você faz? Certo, você consulta o calendário para o ano corrente, vê que feriados caem especificamente em seu país e descobre se o fim de semana foi transferido de um dia para outro (por exemplo, de domingo para quinta-feira, para isso todo ano o parlamento, ou seja, a Duma, adota um documento separado), etc. Você acha que alguém vai se preocupar em criar um programa em MQL para isso? Pessoalmente, é mais fácil para mim ver o calendário...

 

Boa noite! Desculpe, eu quero entender o princípio, o quê, tal construção não é possível?

int u; u=0-10; for( u;u<30;u++) {Alerta("u",u); } Escreve o erro ';' - a tarefa espera C:îðóì MF Trader 4\\documents\experts\cycle.mq4 (33, 31)
Ele mostra um ponto-e-vírgula entre u; u Verifiquei-o uma vez com ajuda, por favor explique!