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

 
Caros programadores. Como iniciante é difícil para mim escrever algoritmo, posso editá-lo, portanto, por favor, me ajude. Eu ficaria muito, muito grato!!!
Uma EA tão simples e tão necessária:

Se a condição1 for cumprida, então:
- cheque para ordens de venda abertas
-Cheque se há alguma ordem de VENDA, abra e feche-a.
verifique se há alguma ordem de venda aberta - se houver, feche-a.

O mesmo se a condição 2 for cumprida, então
-verificar se há alguma ordem de compra aberta
-se houver, feche-os
verificar se há alguma ordem de compra aberta - se houver, fechá-la
-abrir uma ordem de venda
+ análise de erros (não é o principal, mas é possível)
Tudo isso é para o par de moedas atual.

int start()                       
  {
   double M_0, M_1,               // Значение MAIN на 0 и 1 барах
          S_0, S_1;               // Значение SIGNAL на 0 и 1барах
//--------------------------------------------------------------------
                                  // Обращение к функции техн.индикат.
   M_0 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,  0);// 0 бар
   M_1 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,  1);// 1 бар
   S_0 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0);// 0 бар
   S_1 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);// 1 бар
//--------------------------------------------------------------------
                                  
   if( M_1 < S_1 && M_0 >= S_0 )  // УСЛОВИЕ 1: Зеленая пересекает красную снизу
     
   if( M_1 > S_1 && M_0 <= S_0 )  // УСЛОВИЕ 2: Зеленая пересекает красную сверху
     
//--------------------------------------------------------------------
   return;                            // Выход из start()
  }
 
Olá! Você poderia me dizer se é possível atribuir um valor a várias variáveis globais dentro de uma função, e onde essas variáveis devem ser declaradas nesse caso?
 
ideasforlife:
Caros programadores. Como iniciante é difícil para mim escrever algoritmo, posso editá-lo, portanto, por favor, me ajude. Eu ficaria muito, muito grato!!!
Uma EA tão simples e tão necessária:

Se a condição1 for cumprida, então:
- cheque para ordens de venda abertas
-Cheque se há alguma ordem de VENDA, abra e feche-a.
verifique se há alguma ordem de venda aberta - se houver, feche-a.
-abrir pedido de compra

O mesmo se a condição 2 for cumprida, então
-verificar se há alguma ordem de compra aberta
-se houver, feche-os
verificar se há alguma ordem de compra aberta - se houver, feche-a
-abrir uma ordem de venda
+ análise de erros (não é o principal, mas é possível)
Tudo isso é para o par de moedas atual.

Há muitos Consultores Especialistas em estocástica na CodeBase. Ver e refazer
 
ideasforlife:
Caros programadores. Como iniciante é difícil para mim escrever algoritmo, posso editá-lo, portanto, por favor, me ajude. Eu ficaria muito, muito grato!!!
Uma EA tão simples e tão necessária:

Se a condição1 for cumprida, então:
- cheque para ordens de venda abertas
-Cheque se há alguma ordem de VENDA, abra e feche-a.
verifique se há alguma ordem de venda aberta - se houver, feche-a.
-abrir pedido de compra

O mesmo se a condição 2 for cumprida, então
-verificar se há alguma ordem de compra aberta
-se houver, feche-os
verificar se há alguma ordem de compra aberta - se houver, feche-a
-abrir uma ordem de venda
+ análise de erros (não é o principal, mas é possível)
Isso é tudo para o par de moedas atual.

E ainda mais fácil seria um exemplo do livro didático: https://book.mql4.com/ru/samples/expert.

É assim tão difícil ler um livro de texto de capa a capa?

 
ideasforlife:
Caros programadores. Como iniciante é difícil para mim escrever algoritmo, posso editá-lo, portanto, por favor, me ajude. Eu ficaria muito, muito grato!!!
Uma EA tão simples e tão necessária:

Se a condição1 for cumprida, então:
- cheque para ordens de venda abertas
-Cheque se há alguma ordem de VENDA, abra e feche-a.
verifique se há alguma ordem de venda aberta - se houver, feche-a.
-abrir pedido de compra

O mesmo se a condição 2 for cumprida, então
-verificar se há alguma ordem de compra aberta
-se houver, feche-os
verificar se há alguma ordem de compra aberta - se houver, feche-a
-abrir uma ordem de venda
+ análise de erros (não é o principal, mas é possível)
Tudo isso é para o par de moedas atual.


Solução pronta - em versão livro didático, aqui. Tire tudo sobre MACD - aqui e é isso... :-Р

P.S. Até mesmo os nomes das variáveis são quase os mesmos. Você pode ler nosso tutorial, ele tem tanto a descrição como tudo mais. :-Р

 
Roman.:


Solução pronta - em versão livro didático, aqui. Tire tudo sobre MACD - aqui e é isso... :-Р

