Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 489
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á. Quero escrever um EA para MT4, uma de suas tarefas é desenhar linhas de Fibo, na M1, em uma hora. Ou seja, quando às 11h00 deve traçar linhas no intervalo das 10h00 às 10h59, concentrando-se nos altos e baixos. Tentei métodos diferentes, afixei o que era o último. Oproblema é que ele não desenha as linhas na área em questão.
int timemin=TimeMinute(Time[59]==0);
int timehour=TimeHour(Time[1] && TimeMinute(Time[0]));
int timemin1=TimeMinute(Time[0]==0);
int timehour1=TimeHour(Time[1] && TimeMinute(Time[59]))
int max=iHighest(Symbol(),1,MODE_HIGH,60,timehour);
int min=iLowest(Symbol(),1,MODE_LOW,60,timehour);
double barup=(iOpen(Symbol(),60,1)>iClose(Symbol(),60,1));
double bardn=(iOpen(Symbol(),60,1)<iClose(Symbol(),60,1)));
ObjectDelete("FiboLevels"); // Novo nível
se (barup)
{
WindowRedraw();
ObjectCreate(0, "FiboLevels",OBJ_FIBO,0,Time[min],Low[min],Time[timehour1],High[max]);
ObjectSet("FiboLevels",OBJPROP_COLOR,clrGreen);
}
if (bardn)
{
WindowRedraw();
ObjectCreate(0, "FiboLevels",OBJ_FIBO,0,Time[max],Low[max],Time[timehour1],High[min]);
ObjectSet("FiboLevels",OBJPROP_COLOR,clrRRed);
}
duplo f1=ObjectGet("FiboLevels",OBJPROP_PRICE1); //Seleciona o primeiro preço
duplo f2=ObjectGet("FiboLevels",OBJPROP_PRICE2); //Seleciona o segundo preço e parcelas
duplo Diff=f2-f1;
string a11=DoubleToStr(f2-Diff*0.0,Dígitos);
string a12=DoubleToStr(f2-Diff*0,236,Dígitos);
string a13=DoubleToStr(f2-Diff*0,382,Dígitos);
string a14=DoubleToStr(f2-Diff*0.50,Dígitos);
string a15=DoubleToStr(f2-Diff*0,618,Dígitos);
string a16=DoubleToStr(f2-Diff*1,0,Dígitos);
bool a1=ObjectSet("FiboLevels",OBJPROP_FIBOLEVELS,6);
bool a2=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+0,0.0);
bool a3=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+1,0.236);
bool a4=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+2,0.382);
bool a5=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+3,0.50);
bool a6=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+4,0.618);
bool a7=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+5,1.0);
bool a111=ObjectSetFiboDescription("FiboLevels",0, "0.0%");
bool a122=ObjectSetFiboDescription("FiboLevels",1, "23.6%");
bool a133=ObjectSetFiboDescription("FiboLevels",2, "38.2%");
bool a144=ObjectSetFiboDescription("FiboLevels",3, "50,0%");
bool a155=ObjectSetFiboDescription("FiboLevels",4, "61.8%");
bool a166=ObjectSetFiboDescription("FiboLevels",5, "100,0%");
Olá. Quero escrever um EA para MT4, uma de suas tarefas é desenhar linhas de Fibo, na M1, em uma hora. Ou seja, quando às 11h00 deve traçar linhas no intervalo das 10h00 às 10h59, concentrando-se nos altos e baixos. Tentei métodos diferentes, afixei o que era o último. Oproblema é que ele não desenha linhas em uma determinada área.
double barup=(iOpen(Symbol(),60,1)>iClose(Symbol(),60,1));double bardn=(iOpen(Symbol(),60,1)<iClose(Symbol(),60,1)));
ObjectDelete("FiboLevels"); //------Novo nível
se (barup)
{
WindowRedraw();
ObjectCreate(0, "FiboLevels",OBJ_FIBO,0,Time[min],Low[min],Time[timehour1],High[max];
ObjectSet("FiboLevels",OBJPROP_COLOR,clrGreen);
}
se (bardn)
{
WindowRedraw();
ObjectCreate(0, "FiboLevels",OBJ_FIBO,0,Time[max],Low[max],Time[timehour1],High[min]);
ObjectSet("FiboLevels",OBJPROP_COLOR,clrRRed);
}
isto é mais curto? bool barup=... WindowRedraw(); ainda será executado - retirado de se
também pode ser mais curto ... ver meu arquivo
Por favor, insira o código corretamente.
É ainda mais claro:
Rapazes, por que meus pedidos abrem a cada tique? Você pode me dizer como me concentrar no bar?
Rapazes, por que meus pedidos abrem a cada tique? Você pode me dizer como me concentrar no bar?
De acordo com as condições descritas no ATS, permite a abertura para que ela se abra.
Há muitas soluções neste caso. Tudo depende do que for mais adequado para você.
Podemos determinar que a próxima ordem deve ser aberta somente se o preço se afastou da última por N pontos. Você pode solicitar a abertura de não mais de um pedido em 1 bar. Tal e tal, e assim por diante.
Anote as condições que você precisa e aplique-as em seus testes.
De acordo com as condições descritas no ATS, ele abre o pedido.
Há muitas soluções neste caso. Tudo depende do que for mais adequado para você.
Podemos determinar que a próxima ordem deve ser aberta somente se o preço se afastou da última por N pontos. Você pode solicitar a abertura de não mais de um pedido em 1 bar. Tal e tal, e assim por diante.
Anote as condições que você precisa e aplique-as em seus testes.
Em vez dissose( iTime(Símbolo(),PERÍODO_M1,0)){O que devo escrever para abrir um pedido em um bar?
A pergunta foi feita muitas vezes e correspondentemente muitas vezes respondida.Usando uma busca, por exemplo, aqui
A pergunta foi feita muitas vezes e correspondentemente muitas vezes respondida.Usando uma busca, por exemplo, aqui
Obrigado!
Boa tarde!
Eu tenho um EA que faz certos cálculos. Utiliza diferentes operações matemáticas, arrays, loops. Ele salva o resultado em um arquivo. Tem que começar tudo desde o início, depois de ter realizado todas as ações. Fez todos os cálculos uma vez e depois fica pendurado pela segunda vez sem tomar nenhuma medida. Você pode aconselhar se é necessário zerar variáveis, limpar arrays ou algo mais antes de iniciar um novo cálculo?
Boa tarde!
Eu tenho um EA que faz certos cálculos. Utiliza diferentes operações matemáticas, arrays, loops. Ele salva o resultado em um arquivo. Tem que começar tudo desde o início, depois de ter realizado todas as ações. Fez todos os cálculos uma vez e depois fica pendurado pela segunda vez sem tomar nenhuma medida. Você pode aconselhar se é necessário zerar variáveis, limpar arrays ou algo mais antes de iniciar um novo cálculo?