Questions des débutants MQL5 MT5 MetaTrader 5 - page 354

 
Arsen_Syharev:
Veuillez me conseiller sur la commande à écrire pour ouvrir les fractales Sell1 et Sell2 en même temps.
Il n'y a rien sur le forum.
 
Salut les amis, pourriez-vous suggérer une fonction simple, qui, si une condition se réalise... (SigPF==1 ou SigPF==2) et OrdersTotal>0 c'est-à-dire que seuls les ordres qui sont actuellement sur le marché doivent être traités si l'une des conditions SigPF se produit.

C'est la variable externe qui vérifie la condition à l'intérieur de la fonction.
extern int PF_price_in_pips=70 ;
La fonction doit :
1.définir le type d'ordre auquel nous avons affaire... si SigPF==1, il s'agit d'un ordre d'achat, si SigPF==2, il s'agit d'un ordre de vente.
2. vérifier le prix actuel et si
il y a un ordre d'achat et SigPF==1 est présent sur le marché, alors

la différence entre le prix actuel auquel l'ordre d'achat doit être ouvert et l'un des prix ouverts des ordres déjà sur le marché est supérieure à PF_price_in_pips, la fonction doit renvoyer valid_signal=true.


il y a maintenant des ordres de vente sur le marché, et SigPF==2 a été défini, alors

la différence entre le prix d'un ordre ouvert déjà présent sur le marché et le prix actuel, auquel l'ordre de vente sera ouvert, est supérieure à PF_price_in_pips, alors la fonction doit renvoyer l'indicateur valid_signal=true.

si la distance entre le prix d'ouverture du nouvel ordre et l'occurrence des signaux d'achat/de vente est inférieure à PF_price_in_pips, la fonction doit renvoyer valid_signal=false.

En résumé, la fonction doit vérifier la distance entre le prix d'ouverture du nouvel ordre aux signaux d'achat et de vente (SigPF==1, SigPF==2) et n'importe lequel des prix d'ouverture des ordres qui sont déjà sur le marché... et si cette distance est supérieure à PF_price_in_pips alors le valid_signal=true doit être retourné. Ceci afin d'éviter d'ouvrir des commandes à des prix très proches les uns des autres ! Et une autre chose... mon EA ne trade que sur l'ouverture d'une nouvelle barre... pas sur tous les ticks... mais je ne pense pas que ça compte... Je dois de toute façon tenir compte des prix d'achat et de vente...

aide avec cette fonction... ! Si quelque chose n'est pas clair, j'essaierai d'expliquer... ou de donner des photos ! Aidez-moi) Merci !
 

Je ne suis pas sûr d'avoir les bons termes, mais...

   int PF_price_in_pips=70;
   int OrdTotal=OrdersTotal();
   bool valid_signal=false;
   int SigFF;
   
   if(OrdersTotal()>0)
   {
   for(int i=OrdTotal-1; i>=0; i --)
     {
      if(!OrderSelect(i,SELECT_BY_POS))
         continue;

      if(OrderType()==OP_BUY && SigFF==1 && Ask+OrderOpenPrice()>PF_price_in_pips)
         valid_signal=true;
         else
         valid_signal=false;
      if(OrderType()==OP_SELL && SigFF==2 && OrderOpenPrice()-Bid>PF_price_in_pips)
         valid_signal=true;
         else
         valid_signal=false;

     }
     }
 
Arsen_Syharev:
Pouvez-vous me dire quelle commande écrire pour que lorsque les fractales Sell1 et Sell2 s'ouvrent en même temps un ordre
Quelle valeur de Sell1 et Sell2 vous conviendrait pour ouvrir un ordre. //Je ne peux plus regarder ton angoisse....
 
Arsen_Syharev:
Pouvez-vous me dire quelle commande écrire pour que lorsque les fractales Sell1 et Sell2 sont ouvertes en même temps, un ordre soit ouvert.
if (Sell1 !=0 && Sell2 != 0){

/* Если по текущей цене */ 

OrderSend(Symbol1, OP_SELL, Lots, Bid, 1, 0, 0, 0, Magik, 0, Red);

OrderSend(Symbol2, OP_SELL, Lots, Bid, 1, 0,0, 0, Magik, 0, Red); 

/*Если по пробитию фракталов отложенными ордерами */

 OrderSend(Symbol1, OP_SELLSTOP, Lots, Sell1, 1, 0, 0, 0, Magik, 0, Red);

OrderSend(Symbol2, OP_SELLSTOP, Lots, Sell2, 1, 0,0, 0, Magik, 0, Red);  

} 

