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?
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:
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.
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_buffers1#property indicator_color1 Aqua
//--- input parameters//--- buffersbool 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;
staticdouble MA_otshet; //здесь хранится информация по MA_otshetfor(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);
}
//+------------------------------------------------------------------+
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.
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 ???
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
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.
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:
lembra-se a que preço comprar?E eu tinha o seguinte:
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.
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:
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
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().
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?