[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 40

 
Twilight:


¿Sugieres meter el código del indicador en el Asesor Experto y recalcularlo allí?

¿Y si hay 5 indicadores de este tipo?

¿Hay alguna forma de recalcularlos de forma diferente?

Adjunto todos los indicadores al Asesor Experto a través de iCustom

El indicador y su último valor se llaman en cada nueva barra, pero no se vuelve a dibujar en la ventana de símbolos negociados hasta que se cambia el marco temporal y se vuelve atrás.

Si haces clic en el gráfico y pulsas actualizar, no se vuelve a dibujar, por alguna razón sólo se vuelve a dibujar cuando cambias de marco temporal.

No conozco su imaginación. Si quieres tener una buena imagen del indicador, debes buscar en su código. En particular, el límite variable. Está presente en este indicador. Por cierto, a juzgar por los comentarios a este indicador, su autor ha prohibido el rerizzing del indicador y puedes hacerlo como quieras pero no conseguirás lo que quieres porque la esencia del rerizzing es la aparición de la señal hace unas barras.

Buena suerte.

 
silatyt:

No estoy al tanto de sus fantasías. Para obtener una buena imagen de un indicador, hay que hurgar en su código. En particular, con la variable límite. Está presente en este indicador. Por cierto, a juzgar por los comentarios a este indicador, el autor prohíbe que el indicador haga rerifting. Puedes hacerlo como quieras pero no conseguirás lo que quieres porque la esencia del rerifting es la aparición de la señal unas barras atrás.

Buena suerte.

En Metatrader, en cualquier ventana de herramientas, si haces clic con el botón derecho, hay un botón de actualización

¿Hay alguna forma de llamar a esta función mediante un programa?

RefreshRates no parece serlo.

 

Me pueden decir cómo implementar el código del EA en dos o tres líneas:

Cuando llega una señal (por ejemplo, el cruce de dos MA)

1. El Asesor Experto detecta la hora de la señal (en horas, minutos), la almacena;

2. Cuenta atrás de un minuto.

A continuación, la disposición a hacer algo (por ejemplo, abrir un pedido)

 
Twilight:
En Metatrader, en cualquier ventana de herramientas, si haces clic con el botón derecho, hay un botón de actualización

¿hay alguna forma de llamar a esta función mediante un programa?

RefreshRates no parece serlo.


Biblioteca. Necesita 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ólo que es mejor esperar un poco. Publicó una nueva versión. Tal vez los moderadores lo publiquen hoy.

 
Zhunko:

Biblioteca. Necesita 4.7.7 ServiceTickIndicators().

Sólo que es mejor esperar un poco más. Publicó una nueva versión. Tal vez los moderadores lo publiquen hoy.


¿Pagado?

 
Twilight:
En Metatrader, en cualquier ventana de herramientas, si haces clic con el botón derecho, hay un botón de actualización

¿hay alguna forma de llamar a esta función mediante un programa?

RefreshRates no parece ser así.


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

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

Pero no te dará nada. :)

 
Twilight:


¿Pagado?

No. ¿Dónde dice que se paga?
 
silatyt:

Pero no te servirá de nada... :)

Tienes que rediseñarlo visualmente.

Recorre las últimas N barras y si hubo una señal - signal=true.

Después puedes hacer lo que quieras con todos los demás indicadores que no sean de redistribución.

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

¿Dónde insertar? ¿Al inicio de Start?

Gracias.

 
Twilight:

Se redibujará visualmente.

Recorre las últimas N barras y si hubo una señal entonces signal=true

Y luego puedes hacer lo que quieras con cualquier otro indicador no redibujable.

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

¿Dónde insertar? ¿Al inicio de Start?

Gracias.

Antes de la llamada al indicador (también se puede hacer al principio de start()).

P.D. Todo el mundo "huye" de la redistribución, y usted está detrás de ella, de forma poco convencional... :))

 
silatyt:

Antes de llamar al indicador (también puede estar al principio de start()).

P.D. Todo el mundo "huye" de la redistribución, mientras tú estás detrás... :))


Por ejemplo, aquí hay una variante. Redibujamos en m5 y comprobamos si hay señal para las últimas 12 barras.

Y en el nuevo m15 m30 comprobamos si hubo una señal en el m5 y si el precio sigue siendo relevante, es decir, cumple los requisitos para entrar.

Y también es posible analizar cuántas veces durante la misma hora la señal cambió, desapareció, etc.

Y la señal tiene un nombre y es posible analizar el gráfico visualmente por el nombre =)

En general, todo un campo no arado para los experimentos. Pero hasta ahora, tal resultado =)

Con mi modificación

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