Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 343

 
É claro que você pode!!!
 
Vladimirovits:
Tenho todo o projeto de estúdio visual em minha pasta de especialistas... Compile é um arquivo .exe, certo?

Não, a biblioteca compilada é o arquivo ExpertSample.dll
 
Forexman77:

O modelo foi retirado de um livro didático. Não sou muito bom em funções de manipulação de erros neste momento.

Na abertura do pedido, há RefreshRates(); (eu substituí Bids e Pergunta via Market Info, como me foi dito)

E função de tratamento de erros:

Eu queria perguntar. Posso acrescentar a seguinte linha de 129 erros?

129

ERR_INVALID_PRICE

Preço incorreto


Ao receber este erro, você deve rever a lógica do Expert Advisor. É o consultor especializado que envia um preço incorreto em uma ordem comercial. E você decidiu atolar o servidor com uma ordem comercial equivocada?


A auto-comercialização será desligada e pronto.

 
artmedia70:

129

ERR_INVALID_PRICE

Preço incorreto


Ao receber este erro, você precisa rever a lógica da EA. É o Consultor Especialista que envia o preço errado na ordem comercial. E você decidiu atolar o servidor com uma ordem comercial equivocada?


A auto-comercialização será desativada e pronto.

Vasculhei tudo. Talvez quando o Consultor Especialista enviar um pedido:

Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP);//Открытие Buy
lembra-se a que preço comprar?

E eu tinha o seguinte:

if  (iClose(Symbol(),Period(),0) <= MA_6_t) 
          {                                          
          Opn_B=true;                    
          }

se a oferta for menor ou igual ao MA, então compramos. Temos comprado do pedido, por isso estamos jogando com o pedido.

Eu não tive problemas com a venda, apenas com a compra.

Encontrei algumas informações sobre este tópico:

"Se o preço de abertura solicitado não estava no fluxo de preços ou o preço solicitado não foi normalizado após o ponto decimal, então o erro 129 (ERR_INVALID_PRICE) será gerado. Se o preço de abertura solicitado estiver severamente desatualizado, será gerado um erro 138 (ERR_REQUOTE), independentemente do valor do parâmetro de escorregamento. Se, por outro lado, o preço solicitado for obsoleto, mas ainda estiver presente no fluxo de preços, a posição será aberta ao preço atual e somente se o preço atual cair dentro da faixa preço+deslizamento".

Se afinal não é licitar e perguntar, então o comércio deveria ter sido feito. Cotação " Se o preço solicitado estiver desatualizado mas ainda presente no fluxo de preços, então a posição se abrirá ao preço atual e somente se o preço atual cair dentro da faixa preço+deslizamento". O fechamento estava bem abaixo da média móvel.

 

Pergunta para o guru.

Não consigo obter o indicador para renderizar em algumas áreas. A essência do indicador, se o movimento não for mais do que um determinado valor, o valor permanece como no valor escrito de MA_otshet.

Quando o valor é excedido, o valor se torna, correspondente ao momento atual.

Abaixo está o código do indicador com explicações:

