Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 93
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
As impressões só podem ser inseridas dentro de uma função, mas eu não entendo como chamar esta função para fazer a impressão ou alerta funcionar. Você pode ajudar, fixando meu código com três variáveis simples? Faço tudo como descrito no artigo, mas o editor não aparece, ou falta algo, ou falta algo, em qualquer caso, a parede, então pedi ajuda. Obrigado pelo SKC.
Você está emitindo d com um alerta.
Onde é calculado?
//| TestASD.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int InputA=1;
input int InputB=3;
class ASD
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
int c(int m_a,int m_b)
{
m_a=a+b; m_b=a-b;
int m_d=m_a+m_b;
d=m_d;
Print(__FUNCTION__);
return(c(m_a,m_b));
}
public:
int a;
int b;
int d;
};
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
ASD ar;
void OnStart()
{
//---
ar.a=InputA;
ar.b=InputB;
Alert("ar.a=",ar.a,"\nar.b=",ar.b,"\nar.d=",ar.d);
}
//+------------------------------------------------------------------+
Dentro da classe, faça impressões a valores. E depois veja no registro o que será impresso ao executar o roteiro ;)
E assim também está tudo bem.
classe:
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
int a_s;
int a_d;
int d;
int g ()
{d=a_s+a_d;
return (g());
}
public:
void fg (int a,int b)
{ a_s=a;
a_d=b;
}
void sf ()
{g ();
Alert (d);}
};
o roteiro
ASD ar;
void OnStart()
{
ar.fg (3,5);
ar.sf ();
}
E assim também está tudo bem.
classe:
E assim também nada
//| TestASD.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int InputA=1;
input int InputB=3;
class ASD
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
public:
int a;
int b;
int d;
int c(int m_a,int m_b)
{
m_a=a+b; m_b=a-b;
d=m_a+m_b;
Print(__FUNCTION__);
return(d);
}
};
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
ASD ar;
void OnStart()
{
//---
ar.a=InputA;
ar.b=InputB;
Alert("ar.a=",ar.a,"\nar.b=",ar.b,"\nar.d=",ar.d,"\nar.c(",ar.a,",",ar.b,")=",ar.c(ar.a,ar.b));
}
//+------------------------------------------------------------------+
Não está claro - o que você quer obter?
Eu tenho:
1. para passar dados do roteiro para a classe
2. Somar esses dados na classe
3. Passe a soma da classe para o roteiro
4. A partir do roteiro, imprimir a soma dos dados em um monitor ou impressora.
Tudo!
Eu tenho:
1. passar dados do roteiro para a classe
2. Somar esses dados na classe
3. Passe a soma da classe para o roteiro
4. a partir do roteiro, enviar a soma dos dados para um monitor ou impressora.
Todos!
Veja o exemplo acima
Mas também não calcula a soma das variáveis a+b=d, enquanto eu preciso da soma de d!
Eu não lhe mostrei exatamente o que deveria contar. Eu mostrei como obter o valor calculado - chamar a função c();
Você não o chamou em nenhum lugar, e esperou por d para de alguma forma se calcular.
E o que a função c() calcula depende de você
Eu não lhe mostrei exatamente o que deveria contar. Eu mostrei como obter o valor calculado - chamar a função c();
Você não ligou para nenhum lugar, e estava esperando por d para de alguma forma se calcular.
E você deve decidir por si mesmo o que a função c() conta!
Eu sei como criar e chamar a função no Expert Advisor, e a utilizo. A questão é sobre as aulas!
Eu não lhe mostrei exatamente o que deveria contar. Eu mostrei como obter o valor calculado - chamar a função c();
Você não chamou em nenhum lugar, e estava esperando o d para de alguma forma se calcular.
E o que a função c() calcula depende de você
Esse é o ponto, como chamar uma função dentro de uma classe, ou seja, como privada: pública:, como passar dados para uma classe e como obter o resultado da classe. Até agora é isso!
Mas sua função também não calcula nada.