P.S. Até mesmo os nomes das variáveis são praticamente os mesmos. Leia o livro didático - há uma descrição e tudo mais. :-Р

Eu primeiro! :-P :-P
 
Code:

Olá, caros membros do fórum.

É claro, tenho algumas perguntas de um recém-chegado. Estou tentando aprender o mql4, já que nunca desenvolvi nenhum programa antes, por isso as perguntas podem ser muito primitivas. Mas eu nunca fui capaz de fazê-lo sozinho.

Decidi "bagunçar" com a exibição de volumes desenhando uma linha em vez de um gráfico de barras com algum processamento. O código deve fazer o seguinte sentido. A partir da segunda barra que está na mesma direção que a barra anterior (ambas as barras estão para cima), o volume é extraído da segunda barra. Como resultado, recebo uma linha quebrada na janela indicadora, que de fato é traçada da segunda barra para cima, mas não em todos os casos por algum motivo. A linha é interrompida porque outras condições de seu desenho não estão definidas de forma alguma, é uma coisa do futuro. Mas eu mesmo aqui para entender porque a linha não é traçada em cada segunda barra para cima, eu não posso. Por favor, me ajude.

Aqui está o código. Se você tiver qualquer outro comentário sobre outros erros no código, eu ficaria feliz.


Qual é o significado deste indicador? Por que eu preciso disso?


Por que você precisaria de uma tal caracterização:

ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;

Ou é, mas já está exposto:

ExtVolumesBuffer[i]=Volume[i]+(Volume[i]+Volume[i+1])/(2-(Close[i]-Open[i+1])*1000);

???


E sobre os erros do código. Suas linhas.

double dVolume=Volume[i];
double vback1=Volume[i+1];

         {
         double vteor12=(dVolume+vback1)/2;
            if (Close[i+1]>Open[i+1] && Close[i]>Open[i]) double UP12=(Close[i]-Open[i+1])*1000; else UP12=0;
            if (UP12!=0) double vrealUP12=(dVolume+vback1)/UP12; else vrealUP12=0;
            if (Close[i+1]>Open[i+1])
            if (Close[i]>Open[i])
            ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;
            if (ExtVolumesBuffer[i]<0) ExtVolumesBuffer[i]=0;
              }

equivalentes dos seguintes:

double dVolume=Volume[i];
double vback1=Volume[i+1];

double vteor12=(dVolume+vback1)/2;
if (Close[i+1]>Open[i+1] && Close[i]>Open[i])
{
   double UP12=(Close[i]-Open[i+1])*1000;
   double vrealUP12=(dVolume+vback1)/(Close[i]-Open[i+1])*1000;
   ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;
   if (ExtVolumesBuffer[i]<0)
      ExtVolumesBuffer[i]=0;
}
else
{
   UP12=0;
   vrealUP12=0;
}

Você olha para o código otimizado e pensa por que tantas variáveis foram introduzidas? E por que eles estariam "de outra forma" zerados?

Se eu entendesse a idéia do indicador, eu seria capaz de ajudá-lo.

 
MaxZ:

Qual seria o objetivo deste indicador? Por que você precisa de um?


Por que você precisaria de tal característica:

??? ou é, mas já divulgado:

???


E sobre os erros do código. Suas linhas

são o equivalente do seguinte:

Você olha para o código otimizado e se pergunta por que tantas variáveis foram inseridas em primeiro lugar? E por que eles estariam "de outra forma" zerados?

Se eu entendesse a idéia do indicador, talvez pudesse ajudá-los.


Obrigado por sua resposta e eu responderei suas perguntas.

Essa mesma característica é apenas a idéia completa do indicador. Eu também preparei um exercício sobre MQL. Eu pensei em uma tarefa e intuitivamente entendo que sua implementação em uma linguagem não é muito difícil. Eu me sento e tento.

Portanto, a essência da característica é que eu comparo um certo nível teórico fixo de dois volumes unidirecionais com o nível real. Ou seja, se a relação real da soma de dois volumes com o intervalo real "open-close" for maior que a teórica especificada, eu adiciono um "bônus" ao segundo volume real na forma da diferença entre os resultados teóricos calculados e os resultados reais. Se o nível real for inferior ao teórico, subtraio a mesma diferença do volume da segunda barra. Posso explicar isso claramente?

Só por precaução, direi que ao revelar esta característica, você coloca os parênteses errados, provavelmente com pressa.

Além disso, parece-me que aquelas cordas que você considera equivalentes às minhas levarão à divisão por zero. Estarei verificando agora.

 

Olá a todos!

Graças à inestimável ajuda dos especialistas deste ramo (especialmente Roman), consegui fazer um simples Expert Advisor, que é + sobre o testador. Pergunta: Como determinar se ela pode ser colocada para comercialização real? Existe algum critério?

 
MaxZ:
Eu primeiro! :-P :-P

Você está indo no caminho errado... Não é uma questão de critério comercial correto, é uma questão de STO-HAS-TO-KE... :-Р