Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 831

 

Olá.


Tenho visto muitas soluções para enviar sinais para o Telegrama através de um bot. É possível fazer o contrário? Receber os sinais do Telegrama a ser executado no MT4? Por favor, envie-me o link se houver algo semelhante.

 
sahsa-777:
E uma pergunta relacionada - existe alguma forma de anexar o parabólico à nova versão, talvez como um filtro?

Por favor, mostre-me a nova versão do parabólico.

 
O sorteio pode ser feito como função?
   prosadka=AccountProfit()*100/AccountBalance()*-1;
   if(prosadka>0) prosadka1=prosadka;
   else prosadka1=0;
 
O que é o erro nº 1 ao modificar um pedido? Na ajuda, diz "nenhum erro, mas o resultado não é conhecido". Não consigo entender o que devo corrigir
 
Alexandr Sokolov:
O que é o erro nº 1 ao modificar um pedido? A ajuda diz que "não há erro, mas o resultado é desconhecido". Não consigo entender o que devo corrigir

este erro ocorre se durante a modificação do pedido você enviou ao servidor os mesmos valores do pedido, ou seja, ТР new = ТР set e SL new = SL set

Lembre-se que se você comparar valores reais não-normalizados sobre igualdade, você pode não obter o resultado esperado ;)

 
Igor Makanu:

este erro ocorre se durante a modificação do pedido você enviou ao servidor os mesmos valores do pedido, ou seja, ТР new = ТР set e SL new = SL set

HH: não esqueça que se você comparar valores reais não normalizados para a igualdade, você pode não obter o resultado esperado ;)

E se for apenas um deles? ou você precisa mudar os dois ao mesmo tempo?

 
Alexandr Sokolov:

E se for apenas um deles? ou você precisa mudar ambos ao mesmo tempo?

pelo menos um parâmetro precisa ser alterado ao modificar um pedido, erro nº 1 - se nada precisa ser alterado após o envio de um pedido ao servidor

desimprima o que você está enviando para o servidor, você verá imediatamente

 
Igor Makanu:

pelo menos um parâmetro precisa ser alterado ao modificar um pedido, erro nº 1 - se nada precisa ser alterado após o envio de um pedido ao servidor

Se você não imprimir o que está enviando para o servidor, você o verá imediatamente.

Obrigado

 

Boa tarde Peritos.

Há um problema, há um Indicador(Envelopes modificados). É inserido no Expert Advisor.

Não posso fazer com que mostre renderização.

Eu prescrevi os valores para o Indicador:

//************************************************************************************************/
#property indicator_chart_window
#property  indicator_buffers 4

#property  indicator_color1  Red
#property  indicator_color2  Blue
#property  indicator_color3  Red
#property  indicator_color4  Blue

#property  indicator_width1  2
#property  indicator_width2  2
#property  indicator_width3  1
#property  indicator_width4  1

#property  indicator_style1  0
#property  indicator_style2  0
#property  indicator_style3  1
#property  indicator_style4  1

double ExtSell_Buffer[];
double ExtBuy_Buffer[];
double ExtSell_2_Buffer[];
double ExtBuy_2_Buffer[];
//************************************************************************************************/

Fiz a Inicialização:

//************************************************************************************************/
int OnInit()
{
  //--- drawing settings-----------
   IndicatorBuffers(4);
   IndicatorDigits(Digits);
//--- 
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtSell_Buffer);
   SetIndexShift(0,Ma_Shift);
   SetIndexLabel(0,"Line_Sell");
//--- 
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtBuy_Buffer);
   SetIndexShift(1,Ma_Shift);
   SetIndexLabel(1,"Line_Buy");
   //------------------------------
//--- 
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,ExtSell_2_Buffer);
   SetIndexShift(2,Ma_Shift);
   SetIndexLabel(2,"Line_Sell_2");
//--- 
   SetIndexStyle(3,DRAW_LINE);
   SetIndexBuffer(3,ExtBuy_2_Buffer);
   SetIndexShift(3,Ma_Shift);
   SetIndexLabel(3,"Line_Buy_2");
//------------------------------
   return(INIT_SUCCEEDED);
}
//************************************************************************************************/

Depois tento preencher os amortecedores no código:

//************************************************************************************************/
void OnTick()
{
Paint ();
}

//************************************************************************************************/
void Paint()
{
//-----------------------------------------------
int limit; 
int counted_bars=IndicatorCounted(); 
//---- последний посчитанный бар будет пересчитан 
if(counted_bars>0) counted_bars--; 
limit=Bars-counted_bars; 
//---- основной цикл 
for(int i=0; i<limit; i++) 
   { 
      ExtSell_Buffer[i]=iEnvelopes(Symbol(), TimeFrames, Ma_Period, Ma_Method, Ma_Shift, Applied_Price, Deviation, 1, i); 
      ExtBuy_Buffer[i]=iEnvelopes(Symbol(), TimeFrames, Ma_Period, Ma_Method, Ma_Shift, Applied_Price, Deviation, 2, i);

      ExtSell_2_Buffer[i]=iEnvelopes(Symbol(), TimeFrames, Ma_Period, Ma_Method, Ma_Shift, Applied_Price, Deviation_2, 1, i); 
      ExtBuy_2_Buffer[i]=iEnvelopes(Symbol(), TimeFrames, Ma_Period, Ma_Method, Ma_Shift, Applied_Price, Deviation_2, 2, i);
   }
   return;
}
//-----------------------------------------------

A compilação não contém erros, mas na partida dá erro "array out of range" e pára (o teste de passagem parado devido a um erro crítico na EA).

Ajuda para consertar ...

p.s. Separadamente o Indicador funciona sem erros.

 
Alexander Layzerevich:

Boa tarde Peritos.

Há um problema, há um Indicador (Envelopes modificados). É inserido no Expert Advisor.

Não posso fazê-la mostrar desenho.

Conselheiros especializados não têm amortecedores indicadores e não desenham no terminal

ler na ajuda qual é a diferença entre Expert Advisors e scripts e indicadores

Razão: