Ajuda na codificação - página 95

 

Caros Todos, que meu primeiro passo para um posto sobre forex, por favor, tentem ser gentis se eu disser algo muito errado...

Este site é um dos melhores lugares para aprender sobre forex e eu estou lendo sobre ele há alguns anos. Gostaria de colocar atenção neste link:codebase.mql4.com/5900

A ea é RUBBBERBANDS_2 EA por Autor: StJojo (2009.08.17 11:30). É bastante interessante a forma como funciona, (após um trabalho mínimo de otimização) em qualquer par de moedas. Basicamente poderia ser usado como uma (permita-me a expressão...) partida automatizada semiautomática. De fato, como funciona muito bem no mercado lateral, descobri que poderia ser ativado em intervalos de Notícias quando a probabilidade de mercado lateral é maior. Como acho que o código é feito opensource pelo autor, eu gostaria, se alguém gostar da idéia, de adicionar a variável para fazê-la funcionar de uma determinada hora/minuto a "quiesce" em uma determinada hora/hora/minuto (ou seja: quiesce esta EA quando a sessão atual terminar). Isto facilitaria muito mais o tempo de trabalho de "pré-programação" da EA para o dia seguinte, relativamente aos próximos dias de notícias. Anexei o arquivo a partir do link acima.

Anexei também os indicadores "forex_ news_market_clock" que é o que eu uso para ler o novo no gráfico.

Agradeço a todos pelo trabalho feito neste site (e em toda a rede... claro). Espero que alguém possa ajudar, muito obrigado.

Arquivos anexados:
 
vitoingletto:
Caros Todos, que meu primeiro passo em um post sobre forex, por favor, tentem ser gentis se eu disser algo muito errado...

Este site é um dos melhores lugares para se aprender sobre forex e estou lendo sobre ele há alguns anos. Gostaria de colocar atenção neste link:codebase.mql4.com/5900

A ea é RUBBBERBANDS_2 EA por Autor: StJojo (2009.08.17 11:30). É bastante interessante a forma como funciona, (após um trabalho mínimo de otimização) em qualquer par de moedas. Basicamente poderia ser usado como uma (permita-me a expressão...) partida automatizada semiautomática. De fato, como funciona muito bem no mercado lateral, descobri que poderia ser ativado em intervalos de Notícias quando a probabilidade de mercado lateral é maior. Como acho que o código é feito opensource pelo autor, eu gostaria, se alguém gostar da idéia, de adicionar a variável para fazê-la funcionar de uma determinada hora/minuto a "quiesce" em uma determinada hora/hora/minuto (ou seja: quiesce esta EA quando a sessão atual terminar). Isto facilitaria muito mais o tempo de trabalho de "pré-programação" da EA para o dia seguinte, relativamente aos próximos dias de notícias. Anexei o arquivo a partir do link acima.

Anexei também os indicadores "forex_ news_market_clock" que é o que eu uso para ler o novo no gráfico.

Agradeça a todos pelo trabalho realizado neste site (e em toda a rede... claro). Espero que alguém possa ajudar, muito obrigado.

Olá Vitoingletto,

Obrigado pela EA,acrescentou um filtro de tempo e uma função de fechamento na sexta-feira e também um número mágico para ajudar a EA a diferenciar um pouco os pedidos.

Arquivos anexados:
 

olá ...

maneiras de se perguntar se você pode colocar no código a função que exporta dados diretamente de uma só vez (m1, m5, m30, m15, h1, h4, d1 ...) obviamente em arquivos separados. Atualmente a e você tem que iniciá-la tantas vezes ... (para cada tmeframe).

Eu teria uma economia substancial de tempo para exportar os dados.

Você pode inserir esta função em seu código? uma idéia pode ser semelhante a este script anexado(Period_converter_auto - MQL4 Code Base), que transforma os dados todos em uma volta.Si pode jogar no especialista?

obrigado

Arquivos anexados:
 
dr.feelgood1989:
olá ...

maneiras de se perguntar se você pode colocar no código a função que exporta dados diretamente de uma só vez (m1, m5, m30, m15, h1, h4, d1 ...) obviamente em arquivos separados. Atualmente a e você tem que iniciá-la tantas vezes ... (para cada tmeframe).

Eu teria uma economia substancial de tempo para exportar os dados.

Você pode inserir esta função em seu código? uma idéia pode ser semelhante a este script anexado(Period_converter_auto - MQL4 Code Base), que transforma os dados todos em uma volta.Si pode jogar no especialista?

obrigado

dr.feelgood1989

Use este e simplesmente prenda-o a todos os prazos que você deseja ter exportado. Ele fará um arquivo com o nome de símbolo+"_"+quadro de tempo para cada quadro de tempo que você olhar. Você pode usá-lo como um modelo para suas exportações de indicadores personalizados.

Arquivos anexados:
 

obrigado pela resposta ... Mladen

na verdade, eu já o era. O script (exemplo de referência) que publiquei recebe o trabalho de uma vez por todas os prazos (conversão).

a especialista de sua "reescrita" modificada um único período de tempo (para distinguir o arquivo) quando ele é usado por um único tempo

Eu estava me perguntando se iniciar um único especialista é reescrito em todos os outros prazos (exemplo:ea1m iniciado no testador e também os arquivos são escritos em outros prazos m5, m15 ...)

obrigado : )

 
mladen:
pgtips,

Como é seu laço principal (ou afixar um código onde você está tentando fazer isso)

PS: Você tem que mudar o último parâmetro de iOpen() e iClose() para apontar o dia correto para uma barra escolhida

Olá Mladen,

Eu fiquei bastante preso a isto, então procurei outra maneira de fazer o mesmo.

Encontrei este indicador anexado após vários dias de busca que está próximo do que eu preciso, mas foi feito diferente.

Ele exibe vela atual (de todos os dias), mas não há nenhuma variável de abertura/fechamento para selecionar a exibição de um dia, ou seja, turno -1

Você poderia me dizer como eu poderia fazer com que isto tivesse um turno para trás x dias. ? Portanto, se a barra do dia anterior era vermelha, então faça a caixa de corrente vermelha, se previa verde, então a caixa de corrente verde.

Eu posso sobrepor o indicador da caixa de fuga em cima disto, mas seria muito bom se esta pudesse ser limitada pelo tempo.

Entendo que você está ocupado e dá seu tempo de graça, mas se você pudesse ajudar, eu realmente apreciaria.

Muito obrigado.

PG

Arquivos anexados:
 

Hi,

Ainda estou me esforçando para isso.

No anexo, consegui usar o indicador pivot para me fazer mudar de cor por dia com base no dia anterior de fechamento, ou seja, antes do dia verde ou vermelho.

Agora eu preciso fazer um retângulo e preenchê-lo com base no período em que quero vê-lo exibido às 11h00 para dizer às 17h00, sendo o alto e o baixo o que quer que seja durante esse tempo.

Eu configuro //

ObjectCreate("Rectângulo", OBJ_RECTANGLE, 0, Tempo[periodBegin], Baixo[1], Tempo[periodEnd], Alto[1]);

mas recebeu erro, nada é exibido.

período int externoBegin = 11; //11:00 am

período int externoEnd = 17; // 17:00 pm

Eu estabeleço bool externo Plot_rectangles=true; assim, ele 'deveria' traçar algo para cada dia.

O que estou perdendo aqui?

Obrigado.

PG

Arquivos anexados:
 

Acho que sei a resposta à minha pergunta, mas... ainda quero confirmar

a. O indicador é um período de tempo maior

b. é o período de tempo atual.

como eu gostaria de usar uma tendência tão baseada b. como a entrada pode ser feita?

 
mtuppers:
Acho que sei a resposta à minha pergunta, mas... ainda quero confirmar

a. O indicador é um período de tempo maior

b. é o período de tempo atual.

como eu gostaria de usar uma tendência tão baseada b. como a entrada pode ser feita?

Sim, você pode.

Basta chamar um com prazo maior no parâmetro TimeFrame e é tudo. Para evitar armadilhas de retro-teste de múltiplos quadros temporais EA, use barra fechada no indicador de múltiplos quadros temporais (índice 1 em vez de 0), caso contrário você obterá um resultado irrealisticamente bom devido à forma como as chamadas de metatrader são chamadas diferentes dos quadros temporais atuais no retro-teste.

 

