[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 332

 
first_may:
Boa noite. Você poderia me dizer se há algum indicador de perfil de mercado? E também uma documentação ou descrição de como utilizá-los? Pelo menos os sinais mais simples para entrar no mercado usando indicadores de perfil de mercado?

O que você quer dizer com perfil de mercado?
 
Vinin:

O que você entende por perfil de mercado?


Aqui está:
" Perfil demercado como forma de representar graficamente a aceitação ou rejeição de preços ao longo do tempo".

Encontrei o indicador http://fxcoder.ru/indicators/tpo

Mas não sei como tomar a decisão certa, por isso queria perguntar aos especialistas.

 
first_may:


Aqui:
"Perfil de mercado como forma de representar graficamente a aceitação ou rejeição de preços ao longo do tempo".

Encontrei o indicador http://fxcoder.ru/indicators/tpo

Mas não sei como tomar a decisão certa, por isso queria perguntar aos especialistas.


Então você parece estar fazendo a pergunta errada. Esta linha é para um propósito diferente
 
Vinin:

Então, parece que você perguntou no lugar errado. Esta linha não é para esse fim.



Para onde eu posso ir?

Há também este indicador: https://www.mql5.com/ru/code/8115#20318

Como analisar isso? Esta pergunta não tem resposta aqui?

 

Olá a todos! Feliz 9 de maio! Dia da Vitória!

Os profissionais precisam de sua ajuda.

if ( торговые условия)
     {                                          
      Opn_S=true;                              
      }
if ( торговые условия)
     {                                          
      Opn_B=true;                            
     }
if ( торговые условия)
     { 
     Cls_S=true;
     }
     else
if ( торговые условия)
     { 
     Cls_B=true;
     }

Depois deste código, preciso de um código que aja separadamente do código acima.

Ou seja, a posição será aberta e mantida por outros critérios estabelecidos, e quando eles desaparecerem para sair da posição e começar a agir de acordo com as condições comerciais originais (código acima).

A essência da estratégia é a seguinte: duas barras não tocam na compra mínima da EMA, duas barras não tocam na venda máxima da EMA.

Que código é necessário para implementá-lo.

Estou tentando colocar isto em critérios (não tenho certeza se este código é uma boa solução):

else
    for(i=0;i<=Quant_Bars-1;i++)  
   if (Low[i]> MA_3_t)
     {
     Opn_B=true;
     }
      return(false);

Passa sem erros, mas quando eu adiciono um critério para vendê-lo dá erros - este é um problema.

Outro - como cortar o cumprimento de um critério que está acima?

A terceira é definir os parâmetros do EMA pelo número de barras diárias (cada barra deve se referir ao EMA correspondente ao seu dia).

 
first_may:



Para onde eu posso ir?

Há também este indicador: https://www.mql5.com/ru/code/8115#20318

Como analisar isso? Esta pergunta não tem resposta aqui?


É aí que você poderia fazer a pergunta
 

Pessoal, podem me dizer por que o nome de usuário e a senha não se registram... ou qualquer um que possa conhecer e aconselhar...

A mensagem "4032291" aparece: a conexão falhou (Sem conexão).

Ping é verificação - significa que há uma conexão. Caso contrário, por alguma razão, não há conexão.

E como usar este mql4 ?

 
Vinin:

É assim que você poderia fazer uma pergunta lá


Haverá uma resposta? A última entrada ali foi datada de 11.05.2010 00:44...
 
first_may:


Será que eles responderão? A última entrada foi datada de 11.05.2010 00:44...
O autor da publicação está listado ali, clique e faça uma pergunta em uma mensagem privada!
 

Artyom e Boris, obrigado por "mastigar" a minha pergunta. Eu tenho períodos em que posso ficar preso a coisas bastante simples, como foi o caso desta vez...

Agora há uma nova pergunta.

Adicionei à função que calcula a quantidade de ordens abertas t, procura ordens de um tipo especificado com lucros especificados e compara seus lucros com algum valor especificado (atualmente 0). Além disso, se não houver ordens abertas, 2 bandeiras com valor Verdadeiro são retornadas com a função FindOrders() parâmetros, significa que você pode enviar uma ordem, mas se houver ordens, o lucro é verificado para garantir que seja maior que o valor definido, se for menor que o valor definido, 2 bandeiras com valor Falso são retornadas com a função FindOrders() parâmetros, portanto, quando houver ordens perdidas em alguma direção, não haverá investimentos na direção perdida.

//+-------------------------------------------------------------------------------------+
//| Поиск своих ордеров                                                                 |
//+-------------------------------------------------------------------------------------+
int FindOrders(bool& long, bool& short)
{
   int t, total = OrdersTotal() - 1;
   
   for (int i=total; i>=0; i--)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
          if (OrderSymbol() != Symbol()) continue;
              if (OrderMagicNumber() != i_magic) continue;
              {
                 if (OrderType() < 0)              // Ордера отсуствуют, значит можно послать ордер..
                     {
                        long = true;               // .. на покупку
                        short = true;              // .. на продажу
                     }
                 
                 if (OrderType() == OP_BUY)        // Найден ордер типа OP_BUY
                 {
                     if (OrderProfit() > 0)        // Если профит ордера выше заданного значения, то..
                         long = true;              // .. разрешена покупка
                 }

                 if (OrderType() == OP_SELL)       // Найден ордер типа OP_SELL
                 {
                     if (OrderProfit() > 0)        // Если профит ордера выше заданного значения, то..
                         short = true;             // .. разрешена продажа
                 }
                 
                 t++;
              }
   }
   
   return (t);
}

Depois disso, chamo a função FindOrders() na função de sinal:

//+-------------------------------------------------------------------------------------+
//| Получаем общий торговый сигнал                                                      |
//+-------------------------------------------------------------------------------------+
int GetGeneralSignal()
{
   bool short = false,
        long = false;
        
   if (FindOrders(short, long) > 3)
       return (SIGNAL_NO);

   if (long == false)
       return (SIGNAL_NO);
   if (GetRSI(1) < i_RSIToUpLimit)
      if (GetRSI(0) > i_RSIToUpLimit)
      {
         return (SIGNAL_BUY);
      }
           
   if (short == true)
       return (SIGNAL_NO);
   if (GetRSI(1) > i_RSIToDnLimit)
      if (GetRSI(0) < i_RSIToDnLimit)
      {
         return (SIGNAL_SELL);
      }
            
   return (SIGNAL_NO);
}

As ordens foram abertas. A lógica parece estar correta. Talvez, você pode ver onde eu cometi um erro?

Entendo que tudo pode ser feito mais facilmente com uma função separada e eu posso fazer isso. Mas eu quero entender porque não funciona nesta versão.

Razão: