[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 55

 
mr_Johns:

if((b_mod) && (preçoB > Perguntar)) OrderModify(b_ticket,priceB,priceS,0,0,Brown);
if((s_mod) && (priceS < Bid)) OrderModify(s_ticket,priceS,priceB,0,0,Brown);


Aqui devemos considerar MarketInfo(Symbol(),MODE_STOPLEVEL) i.e.

priceB >= Ask+ MarketInfo(Symbol(),MODE_STOPLEVEL)*Ponto

priceS < =Bid- MarketInfo(Symbol(),MODE_STOPLEVEL)*Ponto




Não. Esta questão já foi resolvida acima. A função simplesmente funcionou durante o teste em cada tick e um novo preço não foi obtido tão rapidamente. Mas quando o preço não mudou, o erro ocorreu.
 
hoz:

Bem, se você passar elementos para uma função de tipo duplo ouint, também pode fazer as mesmas operações, mas sem perversões. Por que complicar sua vida?

Se uma função tem um tipo, assume-se que a função retorna um valor desse tipo.

int test() {
  int res;
  
  // какие-то действия
  
  return(res);
}

Sua função não devolve nada.

 
hoz:

Não. Esta questão já foi resolvida acima. A função simplesmente funcionou durante o teste em cada tick e o novo preço não foi obtido tão rapidamente. Mas quando o preço não mudou, o erro apareceu.

O que quer dizer com não? Se a condição

priceB >= Ask+ MarketInfo(Symbol(),MODE_STOPLEVEL)*Point

não é atendido e priceB >Ask (como no código)

você receberá um erro.

Para não modificar o pedido quando o preço não teve tempo de mudar, devemos inserir o preço da condiçãoB!=OrderOpenPrice()

 
MikeM:
Eu escreveriaHour()>=18, e jogaria fora as atas juntas.
E isso é a coisa certa a fazer. Usei a função para outros fins e a transferi mecanicamente para cá.
//---не давать коду советника работать в пятницу с 18-00 по серверному времени 
   if(DayOfWeek()==5 && Hour()>=18){
      
      return(0);  
   } 
 
Você pode informar se pode escrever um indicador em que linhas serão desenhadas em um período de tempo, e os dados para seu desenho serão tirados de outro período de tempo? o objetivo: visualizar o último re-desenho da barra. como fazê-lo?
 
lottamer:
Você pode informar se é possível escrever um indicador que desenhe linhas em um período de tempo, e os dados para seu desenho serão tirados de outro período de tempo? O objetivo: visualizar o redesenho da última barra.

É o Watson elementar... Em cada caso, em vez de Period() use PERÍODO_M15 (o período a partir do qual você quer receber os dados)... E coloque o indicador no gráfico atual. Isto é, definir à força o prazo a partir do qual você deseja obter os dados.
 
Sepulca:

É o Watson elementar... Em cada caso, em vez de Period() use PERÍODO_M15 (o prazo a partir do qual você quer obter dados)... E coloque o indicador no gráfico atual. Ou seja, definir à força o prazo a partir do qual você deseja obter os dados.


Seria fácil, se eu estivesse escrevendo um consultor especializado.

mas há um indicador. Eu nunca os escrevi antes.

Eu olhei para um estocástico padrão como um exemplo. Eu li a cartilha indicadora.

nunca li nada sobre períodos. parece significar que as barras são consideradas no período de tempo ao qual o indicador foi aplicado.

esta é a razão da minha pergunta.....

 
lottamer:


Isto seria fácil se eu estivesse escrevendo um EA.

mas há um indicador. Eu nunca os escrevi antes.

Eu olhei para um estocástico padrão como um exemplo. Eu li a cartilha indicadora.

nunca li nada sobre períodos. parece significar que as barras são consideradas no período de tempo ao qual o indicador foi aplicado.

esta é a razão da minha pergunta....


Em estocástico padrão:

duplo iStochastic( símbolo de string, int timeeframe, int %Kperiod, int %Dperiod, int slowing, int método int, int price_field, int mode, int shift)

Se você escrever seu próprio indicador único, use int iBars (símbolo de string, int timeframe) em vez de Bars

https://docs.mql4.com/ru/series/iBars

 
Sepulca:


Em um estocástico padrão:

duplo iStochastic( símbolo de string, int timeeframe, int %Kperiod, int %Dperiod, int slowing, int método int, int price_field, int mode, int shift)

Se você escrever seu próprio indicador único, use int iBars (símbolo de string, int timeframe) em vez de Bars

https://docs.mql4.com/ru/series/iBars


o problema parecia facilmente resolvido.

substituiu todas as barras poriBars (viaint iB; iB=iBars("EUROUSD",PERIOD_M5);) Sem erros.

mas nenhum gráfico. Aparece uma janela vazia.

Claramente algo está faltando.

O indicador pode desenhar 12 linhas em uma barra? Porque há 12 pentímetros à 1 hora e cada um desenha sua própria linha.

 
lottamer:


O problema parecia ser de fácil solução.

substituiu todas as barras poriBars (viaint iB; iB=iBars("EUROUSD",PERIOD_M5);) sem erros.

Mas não há gráfico. Aparece uma janela vazia.

Claramente algo está faltando.

O indicador pode desenhar 12 linhas em uma barra? Por exemplo, há 12 pentímetros à 1 hora e cada um desenha sua própria linha.


O mesmo se aplica a Fechar - iClose, Abrir - iOpen, Tempo - iTime Volume - iVolume, etc.

O indicador pode traçar até 8 linhas de 0 a 7 https://docs.mql4.com/ru/customind/indicatorbuffers.