Uma pergunta para os especialistas em MQL - página 3

 
Obrigado, granit77
 
granit77:

Sim, mais ou menos assim, se você considerar que o nome do indicador é hilo.mq4:

extern int iR=3;
extern int SignalBar=1;
//.......
//---получение значения  HighBuffer 
double buy =  iCustom( NULL,0, "hilo",
                      iR,
                      0, // № буффера
                      SignalBar ); // № бара    
 
//---получение значения  LowBuffer
double sell =  iCustom( NULL,0, "hilo",
                      iR,
                      1, // № буффера
                      SignalBar ); // № бара

Pequeno problema. O assessor sobre o indicador funciona. Mas.... Somente com a implementação de negócios curtos!

ou seja, em número de tampão=1 e valores em zero e primeira barra

if  (   (sell_0>Bid)  &&   (sell_1<=Bid))

a condição para vender trabalhos sem falhas.

Mas o Consultor Especialista não quer comprar! Eu não entendo o que está errado! Acho que defini a condição corretamente. Número tampão = 0.

(  (buy0>=Ask)  &&      (buy1<Ask)  )

Não comprar! Ou compra muito raramente e da "luz"!

Embora as linhas do indicador no gráfico do modo visual pareçam ter sido construídas corretamente!


Qual pode ser o problema aqui?

 
rid:
granit77:

Sim, mais ou menos assim, se você considerar que o nome do indicador é hilo.mq4:

extern int iR=3;
extern int SignalBar=1;
//.......
//---получение значения  HighBuffer 
double buy =  iCustom( NULL,0, "hilo",
                      iR,
                      0, // № буффера
                      SignalBar ); // № бара    
 
//---получение значения  LowBuffer
double sell =  iCustom( NULL,0, "hilo",
                      iR,
                      1, // № буффера
                      SignalBar ); // № бара

Pequeno problema. O assessor sobre o indicador funciona. Mas.... Somente com a implementação de negócios curtos!

ou seja, em número de tampão=1 e valores em zero e primeira barra

if  (   (sell_0>Bid)  &&   (sell_1<=Bid))

a condição para vender trabalhos sem falhas.

Mas o Consultor Especialista não quer comprar! Eu não entendo o que está errado! Acho que defini a condição corretamente. Número tampão = 0.

(  (buy0>=Ask)  &&      (buy1<Ask)  )

Não comprar! Ou compra muito raramente e da "luz"!

Embora as linhas do indicador no gráfico do modo visual pareçam ter sido construídas corretamente!


Qual pode ser o problema aqui?

Também estou interessado nesta pergunta)).

 

Trabalhando com o indicador personalizado notei isso:


// так РАБОТАЕТ !!!
int FATLsB=iCustom(NULL,0,"FATLs",0,0);
int FATLsS=iCustom(NULL,0,"FATLs",1,0);

// а вот так НЕТ ...
double FATLsB=iCustom(NULL,0,"FATLs",0,0);
double FATLsS=iCustom(NULL,0,"FATLs",1,0);


// если потом в коде есть сранвнение с 0 или 1, например
if (FATLsB==1) {CloseSell(); SetBuy(); }
 
kombat:

Trabalhando com o indicador personalizado notei isso:


// так РАБОТАЕТ !!!
int FATLsB=iCustom(NULL,0,"FATLs",0,0);
int FATLsS=iCustom(NULL,0,"FATLs",1,0);

// а вот так НЕТ ...
double FATLsB=iCustom(NULL,0,"FATLs",0,0);
double FATLsS=iCustom(NULL,0,"FATLs",1,0);


// если потом в коде есть сранвнение с 0 или 1, например
if (FATLsB==1) {CloseSell(); SetBuy(); }

No primeiro caso, há uma conversão para o tipo int alvo antes da operação de atribuição. Portanto, a condição de comparação funciona corretamente.

Para o segundo caso, precisamos arredondar os números de ponto flutuante para uma precisão especificada antes da comparação usando o

NormalizeDouble(double value, int digits)



 

Desculpe...

Meu exemplo acima se baseia em um erro.

Que era que a atribuição era sobre o preço de retracement pelo indicador FATLs.

Eu não notei isso no EURUSD e confundi "setas aparecendo" para os touros 0 e 1


No entanto, esta variante corrigiu a situação:


bool FATLsB=iCustom(NULL,0,"FATLs",0,0)>0;
bool FATLsS=iCustom(NULL,0,"FATLs",1,0)>0;
//--- открытие БАЙ закрытие СЕЛЛ ------------------
   if (FATLsB==1 && TotalBuy()==0) {CloseSell(); SetBuy(); }
 

Boa tarde a todos!

Por favor, informe.

Suponha que eu tenha um MA lento e um MA rápido cruzado na tabela. Na primeira barra.

Deixe-o então passar mais algumas barras.

Como posso determinar em que barra foram atravessadas as últimas МА?

-----------------------------

Eu não consigo nem pensar - como devo abordar o problema?

 
Rita:

Suponha que eu tenha um MA lento e um MA rápido na tabela. Na primeira barra.

Deixemos então passar mais algumas barras.

Como posso determinar em que barra no passado ocorreu a última travessia do MA dado?

Qual é a diferença fundamental para você? O crossover na primeira barra pode ser visto/visualizado da mesma forma que em qualquer outra barra. Você cria um loop (por exemplo, da barra zero até as barras) onde você olha através dos valores das barras e as analisa. Não consigo entender o objetivo da pergunta....
 

Preciso saber sobre o bar atual.

Quantas barras passaram desde o último cruzamento das duas barras - MA_1 e MA_2.

Como organizar um loop como este?

se (MA_1>MA_2) {

 
Rita:

Preciso saber sobre o bar atual.

Quantas barras passaram desde a última travessia das duas MA_1 MA_2.

Como faço este ciclo?

ir do bar atual até o momento em que o MA muda de lugar. e contar.