calcular o número de caracteres, + tamanho da fonte, como este?
O tamanho da fonte não lhe dá o conhecimento de que você precisa. Você precisa desenhar vários objetos um em cima do outro. Somente o primeiro objeto tem um ponto de ancoragem. Como obter o ponto de ancoragem do 2º e subsequentes objetos?
Olá! Ao estudar a MQL4 surgiu uma pequena pergunta. O problema está publicado no tutorial deste site. Aqui está a condição: Tarefa 25. Criar um programa, no qual se realizem as seguintes condições: se a taxa de câmbio tiver subido acima do nível especificado, então dê uma mensagem, na qual palavras indicam que a taxa excede o nível (até 100 pontos); em outros casos, para informar que a taxa não excede o nível especificado. E aqui está a solução proposta:
//--------------------------------------------------------------------externdoubleLevel=1.3200; // Заданный уровень stringText[101]; // Объявление массива//--------------------------------------------------------------------intinit()// Спец. ф-ия init(){// Присвоение значенийText[1]="один "; Text[15]="пятнадцать ";
Text[2]="два "; Text[16]="шестнадцать ";
Text[3]="три "; Text[17]="семнадцать ";
Text[4]="четыре "; Text[18]="восемнадцать ";
Text[5]="пять "; Text[19]="девятнадцать ";
Text[6]="шесть "; Text[20]="двадцать ";
Text[7]="семь "; Text[30]="тридцать ";
Text[8]="восемь "; Text[40]="сорок ";
Text[9]="девять "; Text[50]="пятьдесят ";
Text[10]="десять "; Text[60]="шестьдесят";
Text[11]="одиннадцать "; Text[70]="семьдесят ";
Text[12]="двенадцать "; Text[80]="восемьдесят ";
Text[13]="тринадцать "; Text[90]="девяносто";
Text[14]="четырнадцать "; Text[100]= "сто";
// Вычисление значенийfor(inti=20; i<=90; i=i+10)// Цикл по десяткам{for(intj=1; j<=9; j++)// Цикл по единицамText[i+j]=Text[i] + Text[j]; // Вычисление значения }return; // Выход из init()}//--------------------------------------------------------------------intstart()// Спец. ф-ия start(){intDelta=NormalizeDouble((Bid-Level)/Point,0);// Превышение //--------------------------------------------------------------------if(Delta>=0)// Цена не выше уровня{Alert("Цена ниже уровня"); // Сообщениеreturn; // Выход из start()}//--------------------------------------------------------------------if(Delta<100)// Цена более 100{Alert("Более ста пунктов"); // Сообщениеreturn; // Выход из start()}//--------------------------------------------------------------------Alert("Плюс ",Text[Delta],"pt."); // Вывод на экранreturn; // Выход из start()}
//---------------------------------------------------------------------
По-моему в условных операторах неправильно проставлены знаки сравнения. Они должны быть с точностью до наоборот. Скажите прав ли я? И если нет, то почему так?
Por exemplo, otimizei o AMA, é uma otimização muito mais rápida, embora o indicador seja complexo.
Não vou dizer com certeza que a culpa é do indicador. Eu ainda não tenho muita experiência nisso.
Mas como acelerá-lo? Eu fiz tudo aqui mesmo ou posso mudar alguma coisa?
Em princípio, basta que o indicador seja calculado utilizando as últimas 100 barras, mas se eu definir o número 100 em vez de 500, os valores desaparecem.
Se você realizar a otimização a esta velocidade, sua barba de acabamento crescerá até o chão e o mullens ganho não será útil) Bem, ou o mercado será completamente diferente.
Querida, preciso de sua ajuda.
Estou otimizando meu Expert Advisor pelo indicador, o código do indicador está abaixo.
A otimização é lenta, fiz um código no EA para recalcular o indicador em uma nova barra, o que não é muito adequado.
Consulte o código do indicador, o que pode ser feito nele para que o recálculo aconteça mais rapidamente.
por que você pensou que a culpa era do indicador?
calcular o número de caracteres, + tamanho da fonte, como este?
O tamanho da fonte não lhe dá o conhecimento de que você precisa. Você precisa desenhar vários objetos um em cima do outro. Somente o primeiro objeto tem um ponto de ancoragem. Como obter o ponto de ancoragem do 2º e subsequentes objetos?
Conclusão forçada da EA no caso de descarregar a EA do usuário.
é melhor registrar os dados diretamente no início.
----------------------------------------------------
O tempo de execução do deinit é limitado a 10 segundos.
No testador, a bandeira de parada de conclusão normal não é colocada, portanto, o deinit é concluído silenciosamente.
----------------------------------------------------Talvez seja imposto um limite de 10 segundos para o funcionamento de qualquer função?
E aqui está a solução proposta:
Por que você achava que a culpa era do indicador?
Por exemplo, otimizei o AMA, é uma otimização muito mais rápida, embora o indicador seja complexo.
Não vou dizer com certeza que a culpa é do indicador. Eu ainda não tenho muita experiência nisso.
Mas como acelerá-lo? Eu fiz tudo aqui mesmo ou posso mudar alguma coisa?
Em princípio, basta que o indicador seja calculado utilizando as últimas 100 barras, mas se eu definir o número 100 em vez de 500, os valores desaparecem.
Se você realizar a otimização a esta velocidade, sua barba de acabamento crescerá até o chão e o mullens ganho não será útil) Bem, ou o mercado será completamente diferente.Boa tarde. Você pode me dizer se é possível definir ou calcular programticamente a largura/altura em um gráfico de um objeto OBJ_TEXT?
Texto provavelmente não, mas etiqueta, por favor.
docs.mql4.com/pt/constants/objectconstants/enum_object_property
Propriedades OBJPROP_XSIZE e OBJPROP_YSIZE
Mas, como acelerá-lo? Eu fiz tudo aqui mesmo ou há algo que eu possa mudar?
Bem, aqui você pode ver imediatamente a bagunça ao recalcular, por exemplo, uma barra foi adicionada.
limite1 serão dois... E então
De qualquer forma, o recálculo está completamente errado.
Muito obrigado, tenha um bom dia :) >)
Bem, aqui você pode ver que o recálculo está estragado, por exemplo, uma barra foi adicionada.
limite1 serão dois... E então
De qualquer forma, o recálculo está completamente errado.
Eu vou adivinhar:
limit1=Bars-counted_bars;deveria ser assim?
Eu não sei o que está acontecendo aqui.
Se em geral, é suficiente para mim ter o indicador calculado nas últimas 100 barras.