[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 180
Chers professionnels ! Où puis-je trouver la fonction SloseBy() qui fonctionne en mode manuel ? Je veux l'ajouter à mes hiboux, de sorte que je puisse fermer la position avec le moins maximal à celle avec le plus maximal, pas manuellement, mais automatiquement selon les conditions. Je n'ai pas pu le trouver dans le codebase. Je ne l'ai pas trouvé dans le codebase. Merci !
borilunad: Ev. pros ! Où puis-je trouver la fonction СloseBy(), qui fonctionne en mode manuel ? Je veux l'ajouter à mes hiboux, pour qu'il ne soit pas possible de fermer une position avec un maximum de moins vers l'opposé avec un maximum de plus, mais automatiquement, selon les conditions. Je n'ai pas pu le trouver dans le codebase. Je ne l'ai pas trouvé dans le codebase. Merci !
Essayez cette option :
bool LockOFF(int EA_Magic) {
double Result, PrevLoss, PrevProfit;
int pos, orders_total, order_type, MaxProfitTicket, MaxLossTicket;
bool Ans;
MaxProfitTicket=-1; MaxLossTicket=-1;
orders_total=OrdersTotal();
for(pos=orders_total-1; pos>=0; pos--) {
if(!OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)) continue;
if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=EA_Magic) continue; // не наш ордерif(OrderType()>1) continue;
Result=OrderProfit()+OrderSwap()+OrderCommission();
if(Result<0.0 && (PrevLoss==0.0 || Result<PrevLoss)) {
PrevLoss=Result; MaxLossTicket=OrderTicket(); order_type=OrderType(); } } // end of forif(MaxLossTicket==-1) return(false); // нет убыточной позицииif(order_type==OP_BUY) order_type=OP_SELL; else order_type=OP_BUY;
orders_total=OrdersTotal();
for(pos=orders_total-1; pos>=0; pos--) {
if(!OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)) continue;
if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=EA_Magic) continue; // не наш ордерif(order_type!=OrderType()) continue;
Result=OrderProfit()+OrderSwap()+OrderCommission();
if(Result>0.0 && (PrevProfit==0.0 || Result>PrevProfit)) {
PrevProfit=Result; MaxProfitTicket=OrderTicket(); } } // end of forif(MaxProfitTicket==-1) return(false); // нет противоположной прибыльной позиции
Ans=OrderCloseBy(MaxLossTicket, MaxProfitTicket);
if(!Ans) { Print("Ошибка при встречном закрытие"); return(false); }
return(true); }
Sergei, à première vue, ça vaut le coup ! Je vais le visser, faire les conditions et l'essayer. Merci beaucoup !
Essayé, il fonctionne sans erreurs ! Il ne reste plus qu'à expérimenter les conditions, pour obtenir l'effet, et tout ira bien ! Mais c'est pour demain !
borilunad: Sergei, à première vue, ça vaut le coup ! Je vais le visser, faire les conditions et l'essayer. Merci beaucoup !
Seulement, au lieu d'une commande de contre-fermeture, insérez une fonction de contre-fermeture à part entière - sinon, ce n'est que pour le testeur. Et initialiser les variables dans la fonction.
artmedia70: Seulement, au lieu d'une commande de contre-fermeture, insérez une fonction de contre-fermeture à part entière - sinon, ce n'est que pour le testeur. Et initialiser les variables dans la fonction.
Merci Artyom, c'était trop tard. Je vais tout faire selon les règles en ligne aujourd'hui !
J'ai redessiné cet indicateur pour mes propres besoins avec beaucoup de difficulté à partir de morceaux de code d'autres Expert Advisors et Inductors. Ce n'est pas un gros code et il fonctionne comme je le souhaite.
Le problème est qu'il effectue certains calculs en interne et affiche des flèches vers le haut ou vers le bas sur le graphique.
Veuillez m'indiquer comment faire pour qu'un conseiller expert ouvre un ordre dans la bonne direction lorsque la flèche apparaît sur le graphique.
Plus précisément, j'ai juste besoin de savoir quelle flèche est active maintenant, je pense que je peux faire le reste.
Voici un morceau de code pour le rendre plus clair, c'est une initialisation dans l'indicateur
J'ai redessiné cet indicateur pour mes propres besoins avec beaucoup de difficulté à partir de morceaux de code d'autres Expert Advisors et Inductors. Ce n'est pas un gros code et il fonctionne comme je le souhaite.
Le problème est qu'il effectue certains calculs en interne et affiche des flèches vers le haut ou vers le bas sur le graphique.
Veuillez m'indiquer comment faire pour qu'un conseiller expert ouvre un ordre dans la bonne direction lorsque la flèche apparaît sur le graphique.
Plus précisément, j'ai juste besoin de savoir quelle flèche est active maintenant, je pense pouvoir faire le reste.
Voici un morceau de code pour le rendre plus clair, c'est une initialisation dans l'indicateur
SetIndexBuffer(1, Vverh);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,233);
SetIndexBuffer(2,Vniz);
SetIndexStyle(2,DRAW_ARROW);
SetIndexArrow(2,234);
Merci d'avance à tous
Utilisez la fonction iCustom intégrée pour recevoir les valeurs de l'indicateur personnalisé dont vous avez besoin dans le conseiller expert.
doubleiCustom( string symbol, int timeframe, string name, ..., int mode, int shift)
Par exemple, vous devez savoir s'il y a une flèche vers le haut ou vers le bas sur la dernière barre complètement formée :
double Up=iCustom(NULL, 0, name/* название индикатора */, /* настраиваемые параметры индикатора через запятую */, 1, 1); // стрелка вверхdouble Dw=iCustom(NULL, 0, name/* название индикатора */, /* настраиваемые параметры индикатора через запятую */, 2, 1); // стрелка вниз
Merci beaucoup pour votre réponse rapide.
Essayez cette option :
Ev. pros ! Où puis-je trouver la fonction СloseBy(), qui fonctionne en mode manuel ? Je veux l'ajouter à mes hiboux, pour qu'il ne soit pas possible de fermer une position avec un maximum de moins vers l'opposé avec un maximum de plus, mais automatiquement, selon les conditions. Je n'ai pas pu le trouver dans le codebase. Je ne l'ai pas trouvé dans le codebase. Merci !
Essayez cette option :
Sergei, à première vue, ça vaut le coup ! Je vais le visser, faire les conditions et l'essayer. Merci beaucoup !
Essayé, il fonctionne sans erreurs ! Il ne reste plus qu'à expérimenter les conditions, pour obtenir l'effet, et tout ira bien ! Mais c'est pour demain !
Merci beaucoup. Et des rêves intéressants !
Sergei, à première vue, ça vaut le coup ! Je vais le visser, faire les conditions et l'essayer. Merci beaucoup !
Seulement, au lieu d'une commande de contre-fermeture, insérez une fonction de contre-fermeture à part entière - sinon, ce n'est que pour le testeur. Et initialiser les variables dans la fonction.
Merci, Artyom ! C'était trop tard. Je ferai tout dans les règles pour la mise en ligne aujourd'hui !
Bon après-midi. J'ai une telle question.
J'ai redessiné cet indicateur pour mes propres besoins avec beaucoup de difficulté à partir de morceaux de code d'autres Expert Advisors et Inductors. Ce n'est pas un gros code et il fonctionne comme je le souhaite.
Le problème est qu'il effectue certains calculs en interne et affiche des flèches vers le haut ou vers le bas sur le graphique.
Veuillez m'indiquer comment faire pour qu'un conseiller expert ouvre un ordre dans la bonne direction lorsque la flèche apparaît sur le graphique.
Plus précisément, j'ai juste besoin de savoir quelle flèche est active maintenant, je pense que je peux faire le reste.
Voici un morceau de code pour le rendre plus clair, c'est une initialisation dans l'indicateur
SetIndexBuffer(1, Vverh);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,233);
SetIndexBuffer(2,Vniz);
SetIndexStyle(2,DRAW_ARROW);
SetIndexArrow(2,234);
Merci d'avance
Bon après-midi. J'ai une telle question.
J'ai redessiné cet indicateur pour mes propres besoins avec beaucoup de difficulté à partir de morceaux de code d'autres Expert Advisors et Inductors. Ce n'est pas un gros code et il fonctionne comme je le souhaite.
Le problème est qu'il effectue certains calculs en interne et affiche des flèches vers le haut ou vers le bas sur le graphique.
Veuillez m'indiquer comment faire pour qu'un conseiller expert ouvre un ordre dans la bonne direction lorsque la flèche apparaît sur le graphique.
Plus précisément, j'ai juste besoin de savoir quelle flèche est active maintenant, je pense pouvoir faire le reste.
Voici un morceau de code pour le rendre plus clair, c'est une initialisation dans l'indicateur
SetIndexBuffer(1, Vverh);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,233);
SetIndexBuffer(2,Vniz);
SetIndexStyle(2,DRAW_ARROW);
SetIndexArrow(2,234);
Merci d'avance à tous
Utilisez la fonction iCustom intégrée pour recevoir les valeurs de l'indicateur personnalisé dont vous avez besoin dans le conseiller expert.
Par exemple, vous devez savoir s'il y a une flèche vers le haut ou vers le bas sur la dernière barre complètement formée :