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

 
Artyom Trishkin:
Basta saber em que dia da semana foi o primeiro dia do mês. O restante é calculado.

É como coçar a orelha direita com a mão esquerda.

 
Darirunu:

Desculpe, você provavelmente não estava prestando atenção à pergunta.

Como você escreve a condição nos quatro: se a primeira sexta-feira do mês foi em alta e

a segunda segunda-feira é de baixa, então abrimos um comércio de venda.

DayOfWeek()==1 Segunda-feira é clara, mas qual segunda-feira do mês?)

Consegui! Você está falando de seu algoritmo, que só você conhece. Eu escrevi, determine o dia da semana para o primeiro dia do mês! E então usamos uma tabela ou duas fórmulas simples para determinar as datas dos dias em que estamos interessados.

Confira a tabela do calendário.

Se o primeiro dia do mês for 6, então o número da primeira sexta-feira será 7. Caso contrário, a primeira sexta-feira equivale a 6 - o dia do início do mês.

Se o dia do mês começa < 2, a segunda segunda-feira equivale a 9 - dia do mês. Caso contrário, o número da segunda segunda-feira é 16 - o dia do mês.

Usando funções matemáticas, o restante da divisão e o módulo será muito mais curto.

 
LRA:

Consegui! Você está falando de seu algoritmo, que só você conhece. O que estou dizendo é: determine o dia da semana para o primeiro dia do mês! E então usamos uma tabela ou duas fórmulas simples para determinar as datas dos dias de interesse.

Confira a tabela do calendário.

Se o primeiro dia do mês for 6, então o número da primeira sexta-feira será 7. Caso contrário, a primeira sexta-feira equivale a 6 - o dia do início do mês.

Se o dia do mês começa < 2, a segunda segunda-feira equivale a 9 - dia do mês. Caso contrário, a segunda segunda-feira é igual a 16 - o dia do mês

Obrigado. Deus o abençoe... Estarei verificando.
 
Darirunu:
Obrigado. Deus o abençoe. Vou continuar verificando.

Muito obrigado por seu desejo. E ainda colocar um espaço após o ponto e um espaço antes do ponto. Ela ajudará na programação. Boa sorte e, se você precisar, lucros!

 
LRA:

Muito obrigado por suas sugestões. E você pode querer colocar um espaço após uma parada completa e pular um espaço antes de uma parada completa. Ela ajudará na programação. Boa sorte e, se você precisar, boa sorte!


Sai muito complicado. Deve haver uma opção mais simples. Qualquer um pode compartilhar?

Digamos que amanhã algo vai mudar nas atualizações e teremos que reescrever tudo.

 
Darirunu:

Sai muito complicado. Deve haver uma opção mais simples. Qualquer um pode compartilhar?

Digamos que amanhã algo muda nas atualizações e temos que reescrever tudo.

Não é tão difícil assim. Mas para cada situação temos que estabelecer valores diferentes, quantas barras diárias devem ser copiadas e quais devem ser importadas para as estruturas.

/********************Script program start function********************/
void OnStart()
{
 MqlDateTime mqlDateTime0, mqlDateTime1;
 datetime arrDateTime[7];
 CopyTime(_Symbol, PERIOD_D1, 0, 7, arrDateTime);
 TimeToStruct(arrDateTime[0], mqlDateTime0);
 TimeToStruct(arrDateTime[6], mqlDateTime1);
 if(mqlDateTime0.day_of_week == FRIDAY && mqlDateTime0.mon != mqlDateTime1.mon)
  {
   Print("Ура!!! Сегодня первая пятница");
   // Дальше можно брать по времени пятницы открытие и закрытие бара и на основании этого определяем бычья или медвежья свеча...
  }
}/********************************************************************/

É melhor levar os parâmetros do castiçal para a estrutura MqlRates

 
Alexey Viktorov:

Mas para cada situação é preciso estabelecer valores diferentes, quantas barras diárias copiar e quais colocar nas estruturas.



É disto que estou falando e só estou interessado na MQL4.

 
Darirunu:

É disso que estou falando e só estou interessado na MQL4 ...Precisamos encontrar outra solução .

É isso que é o mql4.
Arquivos anexados:
00.mq4  2 kb
 
double ma;
   int    res;
   int nomber = OrdersHistoryTotal();
   int tip=OrderType();
   if(OrderSelect(nomber,SELECT_BY_POS,MODE_HISTORY))
   {
   tip=OrderType();
   }
   ma=iMA(NULL,0,MovingPeriod,120,MODE_SMA,PRICE_CLOSE,1);
   if(Bid<ma)
   if(tip!=OP_SELL)
   {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,Bid-TP*Point,"",MAGICMA,0,Red);
      return;
     }



Boa tarde. Preciso de alguma ajuda. Se houver um pedido fechado de Venda, então o próximo pedido só poderá ser aberto Comprar.
 
Darirunu:

É disso que estou falando e só estou interessado na MQL4.

Eu também tenho esta idéia.

Se você precisar da primeira sexta-feira, o número deve ser inferior a 8. Se a primeira sexta-feira do mês for sexta-feira, a próxima sexta-feira será a oitava. Assim, podemos facilmente recalcular a qualquer dia da semana e a qualquer dia, segundo, terceiro...