[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 40

 
Twilight:


Suggérez-vous de placer le code de l'indicateur dans le conseiller expert et de le recalculer à cet endroit ?

Et si ces indicateurs sont au nombre de 5 ?

Existe-t-il un moyen de les recalculer différemment ?

J'attache tous les indicateurs au conseiller expert via iCustom.

L'indicateur et sa dernière valeur sont appelés à chaque nouvelle barre, mais il n'est pas redessiné dans la fenêtre des symboles négociés jusqu'à ce que vous changiez de cadre temporel et reveniez en arrière.

Si vous cliquez sur le graphique et appuyez sur "update", il ne se redessine pas. Pour une raison quelconque, il ne se redessine que lorsque vous changez d'horizon temporel.

Je ne connais pas votre imagination. Si vous voulez vous faire une idée précise de l'indicateur, vous devez examiner son code. En particulier, la limite variable. Il est présent dans cet indicateur. D'ailleurs, à en juger par les commentaires de cet indicateur, son auteur a interdit le rerizzing de l'indicateur et vous pouvez le faire comme vous voulez mais vous n'obtiendrez pas ce que vous voulez car l'essence du rerizzing est l'apparition du signal il y a quelques barres.

Bonne chance.

 
silatyt:

Je ne suis pas au courant de vos fantasmes. Pour obtenir une belle image d'un indicateur, vous devez fouiller dans son code. En particulier, avec la variable limite. Il est présent dans cet indicateur. D'ailleurs, à en juger par les commentaires de cet indicateur, l'auteur lui interdit le rerifting. Vous pouvez le faire comme vous voulez mais vous n'obtiendrez pas ce que vous voulez car l'essence du rerifting est l'apparition du signal il y a quelques barres.

Bonne chance.

Dans Metatrader, dans n'importe quelle fenêtre d'outil, si vous cliquez avec le bouton droit de la souris, il existe un bouton d'actualisation.

Existe-t-il un moyen d'appeler cette fonction de manière programmatique ?

RefreshRates ne semble pas être le cas.

 

Pouvez-vous me dire comment implémenter le code EA en deux ou trois lignes :

Lorsqu'un signal arrive (par exemple le croisement de deux MAs)

1. l'Expert Advisor détecte l'heure du signal (en heures, minutes), l'enregistre ;

2. compte à rebours d'une minute.

Ensuite, la volonté de faire quelque chose (par exemple, ouvrir une commande).

 
Twilight:
Dans Metatrader, dans n'importe quelle fenêtre d'outil, si vous cliquez avec le bouton droit de la souris, il existe un bouton de mise à jour.

Y a-t-il un moyen d'appeler cette fonction de manière programmatique ?

RefreshRates ne semble pas être le cas.


Bibliothèque. Vous avez besoin 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); // Системный дескриптор окна графика, для эмуляции тика для индикаторов.

Seulement, c'est mieux d'attendre un peu. Posté une nouvelle version. Peut-être que les modérateurs le publieront aujourd'hui.

 
Zhunko:

Bibliothèque. Vous avez besoin de 4.7.7 ServiceTickIndicators().

Seulement, il vaut mieux attendre un peu plus longtemps. Posté une nouvelle version. Peut-être que les modérateurs le publieront aujourd'hui.


Payé ?

 
Twilight:
Dans Metatrader, dans n'importe quelle fenêtre d'outil, si vous cliquez avec le bouton droit de la souris, il existe un bouton d'actualisation.

Y a-t-il un moyen d'appeler cette fonction de manière programmatique ?

RefreshRates ne semble pas être de cette façon.


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

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

Mais ça ne vous donnera rien. :)

 
Twilight:


Payé ?

Non. Où est-il écrit "payé" ?
 
silatyt:

Mais ça ne vous servira à rien... :)

Vous devez le redessiner visuellement.

Parcourt les N dernières barres et s'il y a eu un signal - signal=vrai.

Après cela, vous pouvez faire ce que vous voulez avec tous les autres indicateurs non redessinés.

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

Où insérer ? Au début de Start ?

Merci.

 
Twilight:

Il sera redessiné visuellement.

Parcourir les N dernières barres et s'il y a eu un signal, alors signal=vrai.

Et ensuite, vous pouvez faire ce que vous voulez avec tous les autres indicateurs non redessinés.

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

Où insérer ? Au début de Start ?

Merci.

Avant l'appel de l'indicateur (vous pouvez également le faire au début de start()).

P.S. Tout le monde "fuit" le redécoupage, et vous êtes à l'origine de ce phénomène - de manière non conventionnelle... :))

 
silatyt:

Avant d'appeler l'indicateur (peut aussi être au début de start()).

P.S. Tout le monde "fuit" le redécoupage, alors que vous êtes à l'origine de ce phénomène - de manière non conventionnelle... :))


Par exemple, voici une variante. Nous redessinons sur m5 et vérifions s'il y a un signal pour les 12 dernières barres.

Et sur les nouvelles m15 m30, nous vérifions s'il y a eu un signal sur m5 et si le prix est toujours pertinent, c'est-à-dire qu'il remplit les conditions d'entrée.

Il est également possible d'analyser combien de fois au cours d'une même heure le signal a changé, disparu, etc.

Et le signal a un nom et il est possible d'analyser visuellement le graphique par nom =)

En général, c'est un grand champ d'expérimentation).

Avec ma modification

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

Raison: