Ajuda na codificação - página 389

 
triip:
Eu encontrei um bom sistema de escalonamento e modelo, mas ele funciona tão lentamente após a instalação deste sistema. Talvez alguém seja capaz de olhar para ele e detectar o que poderia causá-lo.

Modelo e indicadores:

1m_alf_scalp.zip

Parece que o problema é o indicador da cor da vela (IT_Candles). Alguém entende o que está errado com esse código que o MT4 roda lentamente?

//+------------------------------------------------------------------+//| IT_Candles.mq4

//+------------------------------------------------------------------+

#property indicator_chart_window

#include

#property indicator_buffers 2

extern color UpColor = LimeGreen;

extern color DnColor = Red;

extern int Width = 5;

extern double alpha = 0.09;

double ev=EMPTY_VALUE,Trend,Trigger,ALF;

double Up[];

double Dn[];

int init()

{

IndicatorBuffers(2);

SetIndexStyle(0,DRAW_HISTOGRAM,0,Width,UpColor);

SetIndexBuffer(0,Up);

SetIndexStyle(1,DRAW_HISTOGRAM,0,Width,DnColor);

SetIndexBuffer(1,Dn);

return(0);

}

int deinit()

{

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1); //---- check for possible errors

if(counted_bars>0) counted_bars--; //---- last counted bar will be recounted

int limit = Bars-counted_bars;

for (int i=limit;i>=0;i--)

{

Up = ev;

Dn = ev;

Trend = iCustom(NULL,0,"Instant_Trendline",alpha,0,i);

Trigger = iCustom(NULL,0,"Instant_Trendline",alpha,1,i);

ALF = iCustom(NULL,0,"ALF",0,i+1);

if (Trigger > Trend && Close > Open && Close > ALF)

{

Up = MathMax(Open,Close);

Dn = MathMin(Open,Close);

}

if (Trigger < Trend && Close < Open && Close < ALF)

{

Dn = MathMax(Open,Close);

Up = MathMin(Open,Close);

}

}

}

 
triip:
Parece que o problema é o indicador de cor das velas (IT_Candles). Alguém entende o que está errado com esse código que o MT4 roda lentamente?
//+------------------------------------------------------------------+//| IT_Candles.mq4

//+------------------------------------------------------------------+

#property indicator_chart_window

#include

#property indicator_buffers 2

extern color UpColor = LimeGreen;

extern color DnColor = Red;

extern int Width = 5;

extern double alpha = 0.09;

double ev=EMPTY_VALUE,Trend,Trigger,ALF;

double Up[];

double Dn[];

int init()

{

IndicatorBuffers(2);

SetIndexStyle(0,DRAW_HISTOGRAM,0,Width,UpColor);

SetIndexBuffer(0,Up);

SetIndexStyle(1,DRAW_HISTOGRAM,0,Width,DnColor);

SetIndexBuffer(1,Dn);

return(0);

}

int deinit()

{

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1); //---- check for possible errors

if(counted_bars>0) counted_bars--; //---- last counted bar will be recounted

int limit = Bars-counted_bars;

for (int i=limit;i>=0;i--)

{

Up = ev;

Dn = ev;

Trend = iCustom(NULL,0,"Instant_Trendline",alpha,0,i);

Trigger = iCustom(NULL,0,"Instant_Trendline",alpha,1,i);

ALF = iCustom(NULL,0,"ALF",0,i+1);

if (Trigger > Trend && Close > Open && Close > ALF)

{

Up = MathMax(Open,Close);

Dn = MathMin(Open,Close);

}

if (Trigger < Trend && Close < Open && Close < ALF)

{

Dn = MathMax(Open,Close);

Up = MathMin(Open,Close);

}

}

}

triip

Verifique se você tem os indicadores "Instant_Trendline" e "ALF" na pasta de indicadores também (ambos são necessários para que esse indicador funcione corretamente). Se você não os tiver, extraia os arquivos ex4 desse arquivo zip e o indicador funcionará bem (se você não os tiver lá, será muito lento).

Arquivos anexados:
it.gif  75 kb
 
mladen:
triipCheck se você tiver os indicadores "Instant_Trendline" e "ALF" na pasta de indicadores também (ambos são necessários para que esse indicador funcione corretamente). Se você não os tiver, extraia os arquivos ex4 desse arquivo zip e o indicador funcionará bem (se você não os tiver lá, ele será muito lento).

Sim, também coloco os outros indicadores no gráfico, mas assim que adiciono IT_Candles, o MT4 abranda, especialmente a mudança de cronogramas abranda.

 
triip:
Sim, também coloquei os outros indicadores no gráfico, mas assim que adiciono IT_Candles, o MT4 abranda, especialmente a mudança de cronogramas abranda.

triip

Eles não precisam estar na tabela. Mas devem existir (usando esses nomes exatos) na pasta de indicadores. A maneira mais fácil de verificar é ir até a guia de especialistas do terminal e ver se há algum erro lá (como o da figura).

Arquivos anexados:
error_2.gif  98 kb
 
mladen:
triipNão é necessário estar na tabela. Mas eles devem existir (usando esses nomes exatos) na pasta de indicadores. A maneira mais fácil de verificar é ir até a guia de especialistas do terminal e ver se há algum erro lá (como o da figura).

Não há erros ali.

Mas notei que o ALF.ex4 não diminuiu muito, mas o ALF-MTF.ex4 diminuiu totalmente. Eu tenho uma subpasta na pasta de indicadores, onde ficam todos os indicadores mencionados. Talvez eu devesse reinstalar o MT4 limpo.

Arquivos anexados:
errors.png  27 kb
 
triip:
Não há erros ali.

Mas notei que ALF.ex4 não está diminuindo muito, mas ALF-MTF.ex4 está diminuindo totalmente. Eu tenho uma subpasta na pasta de indicadores, onde ficam todos os indicadores mencionados. Talvez eu devesse reinstalar o MT4 limpo.

Mova-os da subpasta para a pasta de indicadores principais e tente então

 
mladen:
Mova-os da sub-pasta para a pasta dos indicadores principais e experimente então

Muito melhor, funciona como um encanto Obrigado mladen!!!

 
sunshineh:
Hi,

Estou sempre tendo problemas para escrever objetos de texto sobre as barras do meu gráfico.

Por exemplo

ObjectCreate ("Xh", OBJ_TEXT,0,Time[0],High[0]+1*pips2dbl);

ObjectSetText("Xh","1",10,"Tahoma",Orange);

ObjectCreate ("X", OBJ_TEXT,0,Time[0],Low[0]-1*pips2dbl);

ObjectSetText("Xl","1",10,"Tahoma",Orange);

Isto está funcionando bem com objetos de texto abaixo de minhas barras porque meu objeto de fonte está fixado "na cabeça" de meu texto.

Mas se eu quiser escrever algum texto acima da barra, agora eu não sei como meu texto em tamanho de fonte 10 está escrito nas barras.

Há também um problema quando escrevo meu texto em prazos maiores f.e. "H1", "D1" ou "W1" porque lá eu tive que mudar minha distância de fonte para o valor alto ou baixo também.

Eu sei que posso girar meu texto para 90°, mas não quero fazer isso.

Então, você conhece uma solução para esse problema?

Para começar, tente usar ATR em vez de 1*pips2dbl (dessa forma, ele se ajustará a diferentes períodos de tempo e símbolos).

Tente também ajustar o ponto de ancoragem (OBJPROP_ANCHOR) do texto para ANCHOR_LOWER para o objeto de texto que é exibido acima do alto

 
madopter:
As partes ajustáveis devem ser o tamanho do lote e o saldo da conta à qual o lote é aplicado. Por exemplo, os parâmetros podem ser A = 0,01, B = $5000, ou, A = 1,00, B = $10000.

Nesse caso, você tem que ter vários valores de parâmetros utilizáveis para comparação

Você pode definir os parâmetros como: conta dupla externaBalanceA = 5000; e então usar esses parâmetros em comparação com aquele código que fez a mesma coisa sem parâmetros

 
mladen:
jbozman

o indicador macd não precisa de nenhuma mudança (ele calculará apenas 1 ou 2 barras em 99,99% dos casos)

O indicador hilo procura valores de uma forma muito complicada. É melhor usar algum outro indicador que faça essa tarefa de uma maneira muito mais simples (não é preciso complicá-la tanto).

Oi mladen. Procurei e não consegui encontrar um alto/baixo que tivesse dia, semana e mês anteriores, tudo em um que pinta segmentos de linha simples e que não faça uma bagunça de gráfico.

Eu sei que você disse para tentar encontrar outro; entretanto, eu realmente procurei e não fui capaz. Eu também coloquei um pedido no fórum mql4. Ainda não tive resposta.

Muito simplesmente, eu estaria disposto a pagar alguém (você) para modificar este indicador.

Eu gostaria que "Número de dias" fosse adicionado como este enredo a cada dia anterior. Em EUR/USD e GBP/USD, meu histórico de gráficos remonta a 1996 ou mais, então ele ocupa muita memória com todas essas linhas.

Se você não for contratado (talvez outra pessoa seria?), é complicado demais adicionar apenas o "Número de Dias" a este atual? Eu posso continuar a usá-lo até encontrar outro ou encontrar alguém que possa modificar. Se isso for um pedido demorado, eu entendo completamente e agradeço a sua ajuda em tudo.

jbozman

Arquivos anexados:
Razão: