Como codificar? - página 15

 

Codificador necessário!

A todos os programadores de lá, eu preciso de ajuda para codificar ou fazer para mim EA para a minha negociação. Não tenho nenhuma experiência em fazer EA, então preciso de vocês.

A EA :

LWMA - 5 (fechar)

SMA - 8 (fechar)

Comprar - quando ambas as linhas se cruzarem, aguarde a próxima barra e comece a disparar automaticamente. O mesmo também para ser abreviado.

Parada - 30

Takeprofit - 30

Trailstop- 15

Por favor, eu preciso de ajuda.

Obrigado.

 
Sinar FX:
Para todos os programadores de lá, eu preciso de ajuda para codificar ou fazer para mim EA para a minha negociação. Não tenho nenhuma experiência em fazer EA, então preciso de vocês.

A EA :

LWMA - 5 (fechar)

SMA - 8 (fechar)

Comprar - quando ambas as linhas se cruzarem, aguarde a próxima barra e comece a disparar automaticamente. O mesmo também para ser abreviado.

Parada - 30

Takeprofit - 30

Trailstop- 15

Por favor, eu preciso de ajuda.

Obrigado.

Em que prazo?

 

Por favor, ajude-me a entender o código indicador personalizado

Olá. Sou novato na MQL4. Notei que muitos indicadores personalizados contêm as seguintes linhas para preparar o laço de contagem de barras:

int counted_bars = IndicatorCounted();

if( counted_bars < 0 ) return(-1);

if( counted_bars > 0 ) counted_bars--;

int limit = Barras - Barras_contadas;

for(int i=0; i<limite; i++)

De acordo com o tutorial do metatrader.info, counted_bars = IndicatorCounted() calculará counted_bars como 0 no primeiro lançamento do indicador. "Depois disso, será a contagem do total de barras no gráfico menos uma". Depois de quê? Após o primeiro lançamento? Tenho que lançar o indicador duas vezes para que ele funcione? O manual de referência MQL4 também não é muito mais claro: "IndicatorCounted() retorna a contagem de barras que não é alterada após o último lançamento do indicador. Na maioria dos casos, a mesma contagem dos valores do índice não precisa ser recalculada. Utilizado para otimizar os cálculos".

Depois há as barras, que é "o número de barras no gráfico". Por que não usar simpky o seguinte laço de contagem de barras:

for(int i=1;i<=Bars;i++)

Eu entenderia se alguém pudesse explicar em inglês o que está acontecendo exatamente em

int counted_bars = IndicatorCounted();

if( counted_bars < 0 ) retorno(-1);

if( counted_bars > 0 ) counted_bars_bars--;

int limit = Barras - Barras_contadas;

for(int i=0; i<limite; i++)

e em que direção as barras são contadas: para frente (da barra mais antiga para a mais nova) ou para trás? Obrigado em avdance!

 

Veja se este artigo ajuda.

https://www.mql5.com/en/articles/1497

boa sorte.

 

Obrigado, Maji. Ajudou. Corrija-me se eu estiver errado:

1. IndicatorCounted é útil nos gráficos cujas barras são atualizadas em tempo real. Portanto, ao invés de recalcular os valores do indicador para todas as barras quando uma nova barra aparece, apenas o valor do indicador para esta nova barra é calculado.

2. "limite" é simplesmente o número de novas barras, para o qual o indicador tem que ser calculado.

3. O índice do indicador conta barras para trás, com i=0 indicando a nova barra (atual).

Acho que minha confusão foi baseada em minha experiência anterior com o Wealth-Lab, onde um código indicador é escrito de tal forma que os valores do indicador são calculados para todas as barras, mesmo que apenas as novas barras precisem ser calculadas. Entretanto, o Wealth-Lab tem alguma inteligência incorporada e é possível que os indicadores sejam automaticamente recalculados apenas para as novas barras. Estou tendo a sensação de que a MQL4 não quer tomar tais decisões por você e deixar estas decisões para você, forçando-o a tomar medidas extras de programação. Eu realmente gosto disso porque sempre detesto quando um software toma decisões por você e essas decisões não são as mesmas que as suas. Meu único problema com a MQL4 é que eu gostaria que ela tivesse uma documentação melhor.

 

fiqe,

Acredito que suas suposições estão certas. Acho que o MT4 está certo apenas no cálculo dos indicadores uma vez e que os recursos da WL hogs o fazem de outra forma.

Talvez eu esteja errado, e espero que outros mais conhecedores possam corrigir a ambos.

 
 

Nick,

Verifique seu e-mail. Eu lhe enviei um exemplo lá.

Me avise.

Maji

 

OK , eu acho que U pode fazer isso assim:

Primeiro você tem que apontar em que hora você está procurando - se seu corretor é GMT+3 então para contar Pivots na hora GMT você tem que descer o tempo dos corretores em 3. Então se você procurar pela hora 00.00 você procurará por 21.00 na hora de seu corretor.

Agora, um dia é 24 horas e começamos a procurar a partir da parte direita da tela. O tempo de seu corretor é +3, então adicionaremos esse número ao valor de deslocamento.

for(int i = 3 ; i <= 27 ; i++)

{

if(TimeHour(Time)==21)

{

//This should be your GMT midnight so u can take OHLC values from here

double open = iOpen(Symbol(),60,i);

double high = iHigh(Symbol(),60,i);

double low = iLow(Symbol(),60,i);

double close = iClose(Symbol(),60,i);

}

}

Não sei se esta é uma maneira simples, mas funciona.

 

Hi,

Na última versão do SimpleDailyRangeBreakoutExpert você pode encontrar o código para fazer vela(OHLC) para qualquer fuso horário.