Olá,

Espero que você possa me ajudar com isto. Quero que os pontos (setas; aqua&yellow) do índio na janela dois apareçam como pontos (setas) no fechamento (ou alto para comprar sinal/baixo para vender sinal) na janela um (a janela principal do gráfico). Eu tentei por horas, mas nunca serei um codificador ;-)

#dispositivo de propriedade_separate_window

#indicador de propriedade_mínimo -100.0

#indicador de propriedade_máximo 100.0

#indicador de propriedade_código de cor_nível SlateGray

#indicador de propriedade_levelstyle 1

#property indicator_buffers 8

#indicador de propriedade_color1 Lime

#indicador de propriedade_color2 Vermelho

#indicador de propriedade_color3 Preto

#indicador de propriedade_color4 Preto

#indicador de propriedade_color5 Preto

#indicador de propriedade_color6 Preto

#indicador de propriedade_color7 Aqua

#indicador de propriedade_color8 Amarelo

#largura_do_indicador de propriedade1 1

#indicador de propriedade_nível1 60.0

#largura_do_indicador de propriedade2 1

#indicador de propriedade_nível2 50.0

#indicador de propriedade_nível3 -50.0

#indicador de propriedade_nível4 -60.0

período de onda interna externa = 10;

Int. externo Período AvgPeriodo = 21;

Bool SoundAlert externo = FALSO;

bool externo EmailAlert = FALSO;

duplo g_ibuf_92[];

duplo g_ibuf_96[];

duplo g_ibuf_100[];

duplo g_ibuf_104[];

duplo g_ibuf_108[];

duplo g_ibuf_112[];

dupla g_ibuf_116[];

duplo g_ibuf_120[];

int gi_124 = -50;

int gi_128 = 50;

int gi_132;

int init() {

IndicatorShortName("TrendWave");

SetIndexBuffer(0, g_ibuf_100);

SetIndexLabel(0, "ESA");

SetIndexStyle(0, "DRAW_NONE");

SetIndexDrawBegin(0, 0);

SetIndexBuffer(1, g_ibuf_112);

SetIndexLabel(1, "Valores DD");

SetIndexStyle(1, "DRAW_NONE");

SetIndexDrawBegin(1, 0);

SetIndexBuffer(2, g_ibuf_104);

SetIndexLabel(2, "DD");

SetIndexStyle(2, "DRAW_NONE");

SetIndexDrawBegin(2, 0);

SetIndexBuffer(3, "g_ibuf_108");

SetIndexLabel(3, "CI");

SetIndexStyle(3, "DRAW_NONE");

SetIndexDrawBegin(3, 0);

SetIndexBuffer(4, "g_ibuf_92");

SetIndexLabel(4, "Bull");

SetIndexStyle(4, DRAW_LINE, STYLE_SOLID, 1, Lime);

SetIndexDrawBegin(4, 0);

SetIndexBuffer(5, g_ibuf_96);

SetIndexLabel(5, "Urso");

SetIndexStyle(5, DRAW_LINE, STYLE_SOLID, 1, Red);

SetIndexDrawBegin(5, 0);

SetIndexBuffer(6, g_ibuf_116);

SetIndexLabel(6, "Buy Dot");

SetIndexStyle(6, "DRAW_ARROW", "STYLE_SOLID", 2, "Aqua");

SetIndexArrow(6, 108);

SetIndexDrawBegin(6, 0);

SetIndexBuffer(7, g_ibuf_120);

SetIndexLabel(7, "Sell Dot");

SetIndexStyle(7, DRAW_ARROW, STYLE_SOLID, 2, Yellow);

SetIndexArrow(7, 108);

SetIndexDrawBegin(7, 0);

ArrayResize(g_ibuf_100, Bars);

ArrayResize(g_ibuf_112, Barras);

ArrayResize(g_ibuf_104, Barras);

ArrayResize(g_ibuf_108, Barras);

ArrayResize(g_ibuf_92, Barras);

ArrayResize(g_ibuf_96, Barras);

ArrayResize(g_ibuf_116, Barras);

ArrayResize(g_ibuf_120, Barras);

retornar (0);

}

