[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 951

 
Stepan241:
Ho leggermente modificato il tuo intikator in termini di presentazione delle informazioni. Date un'occhiata più da vicino. Ci sono segnali contrastanti in esso.

Post cancellato. Uno è già stato bandito per un mese.
 
001:

È esattamente quello che stavo descrivendo questa logica, con un ticker, quindi con un ticker, non capisco come implementarlo meglio nel codice. Non riesco a pensare a niente di diverso da un array. Grazie a coloro che hanno risposto.
Leggi attentamente i post precedenti. Ho già scritto che è più facile aprire una posa opposta con un'altra magia. Quindi il controllo della perdita di posizione salterà una posizione opposta già aperta e non ci saranno riaperture.
 
Vinin:

Post cancellato. Uno è già stato bandito per un mese.
Ho modificato questo indicatore solo per uno scopo, per vedere i segnali in modo più dettagliato. Se ci sono divergenze, queste sono sempre mostrate con una linea rossa sull'indicatore NORMAL. Non sto dicendo che è male o che ha dei difetti, è fantastico. Non sto dicendo che sia brutto o glitchato, è fantastico... Solo che se vuoi che un principiante capisca perché i segnali mancano, è meglio guardarlo e non solo leggerlo.
 
Stepan241:
Ho modificato questo indicatore con uno scopo - per vedere i segnali in modo più dettagliato. Se ci sono segnali di direzione diversa, sono sempre mostrati con una linea rossa sull'indicatore NORMAL. Non sto dicendo che è male o che ha dei difetti, è fantastico. Non sto dicendo che sia brutto o glitchato, è fantastico... Solo che se vuoi che un principiante capisca perché i segnali mancano, è meglio guardarlo e non solo leggerlo.
Si dovrebbe "guardare" in privato, non scaricare indicatori rotti sul forum del sito ufficiale ...
 
artmedia70:

Devi aggiustare le cifre per lo yen se stai lavorando con esso e il simbolo dell'ordine contiene JPY. Non preoccupatevi - questa funzione farà tutto per voi. E dovrebbe essere collocato, così come qualsiasi altra funzione al di fuori del corpo dell'EA. E per chiamarlo dall'EA:



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

 

Come posso ottenere il profitto/perdita degli ultimi dieci ordini dall'intera cronologia?

 
DhP:

Come posso ottenere il profitto/perdita degli ultimi dieci ordini dell'intera cronologia?


prendere una calcolatrice, fare i conti))))

.

.

.

.

.

Recentemente mi è stato mostrato il codice dell'ultimo ordine chiuso, vedi se riesci a farlo funzionare.

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);                                          // Возвращаем "Ложь"
}
 
C'è uno script o un consulente che compra diversi ordini e vende tutti gli ordini a + profitto ... dimmi chi lo sa per favore
 

Cari utenti del forum. Chi può dirmi come scrivere correttamente la condizione "per un ordine di acquisto a mercato per aprire sotto il prezzo di apertura del precedente ordine di acquisto a mercato?

 
fanat:

Cari utenti del forum. Chi può dirmi come scrivere correttamente la condizione "per un ordine di acquisto a mercato per aprire sotto il prezzo di apertura del precedente ordine di acquisto a mercato?

Un paio di pagine fa ho postato una procedura che cerca nella storia l'ultimo trade con il simbolo specificato e restituisce il suo profitto. Usando questo codice come base potete restituire non il profitto dell'ultima operazione, ma per esempio il prezzo di apertura o di chiusura dell'ultima operazione..... o qualsiasi altro dato.