Hey guys, i really liked this indicator, i've being learning about market profile for a while and this is the best a found.
I just made a change in the metod of calculating the profile, i used the volume tick instead verifying just if the price past in the point. I did this cuz if you see, negociations and the diferent times haave pounds diferrents, you can see it in the volume histogram. So we can't junt count if price is there add one.
Do you agree?
The change I made showed diferrences beetween in the two mettods
Olá Alguém sabe se é possível fazer um robô trair somente nessas linhas do POC? se sim, como posso fazer isso? porque estou testando todas as variáveis no arquivo ClassPriceHistogram e os valores são todos zeros, alguém pode me ajudar?
Olá Luiz@Luiz Vinicius Pereira Rocha - então amigo eu sou novo em programação, e estava trabalhando em um EA que traide somente nas POCs, nas Valuation hight e low, e acabei achando esse indicador. Entretanto eu não consegui achar o lugar onde ele armazena os pontos da Poc, quando uso a função print em algumas variaveis do autor como: Poc_value, aparecem valores zerados. vc por acaso pode me ajudar?
antes de mais nada: Obrigado por seu excelente artigo e trabalho!
Embora tenha sido publicado há muito tempo, ele funciona muito bem.
O que eu tenho aqui para você e para a comunidade é uma atualização, para que o histograma use o volume de ticks, porque usar somente a ação do preço em áreas de tempo em que o volume é quase zero não ajuda muito.
Substitua o código correspondente no arquivo ClassPriceHistogram.mqh
bool CPriceHistogram::calculationPOCs()
{
int rates_total,rates_high,rates_time,rates_tv,index;
doubleiHigh[],iLow[];
long iTV[];
datetimeiTime[];
// Ïîëó÷àåì äàííûå çà ïåðèîä ñ time_start äî time_end / We obtain the data from time_start to time_endint err=0;
do
{
rates_time=CopyTime(NULL,PERIOD_M1,time_start,time_end,iTime);
rates_high=CopyHigh(NULL,PERIOD_M1,time_start,time_end,iHigh);
rates_total=CopyLow(NULL,PERIOD_M1,time_start,time_end,iLow);
rates_tv=CopyTickVolume(NULL,PERIOD_M1,time_start,time_end,iTV);
err++;
}
while((rates_time<=0 || (rates_total!=rates_high || rates_total!=rates_time || rates_tv!=rates_time)) && err<AMOUNT_OF_ATTEMPTS);
if(err>=AMOUNT_OF_ATTEMPTS)
{
return(false);
}
poc_start_time=iTime[0];
high_day=iHigh[ArrayMaximum(iHigh,0,rates_total)];
low_day=iLow[ArrayMinimum(iLow,0,rates_total)];
int count=int((high_day-low_day)/_Point)+1;
// Ïîäñ÷åò äëèòåëüíîñòè íàõîæäåíèÿ öåíû íà êàæäîì óðîâíå / Contagem da duração de uma descoberta do preço em cada nívelint ThicknessOfLevel[]; // ñîçäàåì ìàññèâ äëÿ ïîäñ÷åòà òèêîâ / criamos uma matriz para a contagem de tiquesArrayResize(ThicknessOfLevel,count);
ArrayInitialize(ThicknessOfLevel,0);
for(int i=0;i<rates_total;i++)
{
double C=iLow[i];
long CTV=iTV[i];
// Distribuir o volume de ticks da barra de minutos em todos os pontos possíveis da barra// Portanto, o incremento por ponto será este ...int CInc=int(((iHigh[i]-iLow[i])/_Point));
while(C<iHigh[i])
{
int Index=int((C-low_day)/_Point);
ThicknessOfLevel[Index]+=CInc;
C+=_Point;
}
}
Admito que é um hack rápido e não testei cada parte do código, mas até agora funciona bem.
Apenas uma observação... Fiz o download de todos os arquivos para os diretórios apropriados, compilei e recebi erros relacionados ao ClassPriceHistogram.mqh. Na linha 375, simplesmente substituí
CPriceHistogram::Delete()
por
void CPriceHistogram::Delete()
Agora funciona bem no MT5 Versão 5.00 Build 3661 da AMP Futures.
@Oleksandr, esse "indicador" é tecnicamente um Expert. Os buffers do indicador não estão disponíveis nos Experts. Os buffers podem ser efetivamente recriados usando matrizes nos Experts, mas somente os buffers de indicadores reais podem ser chamados pelo iCustom, portanto, para esse fim, um novo indicador personalizado teria que ser codificado do zero. Infelizmente, ambas as opções estão além do meu nível de capacidade de codificação. Boa sorte em encontrar ajuda melhor.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Remova o comando "Delete()" que irá funcionar.
Hey guys, i really liked this indicator, i've being learning about market profile for a while and this is the best a found.
I just made a change in the metod of calculating the profile, i used the volume tick instead verifying just if the price past in the point. I did this cuz if you see, negociations and the diferent times haave pounds diferrents, you can see it in the volume histogram. So we can't junt count if price is there add one.
Do you agree?
The change I made showed diferrences beetween in the two mettods
Olá, Dmitry,
antes de mais nada: Obrigado por seu excelente artigo e trabalho!
Embora tenha sido publicado há muito tempo, ele funciona muito bem.
O que eu tenho aqui para você e para a comunidade é uma atualização, para que o histograma use o volume de ticks, porque usar somente a ação do preço em áreas de tempo em que o volume é quase zero não ajuda muito.
Substitua o código correspondente no arquivo ClassPriceHistogram.mqh
Admito que é um hack rápido e não testei cada parte do código, mas até agora funciona bem.
Aqui está um exemplo com o índice SP500:
Prezado Dmitry
Espero que você esteja bem.
Seria possível implementar buffers para as linhas?
Para cada POC, talvez um Vwap e um Median?
Muito obrigado, desde já
por
void CPriceHistogram::Delete()Agora funciona bem no MT5 Versão 5.00 Build 3661 da AMP Futures.
@Oleksandr, esse "indicador" é tecnicamente um Expert. Os buffers do indicador não estão disponíveis nos Experts. Os buffers podem ser efetivamente recriados usando matrizes nos Experts, mas somente os buffers de indicadores reais podem ser chamados pelo iCustom, portanto, para esse fim, um novo indicador personalizado teria que ser codificado do zero. Infelizmente, ambas as opções estão além do meu nível de capacidade de codificação. Boa sorte em encontrar ajuda melhor.
OBRIGADO
OBRIGADO