Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1098
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
Les gars, je me suis déjà creusé les méninges. Comment faire pour que l'EA place des ordres en attente sur les hauts et les bas, par exemple 8 bougies, avec un take profit de 1/4.
Je fais quelque chose comme ça :
double Vhod1=iHighest(Symbol(),0,MODE_HIGH,8,0) ;
double Vhod2=iLowest(Symbol(),0,MODE_LOW,8,0) ;
double TP=((Vhod1-Vhod2)/4)+Vhod1 ;
J'ai essayé de modifier les paramètres, mais je continue à obtenir des arrêts erronés ou à fixer le prix à 7.00000 ; on ne sait pas très bien d'où cela vient.
iHighest, iLowest donnera l'adresse de la bougie, pas le prix.
C'est vrai. Nous avons besoin
double Vhod1=iHigh(Symbole(), 0, iHighest(Symbole(),0,MODE_HIGH,8,0)) ;
double Vhod2=iLow(Symbol(), 0, iLowest(Symbol(),0,MODE_LOW,8,0)) ;
Je l'ai mal mis, mais ça n'aurait toujours pas fonctionné correctement parce que... Parce que.) Bref, ça devrait se passer comme ça :
1) créer une variable AllowNewOrders dans l'inite (si elle n'existe pas)
2) Créez un nouvel ordre, jusqu'à ce qu'il soit clôturé, le OnTick de ce symbole est inactif, mais il sera exécuté sur le OnTick d'un autre symbole.
3) Effectuez l'étape 2 pour les autres symboles jusqu'à ce que la limite MaxOpenOrders soit atteinte.
4) à la fin de l'ordre, s'il est perdant ou a une valeur nulle, interdire l'ouverture de nouveaux ordres pour toutes les copies via AllowNewOrders.
[Voici le problème immédiat : lorsque la série perdante se termine, AllowNewOrders=1, mais que se passe-t-il si MaxOpenOrders>1 et qu'il y a plusieurs de ces sessions ?]
5) Si le point 4 n'est pas rempli, vous pouvez alors ouvrir de nouveaux ordres.
Le programme DOIT fonctionner lorsque MaxOpenOrders=1. Peut-être y aura-t-il un problème si nous interdisons les nouveaux ordres à la suite d'un ordre non rentable AllowNewOrders=0 et que le prochain OrderSend, pour une raison quelconque, n'ouvre pas l'ordre. Je vais écrire ci-dessous comment je me suis couvert pour ce cas...
Je vais écrire ci-dessous comment je me couvre pour cette éventualité...
Si la solution à l'erreur est correctement prévue, le taux de réussite de l'ouverture d'une commande augmente.
Comment le code ci-dessous peut-il changer dans ces conditions ?
for(cnt=OrdersTotal()-1;cnt>=0;cnt--){
if ( !OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue ;
if(OrderSymbol()!=Symbol()) continue ; if(OrderMagicNumber() < startMagicNumber || OrderMagicNumber() >= startMagicNumber + MaxTrades) continue ;
J'ai mis le code pour générer une magik lors de l'ouverture des premiers ordres d'une série, mais voici le problème lors de l'ouverture de nouveaux ordres dans la même série.
Le code lui-même pour générer la magie à partir du post ://+------------------------------------------------------------------+
// obtenir la magie suivante dans la série
int getNextMagicNumber(){
int magic = EMPTY ;
if (OrdersTotal() == 0) {
return(startMagicNumber) ;
}
for (int i = startMagicNumber ; i < startMagicNumber + MaxTrades ; i++){
magic = checkMarketByMagic(i) ;
if (magic != EMPTY) break ;
}
if (magic == EMPTY){
magic = startMagicNumber ; // premier de la série
} else {
magic++ ; // suivant de la série
}
return(magic) ;
}
//+------------------------------------------------------------------+
// keekkenen : vérifier la présence d'un ordre sur le marché avec une magie donnée
int checkMarketByMagic(int magic){
for(int i = 0 ; i < OrdersTotal() ; i++){
if( !OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue ;
if(OrderSymbol() != Symbol()) continue ;
if(OrderMagicNumber() == magic) return(magic) ;
}
return(EMPTY) ;
}
//+------------------------------------------------------------------+
Je m'excuse si j'ai confondu les fils, mais je n'ai pas trouvé le bon endroit pour poster le THEME, donc ne me donnez pas de coup de pied.
Parfois, en surfant sur Internet à la recherche de nouveaux conseillers-experts, je suis tombé sur un conseiller-expert auquel je n'ai pas prêté attention, car sa description était standard, et il y en a beaucoup, mais je n'ai pas prêté attention à son nom.
Si je ne l'ai pas vu ou lu, veuillez me donner le nom, et google fera son travail ou si j'en ai un, je le prendrai comme un cadeau. Il existe peut-être un conseiller similaire qui effectue des actions similaires.
Je vais décrire la signification de l'Expert Advisor (il n'y a rien de très sophistiqué, ce dont j'ai besoin maintenant).
En gros, le travail ressemblerait à ceci :
1. Ouvrir une position manuellement, par exemple acheter.
2. Le conseiller expert définit le Stop Loss et le Take Profit en fonction des paramètres.
3. L'ordre est fermé au moment du takeprofit - l'EA ouvre immédiatement un autre achat et définit les mêmes stoploss et takeprofit jusqu'à ce qu'il rattrape le premier stoploss ou s'il existe un takeprofit ultime.
4. Si la position est fermée par un Stop Loss, le robot ne fait plus rien. Le conseiller expert attend que l'ordre suivant soit ouvert manuellement.
C'est tout.
Je vous en serais très reconnaissant.
Je l'ai mal inséré, mais ça n'a toujours pas fonctionné correctement, parce que... Parce que.) Bref, ça se passe comme ça :
1) créer une variable AllowNewOrders dans l'initem (si elle n'existe pas)
2) Créez un nouvel ordre jusqu'à ce qu'il se ferme Le OnTick de ce symbole est inactif, mais le OnTick de l'autre symbole fonctionne.
3) Effectuez l'étape 2 pour les autres symboles jusqu'à ce que la limite MaxOpenOrders soit atteinte.
4) à la fin de l'ordre, s'il est perdant ou a une valeur nulle, interdire l'ouverture de nouveaux ordres pour toutes les copies via AllowNewOrders.
[Voici le problème immédiat : lorsque la série perdante se termine, AllowNewOrders=1, mais que se passe-t-il si MaxOpenOrders>1 et qu'il y a plusieurs de ces sessions ?]
5) Si le point 4 n'est pas rempli, vous pouvez alors ouvrir de nouveaux ordres.
Le programme DOIT fonctionner lorsque MaxOpenOrders=1. Peut-être y aura-t-il un problème si nous interdisons les nouveaux ordres à la suite d'un ordre non rentable AllowNewOrders=0 et que le prochain OrderSend, pour une raison quelconque, n'ouvre pas l'ordre. Je vais écrire ci-dessous comment je me couvre pour ce cas.
Merci Alexander, je le vérifierai demain. [d'où le problème immédiat - lorsque la série perdante se termine, AllowNewOrders=1, mais si MaxOpenOrders>1 et qu'il y a plus d'une session...]. Si MaxOpenOrders>1 par une certaine valeur, alors dans l'idée AllowNewOrders=1 devrait également être plus grand par la même valeur. Mais je n'ai pas besoin de m'en préoccuper pour l'instant et MaxOpenOrders devrait être complètement supprimé, car dans cette version du programme, on ne prévoit pas plus d'une série de toute façon.
Bonjour à tous !
Voici un objet graphique sur un graphique.
Ses paramètres sont le temps, la valeur et le code. La valeur correspond au prix auquel l'objet est situé.
Existe-t-il un moyen d'obtenir son heure et sa valeur (via une fonction ou autre) ?
\\\\\
Ou, dans un sens plus large, existe-t-il des objets (en dehors des lignes de tendance, des lignes de Fibonacci, des Gannets) qui nous permettent d'obtenir leur temps et leur prix instantanément ?
Je dois placer des marqueurs sur le tableau et obtenir des informations de leur part. Tracer des lignes de tendance, fibo, etc... - terriblement encombrant et lent...
Merci pour les réponses !
PS Je viens de commencer à étudier...
Bonjour à tous !
Voici un objet graphique sur un graphique.
Ses paramètres sont le temps, la valeur et le code. La valeur correspond au prix auquel l'objet est situé.
Existe-t-il un moyen d'obtenir son heure et sa valeur (via une fonction ou autre) ?
\\\\\
Ou, dans un contexte plus large, existe-t-il des objets (en dehors des lignes de tendance, des lignes de Fibonacci, des Gannets) dont on peut déduire immédiatement le temps et le prix ?
Je dois placer des marqueurs sur le tableau et obtenir des informations de leur part. Tracer des lignes de tendance, fibo, etc... - terriblement encombrant et lent...
Merci pour les réponses !
PS Je viens de commencer à étudier...
https://docs.mql4.com/ru/objects/objectgetinteger