[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 316

 
gyfto:

O outro indicador na janela do #indicador de propriedade através do iCustom, e lá no DRAW_ARROW.

existe outra maneira? ou você poderia me dar um link onde este caso é implementado, talvez você tenha encontrado isto...

 
Zhunko:

O roteiro de teste do kit funciona?


Sim, funcionou, funcionou.

Zhunko:

Há muitos erros de sintaxe.
Estranho... Talvez o MetaEditor esteja reagindo ao grego? Pelo menos tudo se compila comigo...
 
gyfto:


Deixe-me tentar agora. Quando escrevemos

então, em todos os casos, essas algumas ações serão sempre realizadas, pois as duas primeiras são semelhantes à terceira (verificar, simplificar a expressão). Isto é, se são variáveis booleanas, não precisamos colocar ==verdadeiro, ==falso, porque já são verdadeiras ou falsas por si mesmas.


Entendi, obrigado! Desculpe-me pelo off-top. Assinei este tópico em meu perfil e indiquei para relatar respostas ao meu e-mail. Mas, por alguma razão, não fui notificado das respostas. Como posso resolver este problema?
 
clubsmi:

Existe outra maneira? Ou você poderia me dar um link onde isso é feito, talvez você já tenha visto isso antes...


Não, eu não usei o iCustom na época porque não sabia disso na época. Aqui estão dois exemplos, um e o mesmo algoritmo, apenas um está em uma subjanela e o outro é sinal na interseção do primeiro.
Arquivos anexados:
sst_alert.mq4  3 kb
sst_line.mq4  2 kb
 
gyfto:


Sim, está funcionando, está funcionando.

Isso é esquisito... Talvez seja assim que o MetaEditor reage ao grego. Pelo menos tudo se compila comigo...

Isso é um alívio. Portanto, temos que procurar por erros no código.

Sim. Os caracteres gregos estão aparecendo por alguma razão.

 
alsu:

Se for um roteiro e estiver na pasta de scpirts, então foi executado uma vez e removido do gráfico. Para mantê-lo permanentemente, coloque seu código dentro deste



Por "roteiro" eu quis dizer o algoritmo.

Então, alguém pode me ajudar com o algoritmo?

Quero acionar um Alerta quando o mercado estiver aberto e, da mesma forma, quando o mercado estiver fechado e o comércio tiver parado Alerta de que o mercado está fechado!

 
Acho que já descobri a razão. A TF é uma segunda TF com lacunas, então tentei formar um conjunto adicional unidimensional de índices onde cada elemento a "número certo de segundos atrás" corresponde ao elemento b "índice desta vela em uma segunda TF com lacunas". O valor do índice necessário é então calculado usando a fórmula n(x)=ind[final]-ind[final-x]+1. Mas como este TF ainda não está sincronizado, ao contrário dos minutos, que são descarregados automaticamente se o terminal for reiniciado após o fechamento há alguns minutos, por exemplo, Δt por segundo. A TF às vezes será anormalmente grande, e é isto que determina o redimensionamento de um conjunto adicional, ou seja, Δt de células são preenchidas com o mesmo valor (índice desta barra). Neste caso apenas MemoryWrite, MemoryRead sai da escala. A saída, em princípio, é "simples": comece em segundo lugar. TF em VPS, e sincronizar com ele se o terminal for aberto novamente após curto período de fechamento. Mais realisticamente, é melhor adiar o trabalho com a biblioteca até segunda-feira, e na segunda-feira começar a construir este conjunto extra ao vivo em tempo real. Ou vá direto de seu computador para um VPS, e moldá-lo lá.
 
pasha5282:

Por "roteiro", quero dizer um algoritmo.

então alguém pode me ajudar com o algoritmo?

Quando o mercado se abre Alerta que o mercado se abriu e, da mesma forma, quando o mercado fechou e o comércio parou Alerta que o mercado fechou!


Não sei, Pasha, para ser honesto, não entendo o que está errado. Não é um roteiro, mas um pedaço de código, certo? Tente colocar parênteses em torno dele para aliviar sua consciência:

      if((DayOfWeek()==1) && (Hour()==0) && (Minute()==0) && (Seconds()==1)) Alert("Рынок открылся.");
      if((DayOfWeek()==5) && (Hour()==23) && (Minute()==59) && (Seconds()==59)) Alert("Рынок закрылся.");
 
чтобы при открытии рынка срабатывал Alert что рынок открылся, и аналогично когда рынок закрылся и торговля прекратилась Alert что рынок закрылся!
bool Opened=false;
...
int start()
if( !MarketInfo(Symbol(), MODE_TRADEALLOWED) ){
   if( Opened ){
   Alert("Рынок закрылся.");
   Opened=false;
}  }
else{
   if( !Opened ){
   Alert("Рынок открылся.");
   Opened=true;
}  }
 

Como posso simplificar esta expressão?

é do algoritmo ADX da MetaQuotes. As próprias MetaQuotes usam esta expressão:

if(pdm<0) pdm=0;
if(mdm<0) mdm=0;
if(pdm==mdm) { pdm=0; mdm=0; }
  else if(pdm<mdm) pdm=0;
    else if(mdm<pdm) mdm=0;

- como simplificá-lo? Do Wiki,

considero aqui como a mesma função, apenas com parâmetros de entrada diferentes.