int start() {

duplo l_ima_on_arr_0;

int li_12 = IndicatorCounted();

se (li_12 < 0) retornar (-1);

se (li_12 > 0) li_12--;

int li_8 = Barras - li_12;

for (int li_16 = li_8; li_16 > 0; li_16--) {

g_ibuf_100[li_16] = iMA(NULL, 0, WavePeriod, 0, MODE_EMA, PRICE_TYPICAL, li_16);

ArraySetAsSeries(g_ibuf_100, TRUE);

}

para (li_16 = li_8; li_16 > 0; li_16--) {

g_ibuf_112[li_16] = MathAbs((iHigh(NULL, 0, li_16) + iClose(NULL, 0, li_16) + iLow(NULL, 0, li_16)) / 3.0 - g_ibuf_100[li_16]);

ArraySetAsSeries(g_ibuf_112, TRUE);

}

para (li_16 = li_8; li_16 > 0; li_16--) {

l_ima_on_arr_0 = iMAOnArray(g_ibuf_112, 0, WavePeriod, 0, MODE_EMA, li_16);

g_ibuf_104[li_16] = l_ima_sobre_arr_0;

ArraySetAsSeries(g_ibuf_104, TRUE);

}

para (li_16 = li_8; li_16 > 0; li_16--) {

if (g_ibuf_104[li_16] > 0.0) g_ibuf_108[li_16] = ((iHigh(NULL, 0, li_16) + iClose(NULL, 0, li_16) + iLow(NULL, 0, li_16)) / 3.0 - g_ibuf_100[li_16]) / (0,015 * g_ibuf_104[li_16]);

caso contrário g_ibuf_108[li_16] = 0;

ArraySetAsSeries(g_ibuf_108, TRUE);

}

para (li_16 = li_8; li_16 > 0; li_16--) {

l_ima_on_arr_0 = iMAOnArray(g_ibuf_108, 0, AvgPeriod, 0, MODE_EMA, li_16);

g_ibuf_92[li_16] = l_ima_sobre_arr_0;

ArraySetAsSeries(g_ibuf_92, TRUE);

}

para (li_16 = li_8; li_16 > 0; li_16--) {

l_ima_on_arr_0 = iMAOnArray(g_ibuf_92, 0, 4, 0, MODE_SMA, li_16);

g_ibuf_96[li_16] = l_ima_sobre_arr_0;

ArraySetAsSeries(g_ibuf_96, TRUE);

}

para (li_16 = li_8; li_16 > 0; li_16--) {

if (g_ibuf_92[li_16] >= g_ibuf_96[li_16] && g_ibuf_92[li_16 + 1] <= g_ibuf_96[li_16 + 1] && g_ibuf_92[li_16] < gi_124) {

g_ibuf_116[li_16] = g_ibuf_92[li_16];

SendAlert("comprar");

} else g_ibuf_116[li_16] = -1000;

if (g_ibuf_92[li_16] = g_ibuf_96[li_16 + 1] && g_ibuf_92[li_16] > gi_128) {

g_ibuf_120[li_16] = g_ibuf_96[li_16];

SendAlert("vender");

} else g_ibuf_120[li_16] = -1000;

}

retorno (0);

}

void SendAlert(string as_0) {

se (Time[0] != gi_132) {

se (SoundAlert) {

se (as_0 == "comprar") Alerta(Símbolo() + " => " + TimeToStr(TimeCurrent()) + " comprar");

se (as_0 == "vender") Alerta(Símbolo() + " => " + TimeToStr(TimeCurrent()) + " vender");

}

se (EmailAlert) {

se (as_0 == "comprar") SendMail("TrendWave Alert", Symbol() + " => " + TimeToStr(TimeCurrent()) + " comprar");

se (as_0 == "vender") SendMail("TrendWave Alert", Symbol() + " => " + TimeToStr(TimeCurrent()) + " vender");

}

gi_132 = Tempo[0];

}

}