Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 386
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
Hmm... Eu não havia pensado em mudar as coordenadas. Obrigado pela dica.
Então aqui vai uma pergunta. Há uma condição de ponto de entrada. Eu a implementei através de variáveis estáticas, para que ela não seja zerada a cada tick. Bem, em alguns lugares do gráfico o robô desenha um ponto de entrada onde não há níveis horizontais e, portanto, sua interseção com MA. Por favor, execute o código em seu testador e você verá o problema. Em EURUSD. Talvez este problema precise ser implementado de uma maneira diferente? Não sou um profissional em programação.
Ou seja, o padrão apareceu, níveis foram desenhados e o robô espera por três cruzes de um dos níveis.
O que você pensa sobre isso?
Hmm... Eu não havia pensado em mudar as coordenadas. Obrigado pela dica.
Então aqui vai uma pergunta. Há uma condição de ponto de entrada. Eu a implementei através de variáveis estáticas, para que ela não seja zerada a cada tick. Bem, em alguns lugares do gráfico o robô desenha um ponto de entrada onde não há níveis horizontais e, portanto, sua interseção com MA. Por favor, execute o código em seu testador e você verá o problema. Em EURUSD. Talvez este problema precise ser implementado de uma maneira diferente? Não sou um profissional em programação.
Ou seja, o padrão apareceu, níveis foram desenhados e o robô espera por três cruzes de um dos níveis.
O que você pensa sobre isso?
Quem precisa disso, se não se importa que eu diga? Veja de onde o robô obtém os valores e você encontrará outra solução para o problema.
Help Two está dando erros! Destaquei os erros em vermelho, ajude a PLZ!
//+------------------------------------------------------------------+
//| Trailing Stop by Asyll.mq4 |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#propriedade copyright "Alibek Asyll"
#link da propriedade "https://www.mql4you.com"
externo int TralType = 0; // 0-Sar, 1-ATR, 2-HMA.
duplo SAR_Step externo = 0,02;
duplo SAR_Max externo = 0,2;
período ATR_Periodo externo int = 14;
duplo externo ATR_K = 2,0;
MMA_Periodo externo interno = 16;
método MMA_Int externo = 3;
MMA_Shift externo interno = 0;
data/hora LBT;
//+------------------------------------------------------------------+
//| Função de inicialização do especialista |
//+------------------------------------------------------------------+
int init()
{
//---
//---
retorno(0);
}
//+------------------------------------------------------------------+
//| Função de desinicialização especializada |
//+------------------------------------------------------------------+
int deinit()
{
//---
retorno(0);
}
//+------------------------------------------------------------------+
//| função tick expert |
//+------------------------------------------------------------------+
int start()
{
erro de bool = falso;
se (LBT!=Time[0] {
se (OrderTotal()>0) {
para (int i=o; i<OrdersTotal(); i++) {
se (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()<2) {
duplo SL = OrderStopLoss();
se (OrderType()==0) {
interruptor (TralType) {
caso 0: SL = iSAR(NULL,0,SAR_Step, SAR_Max,0);
pausa;
caso 1: SL = Alto[1] - iATR(NULL,0,ATR_Periodo,1)*ATR_K;
pausa;
caso 2: SL = iCustom(NULL,0, "VininI_HMA_sound&",HMA_Period, HMA_Method, 3, HMA_Shift,false,false,",1,0,0)
pausa;
}
se (SL<OrderStopLoss())
SL = OrderStopLoss();
}
se (OrderType()==1){
interruptor (TralType){
caso 0: SL = iSAR(NUll,0,SAR_Step, SAR_Max,0);
pausa;
caso 1: SL = Baixa[1] + iATR(NULL,0,ATR_Periodo,1)*ATR_K;
pausa;
caso 2: SL = iCustom(NULL,0, "VininI_HMA_sound&",HMA_Period, HMA_Method, 2, HMA_Shift,false,false,",1,0,0)
pausa;
}
se (SL>OrderStopLoss())
SL = OrderStopLoss();
}
se (SL!=OrderStopLoss()) {
se (!OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0))
erro = verdadeiro;
}
}
se (!erro)
LBT = Tempo[0];
}
retorno();
}
//+-------------------------------------------------------------------+
Faz sentido usar o botão SRC para inserir o código. Relatar o texto dos erros. Remova o texto para acelerar o especialista:
Leva tempo para chamar estas funções - e elas estão vazias. E seria mais fácil trabalhar com textos de programas sem eles. Conte os parênteses encaracolados. Para facilitar, experimente o Styler no menu Ferramentas. Descarte as linhas vazias.
Bom dia a todos.
Tenho uma idéia simples de que estou tentando codificar e testar em um testador MT-4
Ordens em aberto quando as seguintes condições estão presentes ao mesmo tempo
1. Na abertura de uma vela de um minuto
2 Ao preço que eu quero
3. na data desejada
4.O valor do preço deve coincidir estritamente com o valor do dia.
Por exemplo, o 27º dia foi um castiçal de um minuto com o preço de abertura 1,2414
Preciso abrir um pedido 1) no castiçal aberto 2) em 1.2414 3) mas no dia seguinte que se segue ao 27º dia
Por exemplo, no dia 28 tínhamos um castiçal de 1 minuto aberto a 1,2438.
Preciso abrir um pedido 1) no castiçal aberto 2) em 1.2438 3) MAS NO PRÓXIMO DIA DEPOIS DO 28
Por exemplo, no dia 12 houve um castiçal de 1 minuto aberto em 1.2451
Preciso abrir um pedido 1) no castiçal aberto 2) em 1.2451 3) MAS NO PRÓXIMO DIA DEPOIS DO 12
Para a realização desta idéia, comecei a estudar um tema de matrizes e criei duas matrizes unidimensionais, mas não funciona.
Eu lhe ficaria muito grato se você pudesse consertar meu código para implementar a idéia acima
Sou lento na assimilação, portanto ficarei muito grato se você puder escrever o código certo, em vez de explicá-lo em palavras.
Desta forma, vou entender muito mais rápido.
Aqui está meu código.
Olá! Este código se destina a mover os níveis de sinal quando o preço se move além do nível superior ou inferior, mas isso não acontece. Por favor, diga-me qual é o erro.
Eu preciso abrir um pedido 1) na abertura de uma vela 2) em 1.2414 3) MAS NO ÚLTIMO DIA DEPOIS DO 27
Aqui está meu código.Primeiro, não é razoável normalizar um BID já normalizado, a menos que o instrutor lhe diga para fazer isso.
Em segundo lugar, o que recebemos? No dia 27, o preço apareceu e você inseriu urgentemente os dados na matriz para acioná-la no dia 28? E se, no dia 28, algo urgente acontecer? Você está colocando dados em uma matriz que é difícil de calcular. Seus dados devem ser computáveis. Sugiro a depuração de sua EA em etapas. 1) Determine o preço necessário e exiba-o usando a função Alerta(). Se você tiver certeza de que está correto, calcule e exiba o próximo. e assim por diante até o final. É muito cedo para escrever o código inteiro de antemão, pois ele terá que ser modificado à medida que a depuração avance. O que você acha desta tecnologia, do simples ao complexo?
Vamos dar uma olhada no que está escrito aqui. Em primeiro lugar, as linhas devem ser mais curtas. Eles caberão melhor na tela e o compilador funcionará mais rápido.
Se o BID for maior, você tem que fazer algo. Então, se o BID for menor, a mesma coisa deve ser feita. Você pode dizer menos: Se o preço é mais ou menos, então ...Você escreve algo nos comentários sobre mover algo, mas tudo o que você faz é apagar todos os objetos. Suas 10 linhas são substituídas por quatro.
Mas !!! O sinal OR deve ser usado em outro lugar, não é mesmo? Parece que em vez de zerar este OR, deveríamos criar novos objetos aqui. Ou ainda mais fácil - em vez de apagar objetos, basta movê-los para um novo local - são apenas 3 linhas de código. Ou o instrutor precisa de mais?
Do simples ao falso ou vice-versa?Primeiro, a normalização de um BID já normalizado não é aconselhável, a menos que o professor lhe diga para
Em segundo lugar, o que temos aqui? No dia 27 ocorre um preço e você insere urgentemente os dados na matriz, para que ela funcione no dia 28? E se houver uma situação urgente no dia 28? Você está colocando dados em uma matriz que é difícil de calcular. Seus dados devem ser computáveis. Sugiro a depuração de sua EA em etapas. 1) Determine o preço necessário e exiba-o usando a função Alerta(). Se você tiver certeza de que está correto, calcule e exiba o próximo. e assim por diante até o final. É muito cedo para escrever o código inteiro de antemão, pois ele terá que ser modificado à medida que a depuração avance. O que você acha desta tecnologia, do simples ao complexo?
Muito obrigado pela dica.
Mas parece-me que em seu raciocínio você está assumindo que estou tentando escrever uma EA VERDADEIRA.
Sinto muito não ter dito que não é o caso.
Tento testar a presença de alguma regularidade, correlação entre os parâmetros acima, ou seja, confirmar ou rejeitar a idéia, que pode ser a base para um TORKING Expert Advisor.
Portanto, eu lhe serei grato se corrigir meu código, para que tudo esteja de acordo com a minha idéia acima.
E seus comentários, naturalmente, serão úteis para mim quando eu estiver escrevendo um consultor comercial especializado.
Obrigado
Muito obrigado pela dica.
Mas, do meu ponto de vista, seu raciocínio baseia-se no fato de que estou tentando escrever uma EA VERDADEIRA.
Sinto muito não ter dito que não é o caso.
Tento testar a presença de alguma regularidade, correlação entre os parâmetros acima, ou seja, confirmar ou rejeitar a idéia, que pode ser a base para um TORKING Expert Advisor.
Portanto, eu lhe serei grato se corrigir meu código, para que tudo esteja de acordo com a minha idéia acima.
Seus comentários, naturalmente, serão úteis para mim quando estiver escrevendo um consultor comercial especializado.
Obrigado
Desculpe pela intrusão. Mas... De que forma a lógica de traçar linhas deve ser diferente para uma EA comercial e não comercial?
Quando você está no trabalho, você olha para o relógio em sua mão de maneira diferente em comparação com a forma como você o vê em casa?