![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Olá, Mladen,
Encontrei um código feito por você em estocástico. No entanto, quando eu o coloco em meus sistemas, nada acontece. Posso verificar com vocês o que ele faz?
http://www.forexmt4.com/mt_yahoo/Color%20Stochastic%20v1[ 1].04.mq4
Cumprimentos
Terrance
...
Experimente alguns destes postados aqui : https://www.mql5.com/en/forum/175297/page3
Ou aqui : https://www.mql5.com/en/forum/177239/page2
Testados e funcionam
Olá, Mladen,
Encontrei um código feito por você em estocástico. No entanto, quando eu o coloco em meus sistemas, nada acontece. Posso verificar com vocês o que ele faz?
http://www.forexmt4.com/mt_yahoo/Color%20Stochastic%20v1[ 1].04.mq4
Cumprimentos
TerranceIsto é estranho.
Analisei a questão do cadeado com um pouco mais de detalhe. Aparentemente tem a ver com minhas configurações de UAC ( Controle de Conta de Usuário), então entrei em meu painel de controle do Windows7 e desliguei o UAC com toda a facilidade. Uma vez reiniciado, notei que o cadeado havia desaparecido do arquivo. Eu o abri e é o mesmo que o arquivo que coloquei neste fórum. Completamente diferente do código que venho escrevendo nas últimas semanas, embora na verdade seja o mesmo arquivo. Pensei que tinha perdido todo o meu trabalho de codificação. Voltei a ligar a UAC e reiniciei, o cadeado havia retornado e o código que eu havia escrito estava de volta ao normal novamente.
Mas então eu tentei compilar o código e ele pegou uma carga de erros. Mas os erros que ele coleta não são deste código, mas o código completamente diferente quando eu desligo o UAC - eu sei disso porque suas variáveis de coleta que estão apenas no outro código.
Acho que precisarei abrir uma nova marca EA e digitar manualmente todo este código e salvá-lo.
...
É um problema usual com as janelas 7 (com sua proteção)
A maneira mais simples de evitar isso sob as janelas 7 é instalar o metatrader em uma divisória diferente da C e você não terá problemas desse tipo
Isto é estranho.
Analisei a questão do cadeado com um pouco mais de detalhe. Aparentemente tem a ver com minhas configurações de UAC (Controle de Conta de Usuário), então eu entrei em meu painel de controle do Windows7 e desliguei o UAC com toda a facilidade. Uma vez reiniciado, notei que o cadeado havia desaparecido do arquivo. Eu o abri e é o mesmo que o arquivo que coloquei neste fórum. Completamente diferente do código que venho escrevendo nas últimas semanas, embora na verdade seja o mesmo arquivo. Pensei que tinha perdido todo o meu trabalho de codificação. Voltei a ligar a UAC e reiniciei, o cadeado havia retornado e o código que eu havia escrito estava de volta ao normal novamente.
Mas então eu tentei compilar o código e ele pegou uma carga de erros. Mas os erros que ele coleta não são deste código, mas o código completamente diferente quando eu desligo o UAC - eu sei disso porque suas variáveis de coleta que estão apenas no outro código.
Acho que precisarei abrir uma nova marca EA e digitar manualmente todo este código e salvá-lo.Finalmente consegui um EA de trabalho adequado. Funciona exatamente como deveria - acabei copiando meu código para o bloco de notas, transformando o UAC, depois colando-o em um novo arquivo EA. E eu sussurrei por que minhas funções estavam funcionando - eu tinha colocado uma variável int dentro de uma variável normalizada. Não sabia que não podia fazer isso, mas agora eu faço - só levei uma semana para descobrir! :/
De qualquer forma, escrevi isto:
if (VariableRisk == verdadeiro) Risk = GetRiskShort (LastOpenTicket, RiskShort);
if (VariableRisk == falso) Risco = StaticRisk;
E estava se perguntando se ele pode ser abreviado assim?
se (VariableRisk == verdadeiro)
{
Risco = GetRiskShort (LastOpenTicket, RiskShort);
else Risk = StaticRisk;
}
E também escrevi isto:
//--- Função para calcular a posição de lucro quando longo
duplo GetTPPriceLong (duplo SLPriceLong, int RiskRewardRatio, int StaticTP, bool AutoCalcTakeProfit)
{
duplo TPPriceLong = 0;
se (AutoCalcTakeProfit == verdadeiro)
{
RefreshRates();
TPPriceLong = OrderOpenPrice() + ((OrderOpenPrice() - SLPriceLong) * RiskRewardRatio);
Print("Take profit position calculated successfully");
retorno (TPPriceLong);
}
se (AutoCalcTakeProfit == falso)
{
RefreshRates();
TPPriceLong = OrderOpenPrice() + (StaticTP * 0,0001);
Print("Static take profit position calculated successfully");
retorno (TPPriceLong);
}
}
E estava se perguntando se pode ser abreviado desta forma?
//--- Função para calcular a posição de lucro quando longo
duplo GetTPPriceLong (duplo SLPriceLong, int RiskRewardRatio, int StaticTP, bool AutoCalcTakeProfit)
{
duplo TPPriceLong = 0;
RefreshRates();
se (AutoCalcTakeProfit == verdadeiro)
{
TPPriceLong = OrderOpenPrice() + ((OrderOpenPrice() - SLPriceLong) * RiskRewardRatio);
Print("Take profit position calculated successfully");
caso contrário TPPriceLong = OrderOpenPrice() + (StaticTP * 0,0001);
Imprimir("Static take profit position calculated successfully");
retorno (TPPriceLong);
}
E uma última pergunta, para dar mais flexibilidade à minha EA, quero definir meus prazos como variáveis externas. Meu gráfico de sinal deve ser D1, digamos, e meu gráfico de disparo deve ser H4. Portanto, sob variáveis externas, eu poderia fazer isso:
gráfico de sinal int externo = PERÍODO_D1;
gráfico de disparo externo int = PERÍODO_H4;
E depois referenciá-lo fazendo isto, por exemplo:
SlowMACurrent = iMA(Symbol(), SignalChart, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
Sobre esta parte :
Sim, essa é uma forma 100% correta de usá-la (mesmo ao ponto de você estar usando uma barra fechada (o deslocamento nesse exemplo é definido como 1) e que, usando uma barra fechada no teste, você vai evitar a armadilha usual de usar a barra aberta em um quadro de tempo múltiplo)
Finalmente consegui um EA de trabalho adequado. Funciona exatamente como deveria - acabei copiando meu código para o bloco de notas, transformando o UAC, depois colando-o em um novo arquivo EA. E eu sussurrei porque minhas funções estavam funcionando - eu tinha colocado uma variável int dentro de uma variável normalizada. Não sabia que não podia fazer isso, mas agora eu faço - só levei uma semana para descobrir! :/
De qualquer forma, escrevi isto:
se (VariableRisk == verdadeiro) Risco = GetRiskShort (LastOpenTicket, RiskShort);
if (VariableRisk == falso) Risco = StaticRisk;
E estava se perguntando se ele pode ser abreviado assim?
se (VariableRisk == verdadeiro)
{
Risco = GetRiskShort (LastOpenTicket, RiskShort);
else Risk = StaticRisk;
}
E também escrevi isto:
//--- Função para calcular a posição de lucro quando longo
duplo GetTPPriceLong (duplo SLPriceLong, int RiskRewardRatio, int StaticTP, bool AutoCalcTakeProfit)
{
duplo TPPriceLong = 0;
se (AutoCalcTakeProfit == verdadeiro)
{
RefreshRates();
TPPriceLong = OrderOpenPrice() + ((OrderOpenPrice() - SLPriceLong) * RiskRewardRatio);
Print("Take profit position calculated successfully");
retorno (TPPriceLong);
}
se (AutoCalcTakeProfit == falso)
{
RefreshRates();
TPPriceLong = OrderOpenPrice() + (StaticTP * 0,0001);
Print("Static take profit position calculated successfully");
retorno (TPPriceLong);
}
}
E estava se perguntando se pode ser abreviado desta forma?
//--- Função para calcular a posição de lucro quando longo
duplo GetTPPriceLong (duplo SLPriceLong, int RiskRewardRatio, int StaticTP, bool AutoCalcTakeProfit)
{
duplo TPPriceLong = 0;
RefreshRates();
se (AutoCalcTakeProfit == verdadeiro)
{
TPPriceLong = OrderOpenPrice() + ((OrderOpenPrice() - SLPriceLong) * RiskRewardRatio);
Print("Take profit position calculated successfully");
caso contrário TPPriceLong = OrderOpenPrice() + (StaticTP * 0,0001);
Imprimir("Static take profit position calculated successfully");
retorno (TPPriceLong);
}
E uma última pergunta, para dar mais flexibilidade à minha EA, quero definir meus prazos como variáveis externas. Meu gráfico de sinal deve ser D1, digamos, e meu gráfico de disparo deve ser H4. Portanto, sob variáveis externas, eu poderia fazer isso:
gráfico de sinal int externo = PERÍODO_D1;
gráfico de disparo externo int = PERÍODO_H4;
E depois referenciá-lo fazendo isto, por exemplo:
SlowMACurrent = iMA(Symbol(), SignalChart, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);Olá, estou recebendo o código de erro 4059:
ERR_FUNC_NOT_ALLOWED_IN_TESTING[/TD]
Fiz uma pesquisa mas não consigo encontrar mais informações sobre o que isso significa?
Você pode ajudar a adicionar os seguintes códigos a este indicador de sarabolizantes parabólicos?
Obrigado Mladen,
Vou reler seu post para entender, honestamente fiquei um pouco perdido lendo-o, mas o mais provável é que seja minha ignorância a tomar jogo. Colocarei perguntas se eu tiver alguma.
Obrigado, amigo.
Obrigado, amigo,
PipPrezado amigo,
VOCÊ PODE AJUDAR A ADICIONAR OS SEGUINTES CÓDIGOS A ESTE SAR PARABÓLICO alerta parabólico_alert_mod.mq4INDICATOR?
Eu não estou procurando por um EA. Se possível, pelo menos adicione a opção SHIFT ao indicador.
Duplo TakeProfit externo = 50;
duplo externo Lots = 0,1;
Duplo Exterior TrailingStop = 30;
duplo SAR_Step externo = 0,02;
duplo SAR_Máximo SAR_Máximo = 0,2;
duplo Shift externo=1;
...
... joelnelson
TakeProfit, Lots and TrailingStop nada têm a ver com a forma como os sar s parabólicos são calculados (esses parâmetros são obviamente tirados de uma EA usando sar em seu trabalho). Portanto, se você não está procurando um EA, não é possível adicionar esses parâmetros de forma significativa
Além disso, a mudança dos parâmetros está se referindo à barra que é testada (o SAR parabólico não é deslocado, pois a média móvel pode ser deslocada normalmente).
Shift 1 nesse caso para testar o valor da primeira barra fechada de sarabolizantes parabólicos
Prezado Amigo,
VOCÊ PODE AJUDAR A ADICIONAR OS SEGUINTES CÓDIGOS A ESTE SAR PARABÓLICO alerta parabólico_alert_mod.mq4INDICATOR?
Eu não estou procurando por um EA. Se possível, pelo menos adicione a opção SHIFT ao indicador.
Duplo TakeProfit externo = 50;
duplo externo Lots = 0,1;
Duplo Exterior TrailingStop = 30;
duplo SAR_Step externo = 0,02;
duplo SAR_Máximo SAR_Máximo = 0,2;
turno duplo externo=1;...
Esse erro pode ser devolvido por algumas funções.
As funções que podem causar esse erro nos testes são as seguintes :
Então, uma chamada para algumas das funções acima causou esse erro
Olá, estou recebendo o código de erro 4059: