[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 612
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
Commençons :
1.Si(Stoch_1>Stoch_2) flag1=1 ; , alors la condition qui la suit (Stoch_1<Stoch_2 && flag1==1) ne peut en principe pas être vraie, car si Stoch_1<Stoch_2 flag1==0 et si flag1==1alors Stoch_1>Stoch_2. il en est de même pour toutes les conditions suivantes dans cette fonction, donc seul le flag1 peut changer la valeur. Autrement dit, votre programme exécutera les deux premières lignes, sautera latroisième, exécutera laquatrième, sautera lacinquième, exécutera la sixième, exécutera la septième et sautera toutes les autres.
Vous avez tort, parce que vous ne comprenez pas le problème. C'est le cas, et tout fonctionne parfaitement, exactement comme je l'entends. Peut-être que le code pourrait être simplifié, mais maintenant ce n'est plus à la masse... Je dois juste finir l'EA entière et déjà regarder le REST de l'idée de trading qu'elle contient.....
et la programmation pour le plaisir de la programmation ne m'intéresse pas beaucoup...
Oui, j'ai fait comme vous l'avez écrit. Et ça ne compile pas.
Il est évident que j'ai fait quelque chose de mal, mais je ne comprends pas quoi exactement. Vous pourriez le faire étape par étape.
Le premier ordre a un prix ouvert de1,2900 et un TP de 1,300. Le second ordre a un prix ouvert de1,2800 et un TP de 1,290. Il s'agit de paramètres différents. Le premier estBAY, le second estBAY_STOP. Il s'agit également de paramètres différents.
Vous avez tort parce que vous ne comprenez pas l'essentiel. Et c'est le cas, et tout fonctionne parfaitement comme je le souhaite. Peut-être que le code pourrait être simplifié, mais maintenant ce n'est plus une question de gras... Je dois juste terminer l'EA entier et déjà regarder le retour sur l'idée de trading qu'il contient.....
Je ne suis pas intéressé par la programmation pour le plaisir de programmer...
Je pense que c'est exactement ce que vous avez - la programmation pour le plaisir de la programmation. Votre fonction ne fait rien d'autre que de surcharger le CPU.
J'ai commencé à programmer après cinq ans d'étude du marché, de développement et d'essai de diverses stratégies, lorsque j'ai réalisé que la stratégie de trading (réussie) développée par moi et testée manuellement 20 fois sur l'historique, premièrement, n'a pas d'analogues, qu'ils peuvent être trouvés dans kodobase, et deuxièmement, même avec des paramètres proches des limites des capacités techniques, elle fixe des exigences qui sont impossibles pour les humains, et peuvent être facilement satisfaites même par l'ordinateur le plus faible (par exemple, rester avec votre ordinateur pendant une semaine ou plus).
Mais je suppose que vous avez compris ?
Il suffit de placer un ordre en suspens avec les paramètres que vous souhaitez.
P.S. Dans l'EA -- juste après l'ouverture de l'ordre.
Il suffit de placer un ordre en attente avec les paramètres que vous souhaitez.
P.S. Dans l'EA -- juste après l'ouverture de l'ordre.
Quel est le code ?
Renvoie le numéro de ticket qui est attribué à l'ordre par le serveur de négociation ou -1 en cas d'échec. Pour obtenir plus d'informations sur l'erreur, appelez GetLastError().
Notes.
Lors de l'ouverture d'un ordre au marché (OP_SELL ou OP_BUY), seuls les derniers cours acheteur (pour la vente) ou vendeur (pour l'achat) peuvent être utilisés comme cours d'ouverture. Si l'opération est effectuée pour un instrument financier différent de l'instrument actuel, alors pour obtenir les derniers cours pour cet instrument, il faut utiliser la fonction MarketInfo() avec le paramètre MODE_BID ou MODE_ASK. Vous ne pouvez pas utiliser un prix estimé ou non normalisé. Si le prix d'ouverture demandé n'était pas dans le flux de prix ou si le prix demandé n'est pas normalisé en fonction du nombre de décimales, l'erreur 129 (ERR_INVALID_PRICE) sera générée. Si le prix d'ouverture demandé est gravement dépassé, une erreur 138 (ERR_REQUOTE) est générée quelle que soit la valeur du paramètre slippage. Si le prix demandé est périmé mais toujours présent dans le flux de prix, la position sera ouverte au prix actuel et seulement si le prix actuel se situe dans la fourchette prix+slippage.
Les prix StopLoss et TakeProfit ne doivent pas être trop proches du marché. La distance minimale de stop en pips peut être obtenue en utilisant la fonction MarketInfo() avec le paramètre MODE_STOPLEVEL. L'erreur 130 (ERR_INVALID_STOPS) est générée en cas d'arrêts erronés ou non normalisés.
Lorsque vous placez un ordre en suspens, le prix d'ouverture ne peut pas être trop proche du marché. La distance minimale du prix en suspens par rapport au prix actuel du marché en points peut également être obtenue en utilisant la fonction MarketInfo() avec le paramètre MODE_STOPLEVEL. Si le prix d'ouverture de l'ordre en attente est incorrect, l'erreur 130 (ERR_INVALID_STOPS) sera générée.
Sur certains serveurs commerciaux, il est possible d'interdire l'expiration des ordres en attente. Dans ce cas, une erreur 147 (ERR_TRADE_EXPIRATION_DENIED) sera générée lors de la tentative de définir une valeur non nulle dans le paramètre d'expiration.
Sur certains serveurs commerciaux, il est possible de fixer une limite au nombre total d'ordres ouverts et en attente. Si cette limite est dépassée, une nouvelle position ne sera pas ouverte (aucun ordre en attente ne sera défini) et le serveur de négociation renverra l'erreur 148 (ERR_TRADE_TOO_MANY_ORDERS).
et même si votre code a donné 24 erreurs dans le compilateur !!! merci quand même pour l'aide négligente.... pour l'idée... (maintenant ça marche - bien que j'ai essayé de faire ça mais la ponctuation a échoué)
Je n'ai pas essayé de le compiler, j'ai juste mis les parenthèses ! Sinon, ils ne fonctionneraient pas du tout. J'ai montré comment ils doivent être. Le reste de la logique n'est pas encore clair. Je me souviens, en mettant chaque drapeau suivant, vous ,,demandiez le contraire de la condition précédente, tout en vérifiant si le drapeau était vrai....
En fait, mon premier commentaire vous invitait à reconsidérer ce que vous aviez écrit, en vérifiant la référence.
un conseil pour un débutant !!!! le conseiller est désactivé dans le terminal mais le stoploss est déclenché, est-ce possible ?
Bien sûr qu'elle l'est.