Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Disons-le comme ça. Vous montrez le code qui passe les commandes avec une explication de la façon dont il devrait le faire et seulement alors nous pourrons dire ce qui est bien et ce qui est mal. Le simple nom des fonctions ne vous aidera pas à vous rapprocher du résultat.
Bonjour ... merci d'avoir accepté de m'aider ... Il semblait qu'une petite entreprise, pour sonner la fermeture des commandes, pourrait être faite simplement en ajoutant l'événement requis au dossier approprié - il s'est avéré ne pas être si facile .... Voici un exemple de code que j'ai pris dansMQL4 ReferenceTrading Functions:
intOrdersHistoryTotal() ;
// récupération d'informations dans l'historique des échangesint i,accTotal=OrdersHistoryTotal() ;
for(i=0;i<accTotal;i++)
{
//---- vérifier le résultat de la sélection
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Erreur d'accès à la base de données de l'historique (",GetLastError(),"));
pause;
}
// travailler avec un ordre ...
}
... La fonction renvoiele montant des ordres fermés et supprimés dans l'historique du compte courant chargé dans le terminal client. La taille de la liste de l'historique dépend des paramètres actuels de l'onglet "Historique du compte" du terminal.
Je ne comprends pas comment il va les rechercher et pourquoi il est nécessaire... Peut-être faut-il les mémoriser et les écarter, pour qu'elles ne soient pas un obstacle ?
Nous sommes censés faire retentir les commandes nouvellement fermées au moment où elles sont fermées par un bref signal sonore. Tous les ordres à fermer dans mon terminal client sont de deux types seulement : parmoyenneTrailStopLoss etTakeProfit. Lors de la clôture d'un ordre (ou d'un groupe d'ordres), quelle que soit la direction (vente ou achat), ils doivent être séparés uniquement par unStopLossou unTakeProfit etenvoyés à la fonctionPlaySoundcorrespondante.
Bonjour ... merci d'avoir accepté de m'aider ... Il semblait qu'une petite entreprise, pour sonner la fermeture des commandes, pourrait être faite simplement en ajoutant l'événement requis au dossier approprié - il s'est avéré ne pas être si facile .... Voici un exemple de code que j'ai pris dansMQL4 ReferenceTrading Functions:
intOrdersHistoryTotal() ;
// récupération d'informations dans l'historique des échangesint i,accTotal=OrdersHistoryTotal() ;
for(i=0;i<accTotal;i++)
{
//---- vérifier le résultat de la sélection
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Erreur d'accès à la base de données de l'historique (",GetLastError(),"));
pause;
}
// travailler avec un ordre ...
}
... La fonction renvoiele montant des ordres fermés et supprimés dans l'historique du compte courant chargé dans le terminal client. La taille de la liste de l'historique dépend des paramètres actuels de l'onglet "Historique du compte" du terminal.
Je ne comprends pas comment il va les rechercher et pourquoi il est nécessaire... Peut-être est-il nécessaire de les mémoriser et de les écarter, afin qu'elles ne soient pas un obstacle ?
Nous sommes censés faire retentir les commandes nouvellement fermées au moment où elles sont fermées par un bref signal sonore. Tous les ordres à fermer dans mon terminal client sont de deux types seulement : parmoyenneTrailStopLoss etTakeProfit. Lors de la clôture d'un ordre (ou d'un groupe d'ordres), quelle que soit la direction (vente ou achat), ils doivent être séparés uniquement par la commande de clôtureStopLossouTakeProfitet envoyés à la fonctionPlaySoundcorrespondante.
Les ordres doivent être recherchés dans l'ordre inverse puisque 0 est le tout premier. accTotal-1 est le dernier. Dans ce code, après "// travailler avec l'ordre" se souvenir du commentaire et vérifier s'il y a un commentaire de clôture pour le SL ou le TP.
intOrdersHistoryTotal() ;
// récupération d'informations dans l'historique des échangesint i,accTotal=OrdersHistoryTotal() ;
for(i=0;i<accTotal;i++)
{
//---- vérifier le résultat de la sélection
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Erreur d'accès à la base de données de l'historique (",GetLastError(),"));
pause;
}
// travailler avec un ordre ...
}
stringOrderComment() ;
commentaire de la chaîne;si(OrderSelect(10,SELECT_BY_TICKET)==false)
{
Print("OrderSelect() a retourné une erreur ",GetLastError()) ;
retour(0) ;
}
commentaire=OrderComment() ;
// ...
Merci pour la réponse ... Après avoir ajouté le code de la fonctionOrderComment,(MQL4Trading FunctionsReference) qui renvoie le commentaire d'un ordre sélectionné à l'aide de la fonction OrdersHistoryTotal, le code ressemble à ceci ... Et n'avons-nous pas une fonction qui suit les nouvelles commandes fermées dans l'historique du terminal ?"0 - tout premier. accTotal-1 - dernier" - nous voulons dire "premier fermé" et "dernier fermé" dans l'historique du terminal, est-ce par temps ... ? Est-ce que j'ai bien compris ?
mais n'avons-nous pas une fonction pour suivre les nouveaux ordres fermés dans l'historique du terminal ?
Il n'y en a pas de standard.
string comment;
for(i=accTotal-1;i>=0;i++)
{
//---- check selection result
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
break;
}
// работа с ордером ...
comment = OrderComment();
// Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ
}
Il n'y en a pas de standard.
string comment;
for(i=accTotal-1;i>=0;i++)
{
//---- check selection result
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
break;
}
// работа с ордером ...
comment = OrderComment();
// Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ
}
Merci... Vous voulez dire la fonction StringFind = Rechercher une sous-chaîne dans une chaîne de caractères.
) ;
Renvoie le numéro de position dans la chaîne où commence la sous-chaîne à rechercher, ou -1 si aucune sous-chaîne n'est trouvée.
... ou la fonctionStringCompare-Comparaison de deux chaînes de caractères?...
Merci... Vous voulez dire la fonction StringFind = Rechercher une sous-chaîne dans une chaîne de caractères.
) ;
Renvoie le numéro de position dans la chaîne où commence la sous-chaîne à rechercher, ou -1 si aucune sous-chaîne n'est trouvée.
...
Correct.
Merci... le code sera alors le suivant :
int i,accTotal=OrdersHistoryTotal();
int StringFind(string comment;
for(i=accTotal-1;i>=0;i++)
{
//---- check selection result
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
break;
}
// работа с ордером ...
comment = OrderComment();
// Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ
}
string string_value, // строка, в которой ищем
string match_substring, // что ищем
int start_pos=0 // с какой позиции начинать поиск
);
Merci... le code prendra alors la forme de :
int i,accTotal=OrdersHistoryTotal();
int StringFind(string comment;
for(i=accTotal-1;i>=0;i++)
{
//---- check selection result
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
break;
}
// работа с ордером ...
comment = OrderComment();
// Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ
}
string string_value, // строка, в которой ищем
string match_substring, // что ищем
int start_pos=0 // с какой позиции начинать поиск
);
Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading
Questions des débutants
A1exPit, 2016.11.30 22:14
Pouvez-vous me dire par OrderSelect by SELECT_BY_POS quelle commande 0 est la dernière placée ou la première ? J'essaye dans les deux sens et vice versa, mais l'erreur modifier #0 s'envole.