[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 951

 
Stepan241:
He modificado ligeramente su intikator en cuanto a la presentación de la información. Mira más de cerca. Hay señales contradictorias en él.

Puesto eliminado. Uno de ellos ya ha sido expulsado durante un mes.
 
001:

Eso es exactamente lo que estaba describiendo esta lógica, con un ticker, así que con un ticker, no entiendo cómo implementarlo mejor en el código. No se me ocurre otra cosa que una matriz. Gracias a los que han respondido.
Lea atentamente los mensajes anteriores. Ya he escrito que es más fácil abrir una postura contraria con otro magik. Entonces la comprobación de la pérdida de la posición omitirá una posición opuesta ya abierta y no habrá reaperturas.
 
Vinin:

Puesto eliminado. Uno de ellos ya ha sido expulsado durante un mes.
He modificado este indicador sólo para un propósito, para ver las señales con más detalle. Si hay divergencias, siempre se muestran con línea roja en el indicador NORMAL. No digo que sea malo o que tenga fallos, es genial. No digo que sea malo ni que tenga fallos, es genial... Sólo que si quiere que un principiante entienda por qué faltan las señales, mejor que lo vea y no sólo lo lea.
 
Stepan241:
He modificado este indicador con un propósito: ver las señales con más detalle. Si hay señales de dirección diferente, siempre se muestran con una línea roja en el indicador NORMAL. No digo que sea malo o que tenga fallos, es genial. No digo que sea malo ni que tenga fallos, es genial... Sólo que si quiere que un principiante entienda por qué faltan las señales, mejor que lo vea y no sólo lo lea.
Deberías "mirar" en privado, no volcar los indicadores rotos en el foro del sitio oficial...
 
artmedia70:

Es necesario ajustar los dígitos para el yen si se trabaja con él y el símbolo de la orden contiene JPY. No te preocupes, esta función lo hará todo por ti. Y debe colocarse, al igual que cualquier otra función, fuera del cuerpo de la EA. Y debes llamarlo desde el EA de la siguiente manera:



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

 

¿Cómo puedo obtener el beneficio/pérdida de los últimos diez pedidos de todo el historial?

 
DhP:

¿Cómo puedo obtener el beneficio/pérdida de las últimas diez órdenes de todo el historial?


coge una calculadora, haz las cuentas))))

.

.

.

.

.

Hace poco me enseñaron el código del último pedido cerrado, a ver si lo puedes hacer funcionar.

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 algún script o asesor que compre varias órdenes y venda todas las órdenes a + beneficio... dígame quien lo sabe por favor
 

Estimados usuarios del foro. ¿Quién puede decirme cómo escribir correctamente la condición "para que una orden de compra de mercado se abra por debajo del precio de apertura de la orden de compra de mercado anterior?

 
fanat:

Estimados usuarios del foro. ¿Quién puede decirme cómo escribir correctamente la condición "para que una orden de compra de mercado se abra por debajo del precio de apertura de la orden de compra de mercado anterior?

Hace un par de páginas publiqué un procedimiento que busca en el historial la última operación con el símbolo especificado y devuelve su beneficio. Usando este código como base puede devolver no el beneficio de la última operación, sino por ejemplo el precio de apertura o cierre de la última operación..... o cualquier otro dato.