Mais il doit s'agir d'un exemple TRÈS TRÈS grossier

 
Savez-vous s'il est possible de signer plus d'un signal sur un seul compte ?
 

Bonjour chers collègues, j'ai récemment rejoint vos rangs :). J'en ai marre des ordres en attente et j'ai décidé d'utiliser un script que j'ai téléchargé sur Internet mais ce n'était pas satisfaisant : j'avais des erreurs dans un seul sens, et l'autre script ne plaçait qu'un ordre dans chaque sens. Il consiste essentiellement à ouvrir un certain nombre d'ordres en attente dans les deux sens. Question : Comment puis-je définir un stop suiveur sur chaque ordre ? Il s'agit d'un script, pas d'un conseiller expert. Les ordres ont été ouverts, le trailing stop leur a été attaché, et c'est tout, le script a fait son travail. Comment puis-je utiliser le script pour déclencher un trailing stop régulier qui est exécuté par un clic droit sur un ordre ? 4ème MetaTrader Build 765.

 
entitie:

Bonjour chers collègues, j'ai récemment rejoint vos rangs :). J'en ai marre des ordres en attente et j'ai décidé d'utiliser un script que j'ai téléchargé sur Internet mais ce n'était pas satisfaisant : j'avais des erreurs dans un seul sens, et l'autre script ne plaçait qu'un ordre dans chaque sens. Il consiste essentiellement à ouvrir un certain nombre d'ordres en attente dans les deux sens. Question : Comment puis-je définir un stop suiveur sur chaque ordre ? Il s'agit d'un script, pas d'un conseiller expert. Les ordres ont été ouverts, le trailing stop leur a été attaché, et c'est tout, le script a fait son travail. Comment puis-je utiliser le script pour déclencher un trailing stop régulier qui est exécuté par un clic droit sur un ordre ? 4ème MetaTrader Build 765.

Le freelance fait tout).
 

Bonjour à tous !

La tâche est la suivante : je dois ouvrir des ordres après un certain pas de distance sur EURUSD.m pour acheter et sur EURUSD.m1 pour vendre. Ce problème est résolu dans le code ci-dessous.

Toutefois, si le prix a évolué en notre défaveur, nous devons encore ouvrir des ordres d'achat pour EURUSD.m, à condition que le prix ait évolué depuis le dernier ordre de vente à EURUSD.m1 à une distance de Step*2. Cette condition fonctionnera à condition que ce prix d'ouverture soit inférieur au prix du dernier ordre d'achat pour EURUSD.m.

Je n'arrive pas à trouver comment le faire. Je serais heureux de vous aider.

// бай евро доллар
if (rates[1].open < rates[1].close && !PositionSelect(Symbol1)) 
   {
      LastPriceBuy = OpenBuy(Symbol1,Lot); // если бычья свеча и нет открытой позиции по этому символу
   }
if (GlobalVariableCheck ("bb_1")) GlobalVariableGet("bb_1", bb_1);  // цифровая переменная внутренняя и ее проверка

if (PositionSelect(Symbol1) && LastPriceBuy > 0) //открытие второго и последующих ордеров
  {
   if(LastPriceBuy+Step*_Point < SymbolInfoDouble(Symbol1,SYMBOL_ASK)) 
   {LastPriceBuy = OpenBuy(Symbol1,Lot);} // открытие позиции в бай по евро доллару всех последующих ордеров 
  }    

// сел евро доллар
if (rates[1].open > rates[1].close && !PositionSelect(Symbol3)) {LastPriceSell = OpenSell(Symbol3,Lot);} // если бычья свеча и нет открытой позиции по этому символу
if (GlobalVariableCheck ("ss_1")) GlobalVariableGet("ss1_", ss_1);  // цифровая переменная внутренняя и ее проверка

if (PositionSelect(Symbol3) && LastPriceSell > 0) //открытие второго и последующих ордеров
  {
   if(LastPriceSell-Step*_Point > SymbolInfoDouble(Symbol3,SYMBOL_BID))
   {LastPriceSell = OpenSell(Symbol3,Lot);} // открытие позиции в селл по евро доллару всех последующих ордеров 
  } 
 
zfs:
Les freelances font tout cela).

Une réponse-commentaire très précieuse et informative, je vous suggère de l'utiliser aussi...

En fait, il n'existe pas de commande simple qui, après avoir ouvert un ordre, y ajoute un stop suiveur standard ?