[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 13
Le problème est que la fonction OrderClose() qui ferme l'ordre prend le numéro d'ordre comme premier paramètre, et le numéro d'ordre ne peut être obtenu qu'en appelant OrderSelect() sur des ordres existants, donc dans le cas général la fermeture ressemble à ceci...
Si OrdersTotal() = 0, c'est-à-dire s'il n'y a pas d'ordres ouverts, la boucle for se termine immédiatement.
Merci pour la réponse, pouvez-vous écrire le début de la fonction OrderSend ? Elle doit se placer juste après les dernières parenthèses ????.
Pouvez-vous me dire quelle fonction renvoie la valeur du niveau de marge (en pourcentage) pour les ordres ouverts, qui est affichée dans l'onglet "Trade" ?
Dans l'aide, aucune des fonctions énumérées ne renvoie cette valeur.
Qu'est-ce qui vous fait penser que je suis en colère ?
C'est juste ma façon d'expliquer que
en prenant tout signe d'inégalité et en courant
>> dans le testeur, vous pouvez obtenir un
le résultat avec un certain niveau, et peu importe quel niveau
positive ou négative. Et quand on lui demande
s'il faut prendre le niveau avec ou sans le moins,
il n'y a pas de distinction claire, malheureusement.
J'ai peut-être fait une erreur..........
Le problème est que le débutant demande ce qu'il NE SAIT PAS. Cet exemple de code sert à comprendre la structure (structure correcte) de l'EA.
Et ce qui est intégré dans ce morceau de code est construit sur un principe de trading CLASSIQUE. Tant le conseiller expert lui-même que les échantillons de code sont utilisés pour étudier les principes, et non pour titiller quelqu'un ou le prendre en défaut........ Après tout, vous DEVEZ comprendre théoriquement quoi et comment. Et puis créer, sculpter, inventer........
keekkenen 25.02.2009 11:34 1) Veuillez expliquer, la fonction OrderSend(...) a un type int, et vous la définissez comme un type bool, alors que le type bool n'a pas de valeur -1, est-ce correct ? 2) Dans la fonction KimIV d'ouverture de position la répétition se fait par for(...), alors que dans la vôtre par while(...). quelle est la meilleure façon selon vous ?
1. il s'agit d'une erreur... res devrait être déclarée comme int et une autre variable de type bool devrait être ajoutée pour renvoyer la valeur succès/échec de l'ouverture de l'ordre....
2. j'ai également utilisé une des implémentations de la fonction OpenPosition() d'Igor plus tôt, mais j'ai ensuite modifié la fonction pour faciliter la détection et le signalement des erreurs...
le résultat est la structure suivante
while( try !=0){// определение условий для открытыия позиции//..// открытие позициц
res =OrderSend(...);if( res >0){PlaySound("alert.wav");
try =0;Comment("Ордер открыт !");Sleep(2000);
ret =true;}else{/* блок определения ошибок и возврат
err - уровень критичности ошибки (0,1,2,3)
msg - описание ошибки (если showErrors = true)
уровни определяются по номеру ошибки
0-нет ошибки, 1-надо ждать и обновлять,
2-сделка бракуется,3-фатальная ошибка*/
ErrorBlock( showErrors, err, msg);if( err >1) try =0;// в данном случае 2 и 3 критичныComment("Ошибка - ", msg);Sleep(2000);}}
Si je comprends bien dans votre fonction, s'il y a des requêtes continues, alors le nombre de tentatives est illimité, contrairement à la fonction d'Igor ? Une limitation est-elle nécessaire dans ce cas ?
Le problème est que la fonction OrderClose() qui ferme l'ordre prend le numéro d'ordre comme premier paramètre, et le numéro d'ordre ne peut être obtenu qu'en appelant OrderSelect() sur des ordres existants, donc dans le cas général la fermeture ressemble à ceci...
Si OrdersTotal() = 0, c'est-à-dire s'il n'y a pas d'ordres ouverts, la boucle for se termine immédiatement.
Merci pour la réponse, pouvez-vous écrire le début de la fonction OrderSend ? Elle doit se placer juste après les dernières parenthèses ????.
Merci pour la réponse, pouvez-vous écrire le début de la fonction OrderSend ? Elle doit se placer juste après les dernières parenthèses ????.
Eh bien, voici un exemple
Pouvez-vous me dire quelle fonction renvoie la valeur du niveau de marge (en pourcentage) pour les ordres ouverts, qui est affichée dans l'onglet "Trade" ?
Dans l'aide, aucune des fonctions énumérées ne renvoie cette valeur.
AccountMargin
AccountFreeMargin
AccountFreeMarginCheck
AccountFreeMarginMode
L'indicateur Damiani_Volt peut être utilisé.
C'est intéressant, merci.
c'est là
Merci.
Qu'est-ce qui vous fait penser que je suis en colère ?
C'est juste ma façon d'expliquer que
en prenant tout signe d'inégalité et en courant
>> dans le testeur, vous pouvez obtenir un
le résultat avec un certain niveau, et peu importe quel niveau
positive ou négative. Et quand on lui demande
s'il faut prendre le niveau avec ou sans le moins,
il n'y a pas de distinction claire, malheureusement.
J'ai peut-être fait une erreur..........
Le problème est que le débutant demande ce qu'il NE SAIT PAS. Cet exemple de code sert à comprendre la structure (structure correcte) de l'EA.
Et ce qui est intégré dans ce morceau de code est construit sur un principe de trading CLASSIQUE. Tant le conseiller expert lui-même que les échantillons de code sont utilisés pour étudier les principes, et non pour titiller quelqu'un ou le prendre en défaut........ Après tout, vous DEVEZ comprendre théoriquement quoi et comment. Et puis créer, sculpter, inventer........
1. il s'agit d'une erreur... res devrait être déclarée comme int et une autre variable de type bool devrait être ajoutée pour renvoyer la valeur succès/échec de l'ouverture de l'ordre....
2. j'ai également utilisé une des implémentations de la fonction OpenPosition() d'Igor plus tôt, mais j'ai ensuite modifié la fonction pour faciliter la détection et le signalement des erreurs...
le résultat est la structure suivante