[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 951

 
Stepan241:
Я немного модифицировал твой интикатор в плане представления информации. Посмотри по внимательней. В нем встречаются разнонаправленные сигналы.

Пост удален. Один уже получил бан на месяц.
 
001:

Именно это я и описывал эту логику я и описывал, с тикетом, так с тикетом, не пойму как это в коде лучше реализовать. Кроме массива ничего не приходит в голову. Спасибо тем кто откликается.
Внимательно читайте предыдущие посты. Я уже написал, что проще открыть противоположную позу с другим Магиком. Тогда проверка на убыточность позы будет пропускать уже открытую противоположную позицию и повторного открытия не будет
 
Vinin:

Пост удален. Один уже получил бан на месяц.
Я модифицировал этот индюк тока с одной целью-более подробно посмотреть сигналы. Если встречаются разнонаправленные, то на РОДНОМ индюке они всегда отображаются красной линией. Я не говорю что индюк плохой или глючный, замечательный индюк. Просто чтобы начинающему пользователю понять почему пропускаются сигналы, ему лучше ПОСМОТРЕТЬ, а не только ПОЧИТАТЬ.
 
Stepan241:
Я модифицировал этот индюк тока с одной целью-более подробно посмотреть сигналы. Если встречаются разнонаправленные, то на РОДНОМ индюке они всегда отображаются красной линией. Я не говорю что индюк плохой или глючный, замечательный индюк. Просто чтобы начинающему пользователю понять почему пропускаются сигналы, ему лучше ПОСМОТРЕТЬ, а не только ПОЧИТАТЬ.
"Смотреть" нужно в личке, а не вываливать ломанные индикаторы на форум официального сайта ...
 
artmedia70:

Корректировка digits под йену нужна если вы работаете с ней и символ ордера содержит в себе JPY. Не парьтесь - ф-ция это за вас всё сделает. А размещать её нужно, как и любые функции за пределами тела советника. А вызывать её из советника так:



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

 

Как получить из всей истории профит/лосс десяти последних ордерев?

 
DhP:

Как получить из всей истории профит/лосс десяти последних ордерев?


возьми калькулятор,посчитай)))

.

.

.

.

.

мне недавно показали код последнего закрытого ордера,попробуй, может у тебя получиться

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);                                          // Возвращаем "Ложь"
}
 
кто под скажет естли  такой скрипт или советчик каторый пакупает несколько ордеров,и продает под +прыбыль все ордера...поскажите кто знает пожалуйста
 

Уважаемые Форумчане. Кто подскажет, как правильно записать условие"чтобы рыночный ордер buy открылся ниже цены открытия предидущего рыночного ордера buy?

 
fanat:

Уважаемые Форумчане. Кто подскажет, как правильно записать условие"чтобы рыночный ордер buy открылся ниже цены открытия предидущего рыночного ордера buy?

Пару страниц назад выкладывал процедуру, которая ищет в истории последнюю сделку по указанному символу и возвращает ее профит. Взяв за основу этот код ты сможешь возвращать не профит последней сделки, а например цену открытия или закрытия последней сделки.....или любые другие данные.