[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 40

 
Twilight:


Você está sugerindo enfiar o código indicador no Expert Advisor e recalculá-lo lá?

E se houver 5 indicadores desse tipo?

Existe alguma maneira de recalculá-los de forma diferente?

Anexo todos os indicadores ao Consultor Especialista através do iCustom

O indicador e seu último valor são chamados a cada nova barra, mas ele não é redesenhado na janela do símbolo negociado até que você altere o prazo e volte para trás.

Se você clicar no gráfico e pressionar atualizar, ele não é redesenhado, por alguma razão ele é redesenhado somente quando você muda o cronograma.

Eu não conheço sua imaginação. Se você quiser obter uma boa imagem do indicador, você deve olhar em volta em seu código. Em particular, o limite variável. Ela está presente neste indicador. A propósito, a julgar pelos comentários a este indicador, seu autor proibiu que o indicador fosse redizido e você pode fazê-lo como quiser, mas não conseguirá o que quer porque a essência da redizição é o aparecimento do sinal há algumas barras atrás.

Boa sorte.

 
silatyt:

Não estou ciente de suas fantasias. Para obter uma boa imagem de um indicador, você tem que cavar em seu código. Particularmente, com a variável limite. Ela está presente neste indicador. A propósito, a julgar pelos comentários a este indicador, o autor proíbe que o indicador seja redirecionado. Você pode fazê-lo como quiser, mas não terá o que deseja porque a essência do redirecionamento é o aparecimento do sinal há algumas barras atrás.

Boa sorte.

Em Metatrader, em qualquer janela de ferramenta, se você clicar com o botão direito do mouse, há um botão Atualizar

Existe uma maneira de chamar esta função de forma programática?

RefreshRates não parece ser isso.

 

Você pode me dizer como implementar o código EA em duas ou três linhas:

Quando chega um sinal (por exemplo, cruzamento de dois MAs)

1. Expert Advisor detecta a hora do sinal (em horas, minutos), armazena-o;

2. Contagem regressiva de um minuto.

Em seguida, prontidão para fazer algo (por exemplo, abrir um pedido)

 
Twilight:
Em Metatrader em qualquer janela de ferramenta, se você clicar com o botão direito do mouse, há um botão Atualizar

há alguma forma de chamar esta função de forma programática?

RefreshRates não parece ser isso.


Biblioteca. Você precisa de 4.7.7 ServiceTickIndicators().

 //=====================================================================================================================================================================
 // 4.7. Функции для управления обновлением графика.
 //=====================================================================================================================================================================
 // 4.7.1. Функция запускает обновление всех графиков с указанным периодом. Если обновление уже запущено, то функция меняет период обновления графиков.
 //        Останавливается обновление функциями "ServiceStopRefreshChart()" или "ServiceStopRefreshAllCharts()" или закрытием графика.
 void ServiceRefreshAllCharts(int nPeriodMilliSec); // Период обновления графика в миллисекундах.
 //=====================================================================================================================================================================
 // 4.7.2. Функция запускает обновление всех графиков однократно. Вызов функции при работающих других режимах останавливает обновление всех графиков.
 void ServiceRefreshAllOnceCharts();
 //=====================================================================================================================================================================
 // 4.7.3. Функция запускает обновление указанного графика с указанным периодом. Если обновление уже запущено, то функция меняет только период обновления графика.
 //        Останавливается обновление функциями "ServiceStopRefreshChart()" или "ServiceStopRefreshAllCharts()" или закрытием графика.
 void ServiceRefreshChart(int hwndChart,        // Системный дескриптор обновляемого графика.
                          int nPeriodMilliSec); // Период обновления графика в миллисекундах.
 //=====================================================================================================================================================================
 // 4.7.4. Функция останавливает обновление указанного графика.
 void ServiceStopRefreshChart(int hwndChart); // Системный дескриптор графика, на котором останавливается обновление.
 //=====================================================================================================================================================================
 // 4.7.5. Функция корректно останавливает обновление всех графиков при bTerminate = FALSE, иначе функция завершает обновление аварийно.
 void ServiceStopRefreshAllCharts(int bTerminate); // Флаг аварийной остановки потоков обновления графиков.
                                                   // FALSE - потоки останавливаются корректно, TRUE - потоки останавливаются аварийно.
 //=====================================================================================================================================================================
 // 4.7.6. Функция эммулирует тик для эксперта на указанном графике.
 void ServiceTickExpert(int hwndChart); // Системный дескриптор окна графика, для эмуляции тика для эксперта.
 //=====================================================================================================================================================================
 // 4.7.7. Функция эммулирует тик для индикаторов на указанном графике.
 void ServiceTickIndicators(int hwndChart); // Системный дескриптор окна графика, для эмуляции тика для индикаторов.

Só que é melhor esperar um pouco. Lançada uma nova versão. Talvez os moderadores afixem hoje.

 
Zhunko:

Biblioteca. Você precisa de 4.7.7 ServiceTickIndicators().

Só que é melhor esperar um pouco mais. Lançada uma nova versão. Talvez os moderadores afixem hoje.


Pago?

 
Twilight:
Em Metatrader, em qualquer janela de ferramenta, se você clicar com o botão direito do mouse, há um botão Atualizar

há alguma forma de chamar esta função de forma programática?

RefreshRates não parece ser assim.


#import "user32.dll"
int PostMessageA (int hWnd, int  Msg, int wParam, int lParam);
#import

PostMessageA (WindowHandle (Symbol(), Period()), 0x0111, 33324, 0);

Mas isso não lhe dará nada. :)

 
Twilight:


Pago?

Não. Onde diz pago?
 
silatyt:

Mas isso não lhe servirá de nada... :)

Você tem que redesenhá-lo visualmente.

Cicle nas últimas barras N e se houvesse um sinal - signal=true.

Depois disso, você pode fazer o que quiser com todos os outros indicadores que não sejam de redesenho.

PostMessageA (WindowHandle(Symbol(), Period()), 0x0111, 33324, 0);

Onde inserir? No início do Start?

Obrigado.

 
Twilight:

Ele será redesenhado visualmente.

Cicle nas últimas barras N e se houvesse um sinal então sinal=verdadeiro

E então você pode fazer o que quiser com qualquer outro indicador não redesenhado.

PostMessageA (WindowHandle(Symbol(), Period()), 0x0111, 33324, 0);

Onde inserir? No início do Start?

Obrigado.

Antes da chamada do indicador (você pode fazer isso também no início do início()).

P.S. Todos estão "fugindo" do redesenho, e você está por trás disso - de forma não convencional... :))

 
silatyt:

Antes de chamar o indicador (também pode estar no início do início()).

P.S. Todos estão "fugindo" do redesenho, enquanto você está por trás dele... :))


Por exemplo, aqui está uma variante. Rastreamos novamente o m5 e verificamos se há um sinal para as últimas 12 barras.

E no novo m15 m30 verificamos se havia um sinal no m5 e se o preço ainda é relevante, ou seja, satisfaz os requisitos para a entrada.

E também é possível analisar quantas vezes, durante a mesma hora, o sinal mudou, desapareceu, etc.

E o sinal tem um nome e é possível analisar o gráfico visualmente pelo nome =)

Em geral, um campo inteiro não arado para experimentação. Mas até agora, tal resultado =)

Com minha modificação

http://komplekt73.ru/forex/m5chastr.htm