[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 229

 
nikkola >> :

Je ne l'ai pas décompilé, c'est comme ça que je l'ai eu...

Cela ne fait absolument aucune différence.

 
étrange, ça a disparu tout seul, mais grâce à TheXpert quand même , je vais savoir quelle est l'erreur
 
nikkola >> :

Je ne l'ai pas décompilé, c'est comme ça que je l'ai eu...

Et en général, les experts de ce genre sont même sur cette ressource en vrac et en source ouverte. C'était une sorte d'EA de prune, travaillée à l'intersection du prix et de l'ondulation. Je l'ai remplacé par un autre indicateur, et c'est tout. Et j'ai rencontré ce problème.

 
et une dernière question, quelqu'un sait-il si les citations sont disponibles sous forme d'archives, car je n'ai plus d'internet ^_^
 
nikkola >> :

Bonjour, aidez-moi s'il vous plaît, je ne comprends pas... J'ai un EA qui fonctionne sur des signaux d'oscillateur, ouvre des positions après le passage à zéro. Je veux qu'il ouvre une position lorsque la barre courante est fermée et que le signal s'est formé. Il peut ouvrir et fermer une position plusieurs fois en une minute :) Jusqu'à ce que le signal s'ajuste.

Voici le code :


extern double Lot = 0.1 ;
extern double Per = 14 ;
bool gi_84 = VRAI ;
int gi_88 = 366 ;
double gd_92 = 0,02 ;
double gd_100 = 0,2 ;
int g_period_108 = 14 ;
int gi_112 = 50 ;
int g_slippage_116 = 0 ;



void start() {
int l_cmd_52 ;
int l_ticket_56 ;

string l_symbol_0 = Symbol() ;
double l_isar_8 = iCustom(NULL,0, "daytrend-t01",Per,0,0) ;
double l_isar_9 = iCustom(NULL,5, "daytrend-t01",Per,0,0) ;
int l_cmd_40 = -1 ;
int l_ord_total_44 = OrdersTotal() ;
Lot = MathMax(Lot, MarketInfo(l_symbol_0, MODE_MINLOT)) ;
for (int li_48 = l_ord_total_44 ; li_48 > 0 ; li_48--) {
si (OrderSelect(li_48 - 1, SELECT_BY_POS) == TRUE) {
l_cmd_52 = OrderType() ;
if (OrderSymbol() != l_symbol_0 || l_cmd_52 < OP_BUY || l_cmd_52 > OP_SELL) continue ;
l_ticket_56 = OrderTicket() ;
RefreshRates() ;
si (l_cmd_52 < OP_SELL) {
if (l_isar_8 > 0) {
while (OrderClose(l_ticket_56, Lot, Bid, g_slippage_116) == 0) FunError(gi_112) ;
l_cmd_40 = -1 ;
continuer ;
}
} else {
if (l_isar_8 < 0 ) {
while (OrderClose(l_ticket_56, Lot, Ask, g_slippage_116) == 0) FunError(gi_112) ;
l_cmd_40 = -1 ;
continuer ;
}
}
l_cmd_40 = l_cmd_52 ;
}
}
if (l_cmd_40 < OP_BUY && g_period_108 == 0 || DayOfYear() < gi_88) {
RefreshRates() ;
si (l_isar_8 < 0 && l_isar_9 < 0 ) while (OrderSend(l_symbol_0, OP_BUY, Lot, Ask, g_slippage_116, 0, 0) == 0) FunError(gi_112) ;
sinon
si (l_isar_8 > 0 && l_isar_9 > 0 ) while (OrderSend(l_symbol_0, OP_SELL, Lot, Bid, g_slippage_116, 0, 0) == 0) FunError(gi_112) ;
}
}

void FunError(int ai_0) {
Sleep(ai_0) ;
RefreshRates() ;
}

void deinit() {
}

J'utilise le code suivant pour cela :


bool Fun_New_bar()
/*
est conçue pour détecter la présence d'une nouvelle barre,
si la nouvelle barre est prise "true" sinon "false".
===========
Variables :
===========
Test_Time - Heure du test
*/
{
static datetime Test_Time=0 ;
if(Test_Time!=Time[0])
{
Test_Time=Time[0] ;
retour (vrai) ;
}
retour (faux) ;
}


A ma question s'il vous plaît aidez-moi si je sais ou dites-moi si c'est impossible de le faire... je cherche une réponse depuis 3 jours et toujours pas de chance. :-(

 
betmen >> :

Pour ma question s'il vous plaît aidez qui sait ou dites-moi si c'est impossible de le faire ... Je cherche une réponse depuis 3 jours et jusqu'à présent sans succès. :-(

L'interface utilisateur personnalisée permet de personnaliser les paramètres. C'est-à-dire une fenêtre qui a été spécialement développée pour une tâche spécifique (pour des indicateurs spécifiques). Il n'est pas possible de créer de telles fenêtres dans Metatrader. Cela signifie qu'ils doivent être créés ailleurs, avec un fichier exécutable. Le fichier exécutable peut être soit Exe, soit Dll. La Dll peut être appelée au début d'un indicateur/script, c'est clairement plus pratique.

 
jartmailru >> :

L'interface utilisateur personnalisée est utilisée pour définir les paramètres. C'est-à-dire une fenêtre qui a été spécialement conçue pour une tâche spécifique (pour des indicateurs spécifiques). Il n'est pas possible de créer de telles fenêtres dans Metatrader. Cela signifie qu'ils doivent être créés ailleurs, avec un fichier exécutable. Le fichier exécutable peut être soit Exe, soit Dll. Vous pouvez appeler la Dll au début de l'indicateur/script, c'est plus confortable.

Merci ! !!

Si vous voulez bien partager l'article où il est décrit, je vous en serai très reconnaissant... :-)

 
betmen >> :

Merci ! !!

La question est de savoir comment configurer l'interface entre les objets du "main form" et les variables dans MQL4, si vous partagez avec moi des liens vers des articles à ce sujet, je vais exploser de gratitude... :-)

J'ai l'impression que le mieux est d'ignorer la Dll,

montrer modalement peut être dangereux (c'est un indicateur sur le fil de l'interface utilisateur, vous pouvez avoir des conséquences).

ou peut-être pas... En général, le formulaire peut être exécuté dans un environnement séparé - avec Wtl, tout s'est bien passé.

L'indicateur attendra un signal indiquant qu'il est autorisé à travailler et interrogera ce formulaire.

Et ensuite - lorsque le formulaire est prêt - il y a différentes fonctions comme get(int & to[]), avec des pointeurs/références,

qui transférera des données différentes. Avec des ficelles, il pourrait y avoir des problèmes...

Et vous partagerez le lien de l'article avec moi ;-).

 
jartmailru >> :

J'ai l'impression que c'est mieux d'ignorer la Dll,

le montrer modalement peut être dangereux (c'est sur le fil de l'interface utilisateur, vous pouvez avoir des conséquences).

ou peut-être pas... En général, le formulaire peut être exécuté dans un environnement séparé - avec Wtl, tout s'est bien passé.

L'indicateur attendra un signal indiquant qu'il est autorisé à travailler et interrogera ce formulaire.

Et ensuite - lorsque le formulaire est prêt - il y a différentes fonctions comme get(int & to[]), avec des pointeurs/références,

qui transférera des données différentes. Avec des ficelles, il pourrait y avoir des problèmes...

Vous pouvez partager le lien de l'article avec moi ;-).

La question était de savoir comment les indicateurs standards font apparaître un nouvel onglet "Paramètres" lors de la sélection des paramètres du fonctionnement de l'indicateur lui-même, avec la possibilité de remplacer les chiffres par quelque chose de plus lisible.

Par exemple, si vous appelez le MA :


dans le code de l'indicateur il y a la variable "MA_Method" et la sélection de la méthode passe par la condition


switch(MA_Méthode)
{
cas 1 : short_name="EMA(" ; draw_begin=0 ; break ;
cas 2 : short_name="SMMA(" ; break ;
cas 3 : short_name="LWMA(" ; break ;
par défaut :
MA_Method=0 ;
short_name="SMA(" ;


Vous suggérez d'exécuter un exe compilé à partir d'un autre environnement pendant l'initialisation, il est vraiment possible d'exécuter un fichier exe pendant l'initialisation, mais alors il y a un autre problème - comment passer les données du programme aux variables de l'indicateur lui-même ?

Par exemple, comment passer une valeur de combobox1.text convertie en un nombre à MA_Method ?

Ce n'est pas esthétique à travers un fichier et il semble que MetaTrader et mon "test.exe" n'ont pas d'espace mémoire commun.

 
Rita писал(а) >>

Merci. Je vais essayer maintenant.

//------------------------------------------

Oui, ça a marché. Les experts travaillent.

Et ça n'a pas marché pour moi :-( Je reçois toujours l'excuse d'erreur et je ferme MT