[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 446

 

Olá a todos!

Ajude-me aqui.

Escrevi um roteiro simples para abrir um pedido (do tutorial MQL4).

int start()                                  // Спец. функция start()
  {                                          // Открытие BUY
   OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
   Alert (GetLastError());
   return;                                   // Выход из start()
  }

Neste exemplo, o código é dado para instrumentos com 4 dígitos.

Tenho uma conta em uma empresa que tem 5 dígitos após o ponto.

Você pode modificar o código para 5 dígitos e porque o erro 4109 (negociação não permitida) é exibido quando o script é executado.

 
sss2019: Se eu definir o tipo de arrays int, e se eu correr através de cada elemento, eu posso ver que os valores do array correspondem aos valores calculados, mas se o tipo for Int, as linhas indicadoras não são exibidas na janela.

Se eu definir o tipo de array duplo, o array armazena mais valores que eu não sei de onde eles vêm, por exemplo 21456545454, 43654534532, 24325235232, etc. Que não correspondem de forma alguma aos valores calculados.

Qual pode ser o problema?

Você tem que recorrer aos telepatas. Mas é bem possível que o problema seja uma inconsistência na divisão de números reais por números inteiros.
 

Olá, você pode me ajudar a lidar com o indicador. A idéia é, com a abertura da sessão americana às 16:00 de Moscou, colocar uma marca acima da vela, em qualquer horário. Eu tenho problemas com as funções de data e hora, reli o tutorial mais de uma vez, olhei outros indicadores, mas ainda não entendi.

Arquivos anexados:
exfbtix.mq4  2 kb
 
Yulia:

Olá, você pode me ajudar a lidar com o indicador. A idéia é, com a abertura da sessão americana às 16:00 de Moscou, colocar uma marca acima da vela, em qualquer horário. Tenho problemas com as funções de data e hora, li o tutorial mais de uma vez, olhei para outros indicadores, mas ainda não entendi.


#property indicator_chart_window // указываем, что идикатор будет рисоваться в окне, где рисуется график валютной пары
#property indicator_buffers 1 // сколько линий будет рисовать наш индикатор
#property indicator_color1 Lime // какого цвета будет первая линия 
//---- buffers
double Buffer[];

extern int hour =9;

//+------------------------------------------------------------------+
int init()
{
  SetIndexStyle(0,DRAW_ARROW);
  SetIndexArrow(0,108);
  SetIndexBuffer(0,Buffer);  
return(0);
}
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
int start()
{

int counted_bars=IndicatorCounted(); // сколько баров уже просчитано для начего индикатора
if(counted_bars<0) return(-1);// проверяем ошибки


int i=0;
    while(i<Bars)
         {
         if(TimeHour(Time[i])==hour)
            {        
            Buffer[i]=High[i]+150*Point;
            }
         
         i++;
         }

return(0);
}
//+------------------------------------------------------------------+

 
 
Muito obrigado, mas um pouco errado, só preciso de uma marca na primeira vela em M1,M5 etc., exceto, é claro, o diário e acima.
 
Reshetov:
Você terá que consultar um telepata. Mas é bem possível que o problema seja uma inconsistência na divisão dos números reais por números inteiros.


Aqui está o código

int lowsum, highsum;
int Mass1[];
int Mass2[];

                        while(start1 < end1 + 1)
                                {
                                lowsum = lowsum + iVolume(Symbol(), PERIOD_M1, start1);
                                start1++;
                                }
                        while(start2 < end2 + 1)
                                {
                                highsum = highsum + iVolume(Symbol(), PERIOD_M1, start2);
                                start2++;
                                }
                        Mass[i] = lowsum;
                        Mass[i] = highsum;
                        Alert(Mass[i], " ", highsum);

Como resultado, o alerta emite estas mensagens:

Você pode ver que a variável tem um valor, mas você não pode atribuir um valor variável a uma matriz, eu não consigo descobrir qual é o problema

 
Yulia:
Muito obrigado, mas um pouco errado, eu só preciso de uma marca na primeira vela na M1,M5 etc., exceto, é claro, no dia-a-dia e acima.

Como você o teve, assim permanece
 
sss2019:

Você pode ver que a variável tem um valor, mas você não pode atribuir um valor variável a uma matriz, eu não consigo descobrir qual é o problema

Qual é o tamanho da matriz?
 
sss2019:


Aqui está o código

Como resultado, o alerta emite estas mensagens:

Você pode ver que a variável tem um valor, mas você não pode atribuir um valor variável a uma matriz, eu não consigo descobrir qual é o problema


Você não tem que definir o tamanho da matriz?
 
Talvez eu tenha explicado algo errado, você só precisa marcar a primeira vela no m1 m5 m15 m30 h1 h4, que começa às 16:00, horário de Moscou, e as marcas indicadoras (por exemplo no m15 quatro velas).