[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 951

 
Stepan241:
J'ai légèrement modifié votre intikateur en ce qui concerne la présentation de l'information. Regardez de plus près. Il y a des signaux contradictoires.

Poste supprimé. L'un d'entre eux a déjà été banni pendant un mois.
 
001:

C'est exactement ce que je décrivais cette logique, avec un ticker, donc avec un ticker, je ne comprends pas comment mieux l'implémenter dans le code. Je ne peux pas penser à autre chose qu'à un tableau. Merci à ceux qui ont répondu.
Lisez attentivement les messages précédents. J'ai déjà écrit qu'il est plus facile d'ouvrir une pose opposée avec une autre magie. Ensuite, la vérification de la perte de position ignorera une position opposée déjà ouverte et il n'y aura pas de réouverture.
 
Vinin:

Poste supprimé. L'un d'entre eux a déjà été banni pendant un mois.
J'ai modifié cet indicateur dans un seul but, pour voir les signaux plus en détail. S'il y a des divergences, elles sont toujours indiquées par une ligne rouge sur l'indicateur NORMAL. Je ne dis pas qu'il est mauvais ou défectueux, il est génial. Je ne dis pas que c'est mauvais ou glitchy, c'est génial... Mais si vous voulez qu'un débutant comprenne pourquoi les signaux manquent, il vaut mieux le regarder et pas seulement le lire.
 
Stepan241:
J'ai modifié cet indicateur dans un seul but : voir les signaux de manière plus détaillée. S'il y a des signaux dirigés différemment, ils sont toujours indiqués par une ligne rouge sur l'indicateur NORMAL. Je ne dis pas qu'il est mauvais ou défectueux, il est génial. Je ne dis pas que c'est mauvais ou glitchy, c'est génial... Mais si vous voulez qu'un débutant comprenne pourquoi les signaux manquent, il vaut mieux le regarder et pas seulement le lire.
Vous devriez "regarder" en privé, pas balancer des indicateurs cassés sur le forum du site officiel...
 
artmedia70:

Vous devez ajuster les chiffres pour le yen si vous travaillez avec celui-ci et que le symbole de l'ordre contient JPY. Ne vous inquiétez pas, cette fonction fera tout pour vous. Et il doit être placé, ainsi que toute autre fonction en dehors du corps de l'EA. Et de l'appeler depuis l'EA :



if (isCloseLastPosByStop(Symbol(), OP_BUY, Magic)) // Если последняя закрытая позиция Buy на текущем графике с магиком Magic была закрыта по стопу, то ...
   {
      // .......... тут код, который выполнится при данном условии
   }
//--------------------------------------------------------------------------------------------------------------------------
if (isCloseLastPosByStop(USDJPY, OP_SELL, Magic)) // Если последняя закрытая позиция Sell с символом USDJPY с магиком Magic была закрыта по стопу, то ...
   {
      // .......... тут код, который выполнится при данном условии
   }
//--------------------------------------------------------------------------------------------------------------------------
if (isCloseLastPosByStop()) // Если любая последняя закрытая позиция с любым символом и любым магиком была закрыта по стопу, то ...
   {
      // .......... тут код, который выполнится при данном условии
   }
артем,я выбрал третье условие, и вбил самый простейший код "Alert" и что,
у меня в истории были и убытки и прибыли, функция срабатывала в любом случае и при прибыли и при убытке 

 

Comment puis-je obtenir les profits/pertes des dix dernières commandes à partir de l'historique complet ?

 
DhP:

Comment puis-je obtenir les profits/pertes des dix derniers ordres sur l'ensemble de l'historique ?


prenez une calculatrice, faites le calcul))))

.

.

.

.

.

On m'a récemment montré le code de la dernière commande fermée, voyez si vous pouvez le faire fonctionner.

bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {// Объявление функции. Передаваемые параметры: sy = символ, op - тип, mn - магик
  datetime t;                                                  // Переменная содержит время закрытия ордера
  double   ocp, osl;                                           // ocp - цена закрытия позиции, osl - цена СтопЛосс закрытой позиции
  int      dg, i, j=-1, k=OrdersHistoryTotal();                // k содержит общее количество ордеров в истории

  if (sy=="0") sy=Symbol();                                 // Если в ф-цию передан sy равный 0 или NULL, то использовать символ графика
  for (i=0; i<k; i++) {                                     // Цикл по массиву закрытых ордеров
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {      // Если выбран ордер из массива закрытых ордеров, ...
      if (OrderSymbol()==sy || sy=="") {                    // ... если его символ совпадает с нашим, ...
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {  // ... если его тип Бай или Селл, ...
          if (op<0 || OrderType()==op) {                // ... если тип ордера равен или -1 (имеется ввиду любой) или равен переданному в ф-цию, ...
            if (mn<0 || OrderMagicNumber()==mn) {       // ... если его магик или любой (-1) или равен переданному в ф-цию (магику советника), ...
              if (t<OrderCloseTime()) {    // ... если переменная t содержит время закрытия меньше, чем время закрытия выбранного ордера, то ...
                t=OrderCloseTime();        // ... то присвоим переменной t время закрытия выбранного ордера (этот ордер закрыт позже предыдущего)
                j=i;                                        // Запишем в переменную j индекс найденного ордера с максимальным временем закрытия
              }
            }
          }
        }
      }
    }
  }                                                       // По окончании цикла в переменной j находится индекс последнего закрытого ордера
  if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {      // Выберем его по индексу
    dg=MarketInfo(sy, MODE_DIGITS);                       // Количество цифр после десятичного точки в цене инструмента, заданного переменной sy
    if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2; // Честно... точно не скажу, но вижу, что корректировка под йену
    ocp=NormalizeDouble(OrderClosePrice(), dg);           // Нормализуем цену закрытия ордера для дальнейшего сравнения с ценой СтопЛосс
    osl=NormalizeDouble(OrderStopLoss(), dg);             // Нормализуем цену СтопЛосс ордера для сравнения с ценой закрытия
    if (ocp==osl) return(True);                           // Если эти цены равны, значит поза закрыта по стопу, возвращаем значение "Истина"
  }
  return(False);                                          // Возвращаем "Ложь"
}
 
Existe-t-il un script ou un conseiller qui achète plusieurs ordres et vend tous les ordres à + de profit ... dites-moi qui sait s'il vous plaît
 

Chers utilisateurs du forum. Qui peut me dire comment écrire correctement la condition "pour qu'un ordre d'achat au marché ouvre en dessous du prix d'ouverture de l'ordre d'achat au marché précédent" ?

 
fanat:

Chers utilisateurs du forum. Qui peut me dire comment écrire correctement la condition "pour qu'un ordre d'achat au marché ouvre en dessous du prix d'ouverture de l'ordre d'achat au marché précédent" ?

Il y a quelques pages, j'ai posté une procédure qui recherche dans l'historique la dernière transaction avec le symbole spécifié et renvoie son bénéfice. En utilisant ce code comme base, vous pouvez retourner non pas le bénéfice de la dernière transaction, mais par exemple le prix d'ouverture ou de clôture de la dernière transaction..... ou toute autre donnée.
Raison: