int GetCrossingMa(double& i_maFast1, double& i_maFast2, double& i_maSlow1, double& i_maSlow2) função recebe o sinal de cruzamento.
na funçãoGetStochSignal(double& stochD1, double& stochD2, double& stochK1, double& stochK2) recebe sinal de estocástico.
A função GetMomentumSignal() vazia ganha o valor do impulso.
O int GetSignal() receberá o sinal geral com base nas 3 funções anteriores e não somente nelas. A questão é esta. Como a funçãoint GetSignal() é a principal, por assim dizer, e recebe o sinal principal, recebo todos os valores das abas(i_maFast1,i_maFast2, i_maSlow1 ei_maSlow2) e stochastics(stochD1,stochD2,stochK1,stochK2)
Eu não gosto de bisbilhotar em código de esquerda, mas imediatamente me chamou a atenção o porquê de haver um & (!) após o dobro em funções. Isto é o que causa erros!
Para evitar explicar o código em detalhes, vou explicá-lo brevemente.
Existem 3 funções:(int GetCrossingMa, int GetStochSignal e intGetSignal())
A função int GetSignal() recebe valores de abas e outros indicadores que são passados por referênciaa funçõesnão centrais(int GetCrossingMa eint GetStochSignal) para obter sinais correspondentes nelas. Quero fazer isso para evitar obter os mesmos dados em funções diferentes. Não me parece sábio calcular a mesma máscara em 2 ou mais funções. É mais fácil calculá-lo apenas uma vez, e é isso. Por que desperdiçar recursos adicionais com isso?
Portanto, faz sentido. Significa transferir parâmetros através de links.
Para evitar explicar o código em detalhes, vou explicá-lo brevemente.
Existem 3 funções:(int GetCrossingMa, int GetStochSignal e intGetSignal())
A função int GetSignal() recebe valores de abas e outros indicadores que são passados por referênciaa funçõesnão centrais(int GetCrossingMa eint GetStochSignal) para obter sinais correspondentes nelas. Quero fazer isso para evitar obter os mesmos dados em funções diferentes. Não me parece sábio calcular as mesmas máscaras em 2 ou mais funções. É mais fácil calculá-lo apenas uma vez, e é isso. Por que desperdiçar recursos adicionais com isso?
int GetCrossingMa(double& i_maFast1, double& i_maFast2, double& i_maSlow1, double& i_maSlow2) função recebe o sinal de cruzamento.
na funçãoGetStochSignal(double& stochD1, double& stochD2, double& stochK1, double& stochK2) recebe sinal de estocástico.
A função GetMomentumSignal() vazia ganha o valor do impulso.
O int GetSignal() receberá o sinal geral com base nas 3 funções anteriores e não somente nelas. A questão é esta. Como a funçãoint GetSignal() é a principal, por assim dizer, e recebe o sinal principal, recebo todos os valores das abas(i_maFast1,i_maFast2, i_maSlow1 ei_maSlow2) e stochastics(stochD1,stochD2,stochK1,stochK2)
Fui correto ao otimizar o código?
Naturalmente, todos os parâmetros obtidos na funçãoGetSignal() são passados por referência às funções correspondentes.
Mas aqui este fragmento
erro surgirá na compilação:
Por quê?
Esta pode ser uma variante de busca de sinais na barra que precisamos:
//+---------------------------------------------------------------------------------------+//| Проверка пересечения скользящих средних |//+---------------------------------------------------------------------------------------+int GetCrossingMa (int fi_Bar = 1)
{
double i_maFast1 = iMA (Symbol(), i_TF, i_maFastPeriod, i_maFastShift, i_maFastMethod, 0, fi_Bar), // Вычисляем быстрые скользящие..
i_maFast2 = iMA (Symbol(), i_TF, i_maFastPeriod, i_maFastShift, i_maFastMethod, 0, fi_Bar + 1), //..средние
i_maSlow1 = iMA (Symbol(), i_TF, i_maSlowPeriod, i_maSlowShift, i_maSlowMethod, 0, fi_Bar), // Вычисляем медленные скользящие..
i_maSlow2 = iMA (Symbol(), i_TF, i_maSlowPeriod, i_maSlowShift, i_maSlowMethod, 0, fi_Bar + 1); //..средние//----if (i_maFast2 < i_maSlow2) if (i_maFast1 > i_maSlow1) // Если быстрая скользящая пересекла медленную снизу вверх..return (CROSSINGTOUP); //.. значит, - пересечение вверхif (i_maFast2 > i_maSlow2) if (i_maFast1 < i_maSlow1) // Если быстрая скользящая средняя пересекла медленную сверху вниз..return (CROSSINGTODOWN); //..значит, - пересечение вниз//----return (CROSSINGWAIT); // Ожидаем пересечения
}
//+---------------------------------------------------------------------------------------+//| Получение сигнала от Стохастика |//+---------------------------------------------------------------------------------------+int GetStochSignal (int fi_Bar = 1)
{
double stochD1 = iStochastic (Symbol(), i_TF, i_stoch_D, i_stoch_K, i_stoch_slowing, 0, 0, 1, fi_Bar), // Вычисляем значения сигнальной линии..
stochD2 = iStochastic (Symbol(), i_TF, i_stoch_D, i_stoch_K, i_stoch_slowing, 0, 0, 1, fi_Bar + 1), //..стохастика
stochK1 = iStochastic (Symbol(), i_TF, i_stoch_D, i_stoch_K, i_stoch_slowing, 0, 0, 0, fi_Bar), // Вычисляем значения главной линии..
stochK2 = iStochastic (Symbol(), i_TF, i_stoch_D, i_stoch_K, i_stoch_slowing, 0, 0, 0, fi_Bar + 1); //..стохастика//----if (stochD2 < stochK2) if (stochD1 > stochK1) // Если сигнальная линия пересекла главную снизу вверх..return (CROSSINGTOUP); //..значит, - пересечение вверхif (stochD2 > stochK2) if (stochD1 < stochK1) // Если сигнальная линия пересекла главную сверху вниз..return (CROSSINGTODOWN); // ..значит, - пересечение вниз
}
//----return (CROSSINGWAIT); // Ожидаем пересечения
}
//+---------------------------------------------------------------------------------------+//| Получение сигнала от Моментума |//+---------------------------------------------------------------------------------------+double GetMomentumSignal (int fi_Bar = 0)
{return (iMomentum (Symbol(), i_TF, i_momPeriod, 0, fi_Bar));}
//+---------------------------------------------------------------------------------------+//| Получение общего сигнала для входа в рынок |//+---------------------------------------------------------------------------------------+int GetSignal (int fi_Bar = 1)
{
int li_Signal;
//----double ld_SignalMomentum = GetMomentumSignal (fi_Bar);
int li_SignalStoch = GetStochSignal (fi_Bar),
li_CrossingMA = GetCrossingMa (fi_Bar);
//----return (li_Signal);
}
E na última função GetSignal() você faz "adição" de todos os sinais (por você mesmo).
P.S. Há um momento "delicado" na obtenção do sinal do indicador. Por exemplo, você pode corrigir o fato de encontrar maSlow over / under maFast, ou você pode "pegar" o momento de sua interseção. A abordagem e o código são diferentes.
Portanto, faz sentido. Significa transferir parâmetros através de links.
Para evitar explicar o código em detalhes, vou explicá-lo brevemente.
Existem 3 funções:(int GetCrossingMa, int GetStochSignal e intGetSignal())
A função int GetSignal() recebe valores de abas e outros indicadores que são passados por referênciaa funçõesnão centrais(int GetCrossingMa eint GetStochSignal) para obter sinais correspondentes nelas. Quero fazer isso para evitar obter os mesmos dados em funções diferentes. Não me parece sábio calcular a mesma máscara em 2 ou mais funções. É mais fácil calculá-lo apenas uma vez, e é isso. Por que desperdiçar recursos adicionais com ela?
As explicações são claras, mas as ações não são. Estes são estes: "Afunção int GetSignal() obtém valores de escalas e outras ações deindicadores" em sua variante são "questionáveis", para dizer de forma branda, pois não há necessidade de tais ações.
P.... completo Você se dá conta do que está "acontecendo" aqui? - Toda a "fila de barras" é pesquisada em vão e, no final do laço, as variáveis são deixadas com valores... Adivinhe o que acontece a seguir.
Bom dia amigos! Você pode dizer a um profissional como começar a usar a plataforma de negociação NZ MT4? Eu não consigo entender a interface da plataforma, onde começar, quero dizer uma conta demo, como comprar uma ação com a venda subseqüente?
Você precisa criar programas separados (tarefas) para desativar os terminais habilitados?
Aqui está o meu tutorial de teste de coruja crua:
int GetCrossingMa(double& i_maFast1, double& i_maFast2, double& i_maSlow1, double& i_maSlow2) função recebe o sinal de cruzamento.
na funçãoGetStochSignal(double& stochD1, double& stochD2, double& stochK1, double& stochK2) recebe sinal de estocástico.
A função GetMomentumSignal() vazia ganha o valor do impulso.
O int GetSignal() receberá o sinal geral com base nas 3 funções anteriores e não somente nelas. A questão é esta. Como a funçãoint GetSignal() é a principal, por assim dizer, e recebe o sinal principal, recebo todos os valores das abas(i_maFast1,i_maFast2, i_maSlow1 ei_maSlow2) e stochastics(stochD1,stochD2,stochK1,stochK2)
Fui correto ao otimizar o código?
Naturalmente, todos os parâmetros obtidos na funçãoGetSignal() são passados por referência às funções correspondentes.
Mas aqui este fragmento
há um erro na compilação:
Aqui está o meu tutorial de teste de coruja crua:
Um erro aparece quando da compilação:
Porque:
Não gosto de cavar em código personalizado, mas notei imediatamente porque há & (!) depois de dobrar em funções. Isto é o que causa erros!
Portanto, faz sentido. Significa transferir parâmetros através de links.
Para evitar explicar o código em detalhes, vou explicá-lo brevemente.
Existem 3 funções:(int GetCrossingMa, int GetStochSignal e int GetSignal())
A função int GetSignal() recebe valores de abas e outros indicadores que são passados por referênciaa funçõesnão centrais(int GetCrossingMa eint GetStochSignal) para obter sinais correspondentes nelas. Quero fazer isso para evitar obter os mesmos dados em funções diferentes. Não me parece sábio calcular a mesma máscara em 2 ou mais funções. É mais fácil calculá-lo apenas uma vez, e é isso. Por que desperdiçar recursos adicionais com isso?
Portanto, faz sentido. Significa transferir parâmetros através de links.
Para evitar explicar o código em detalhes, vou explicá-lo brevemente.
Existem 3 funções:(int GetCrossingMa, int GetStochSignal e int GetSignal())
A função int GetSignal() recebe valores de abas e outros indicadores que são passados por referênciaa funçõesnão centrais(int GetCrossingMa eint GetStochSignal) para obter sinais correspondentes nelas. Quero fazer isso para evitar obter os mesmos dados em funções diferentes. Não me parece sábio calcular as mesmas máscaras em 2 ou mais funções. É mais fácil calculá-lo apenas uma vez, e é isso. Por que desperdiçar recursos adicionais com isso?
Você já programou em um idioma diferente de µl4?
Aqui está o meu tutorial de teste de coruja crua:
int GetCrossingMa(double& i_maFast1, double& i_maFast2, double& i_maSlow1, double& i_maSlow2) função recebe o sinal de cruzamento.
na funçãoGetStochSignal(double& stochD1, double& stochD2, double& stochK1, double& stochK2) recebe sinal de estocástico.
A função GetMomentumSignal() vazia ganha o valor do impulso.
O int GetSignal() receberá o sinal geral com base nas 3 funções anteriores e não somente nelas. A questão é esta. Como a funçãoint GetSignal() é a principal, por assim dizer, e recebe o sinal principal, recebo todos os valores das abas(i_maFast1,i_maFast2, i_maSlow1 ei_maSlow2) e stochastics(stochD1,stochD2,stochK1,stochK2)
Fui correto ao otimizar o código?
Naturalmente, todos os parâmetros obtidos na funçãoGetSignal() são passados por referência às funções correspondentes.
Mas aqui este fragmento
erro surgirá na compilação:
Esta pode ser uma variante de busca de sinais na barra que precisamos:
E na última função GetSignal() você faz "adição" de todos os sinais (por você mesmo).
P.S. Há um momento "delicado" na obtenção do sinal do indicador. Por exemplo, você pode corrigir o fato de encontrar maSlow over / under maFast, ou você pode "pegar" o momento de sua interseção. A abordagem e o código são diferentes.
Você já programou em um idioma diferente de µl4?
Portanto, faz sentido. Significa transferir parâmetros através de links.
Para evitar explicar o código em detalhes, vou explicá-lo brevemente.
Existem 3 funções:(int GetCrossingMa, int GetStochSignal e int GetSignal())
A função int GetSignal() recebe valores de abas e outros indicadores que são passados por referênciaa funçõesnão centrais(int GetCrossingMa eint GetStochSignal) para obter sinais correspondentes nelas. Quero fazer isso para evitar obter os mesmos dados em funções diferentes. Não me parece sábio calcular a mesma máscara em 2 ou mais funções. É mais fácil calculá-lo apenas uma vez, e é isso. Por que desperdiçar recursos adicionais com ela?
As explicações são claras, mas as ações não são.
Estes são estes: "Afunção int GetSignal() obtém valores de escalas e outras ações deindicadores" em sua variante são "questionáveis", para dizer de forma branda, pois não há necessidade de tais ações.
Este código:
P.... completo Você se dá conta do que está "acontecendo" aqui? - Toda a "fila de barras" é pesquisada em vão e, no final do laço, as variáveis são deixadas com valores... Adivinhe o que acontece a seguir.