//+------------------------------------------------------------------+
//|                                                         EMAF.mq4 |
//|                                                 Kamil Gazizullin |
//|                                             forexman77@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Kamil Gazizullin"
#property link      "forexman77@yandex.ru"
#property indicator_chart_window
#property indicator_buffers 1
#property  indicator_color1 Aqua 
//--- input parameters
//--- buffers
bool flag=true;
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE,0,1);
   SetIndexBuffer(0,ExtMapBuffer1);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    int counted_bars=IndicatorCounted(),                      
    limit;
    double
    raznica,raznica_static,MA_1_t,MA_2_t;
    
  if(counted_bars>0)
      counted_bars--;
   limit=Bars-counted_bars;
   static double MA_otshet;  //здесь хранится информация по MA_otshet
  for(int i=0;i<limit;i++)
   {  
      MA_1_t=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i+0);  
      MA_2_t=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i+1); 
      raznica=MA_1_t-MA_2_t; //разница между сегодня и вчера по скользящей средней
      raznica_static=MA_1_t-MA_otshet; //разница между сегодня и MA_otshet
      RefreshRates();   
      if(raznica > -0.0035 && raznica < 0.0035 && flag) // если raznica не превышает заданное число 
          {
          MA_otshet=MA_2_t; // записываем значение MA_otshet
          ExtMapBuffer1[i]=MA_otshet; //рисуем значение индикатора, как и вчера
          flag=false; // устанавливаем флаг запрета дальнейших расчетов
          }
      if(raznica_static > -0.0035 && raznica_static < 0.0035) //если raznica_static не превышает заданное число
          {
          ExtMapBuffer1[i]=MA_otshet;  // то рисуем значение индикатора, как записанный MA_otshet
          }
      if((raznica > 0.0035) || (raznica <- 0.0035)) // если raznica превышает заданное число
          {
          ExtMapBuffer1[i]=MA_1_t; // то рисуем значение по текущей цене
          flag=true; // разрешаем дальнейшие вычисления для расчета в диапазоне от -0.0035 до 0.0035
          }
   }  
   return(0);
  }
//+------------------------------------------------------------------+

 
Forexman77:

O indicador não é traçado em algumas áreas. A essência do indicador, se o movimento não for mais do que um determinado valor, o valor permanece como no valor registrado de MA_otshet.

Quando o valor é excedido, o valor se torna, correspondente ao momento atual.

Abaixo está o código e a explicação do indicador:


DESENHAR_SECÇÃO

 
Forexman77:

Eu já dei uma olhada em tudo. Talvez quando a EA enviar um pedido:

Lembra-se a que preço comprar?

E eu tinha o seguinte:

ou seja, a oferta é menor ou igual ao MA, então nós compramos. Não tive nenhum problema com a venda, mas não tive nenhum problema com a venda.

Eu não tive problemas com a venda, apenas com a compra.

Encontrei algumas informações sobre este tópico:

"Se o preço de abertura solicitado não estava no fluxo de preços ou o preço solicitado não foi normalizado após o ponto decimal, então o erro 129 (ERR_INVALID_PRICE) será gerado. Se o preço de abertura solicitado estiver severamente desatualizado, será gerado um erro 138 (ERR_REQUOTE), independentemente do valor do parâmetro de escorregamento. Se, por outro lado, o preço solicitado for obsoleto, mas ainda estiver presente no fluxo de preços, a posição é aberta ao preço atual e somente se o preço atual cair dentro da faixa preço+deslizamento".

Se afinal não é licitar e perguntar, então o comércio deveria ter sido feito. Cotação " Se o preço solicitado estiver desatualizado mas ainda presente no fluxo de preços, então a posição se abrirá ao preço atual e somente se o preço atual cair dentro da faixa preço+deslizamento". O fechamento estava bem abaixo da média móvel.

Vamos supor que o Ask está sempre normalizado é o preço: não é calculado e não há sentido em normalizá-lo.

Então o preço pode estar errado por quê? Talvez os dados estejam desatualizados? Tente executar RefreshRates() imediatamente antes de OrderSend().

 
Saudações, caros comerciantes - programadores!!!
Qual é o significado de AccountComany?
Você pode tirar certas conclusões do nome, mas como ele se relaciona com a linguagem de programação MT4 ???

AccountCredit?

Moeda AccountCurrency?

AccountEquity?

AccountFreeMargin?

AccountFreeMarginCheck?

AccountLeverage?

AccountStopoutLevel?

AccountStopoutMode?

ArrayBsearch?

Estou muito interessado em saber a descrição detalhada de cada comando. Por favor, me ajude.

 

ArrayCopy?

ArrayCopyRates?

ArrayCopySeries?

ArrayDimension?

ArrayGetAsSeries?

 

O que é uma taxa de matriz?