[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 565

 
TEXX:

Добрый день.

Модификация ордеров работает частично, помогите разобраться в чём проблема.

Код и лог прилагаю. В логе расписал, что работает, а что нет.....


Наверно из-за этого

        if (OrderOpenPrice()==!LastSellPrice()) sell_sl = 0;
        if (OrderOpenPrice()==LastSellPrice()) sell_sl = last_sell_sl;

Второе условие практически никогда не будет выполняться

 
Vinin:


Наверно из-за этого

Второе условие практически никогда не будет выполняться


а как можно сделать чтобы оно выполнялось?
 
TEXX:

а как можно сделать чтобы оно выполнялось?

Посмотри тему поиском - что - то типа как сравнивать два числа типа double...
 
Roman.:

Посмотри тему поиском - что - то типа как сравнивать два числа типа double...


нормализация цены открытия помогла, но не срабатывает условие на нулевой и ненулевой стоп....

Всем СПАСИБО!!! Разобрался, руки кривые просто, неправильно написал != и из-за этого все проблемы.

 

Не подскажите как узнать общую прибыль от всех открытых ордеров?

УПС: Извиняюсь, французкая болезнь- непошарам..

AccountProfit()

 

Господа знатоки MQL, подскажите, можно ли технически сделать следующее?

- берем 100 (или другое количество) кусочков истории котировок из прошлого - подбираем их по какому-то известному нам принципу;

- моделируем на этих ста кусочках открытие позиции бай и перебираем тейк-профит и стоп-лосс, так, чтобы в сумме был нормальный профит (то есть, делаем подгонку на 100 разрозненных отрезках истории так, чтобы на каждом отрезке сработал только один ордер, то есть в сумме имеем 100 ордеров), затем то же делаем для позиции селл, с перебором тейков и стопов до получения максимума профита;

- открываем реальную сделку - бай или селл с тейком и стопом, подобранными на истории.

И все это в рамках работы советника.

Фишка в том, что подбираем не на одном непрерывном куске истории, а на множестве разрозненных, и так каждый раз после закрытия позиции, перед открытием новой. Я реально задумался как сделать перебор тейков и стопов и в принципе понял как это сделать логически, но не знаю, как технически с помощью средств MQL.

 
alexeymosc:

Господа знатоки MQL, подскажите, можно ли технически сделать следующее?

- берем 100 (или другое количество) кусочков истории котировок из прошлого - подбираем их по какому-то известному нам принципу;

- моделируем на этих ста кусочках открытие позиции бай и перебираем тейк-профит и стоп-лосс, так, чтобы в сумме был нормальный профит (то есть, делаем подгонку на 100 разрозненных отрезках истории так, чтобы на каждом отрезке сработал только один ордер, то есть в сумме имеем 100 ордеров), затем то же делаем для позиции селл, с перебором тейков и стопов до получения максимума профита;

- открываем реальную сделку - бай или селл с тейком и стопом, подобранными на истории.

И все это в рамках работы советника.

Фишка в том, что подбираем не на одном непрерывном куске истории, а на множестве разрозненных, и так каждый раз после закрытия позиции, перед открытием новой. Я реально задумался как сделать перебор тейков и стопов и в принципе понял как это сделать логически, но не знаю, как технически с помощью средств MQL.

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

Спасибо.

//-----
  static bool First = true;
  static int PreOrdersTotal = 0;
  int NowOrdersTotal = CountTrades();
  if(First)
  {
    PreOrdersTotal = NowOrdersTotal;
    First = false;
    return(0);
  }
  if(UseSound == true && NowOrdersTotal < PreOrdersTotal) {PlaySound(CloseSound);}
  PreOrdersTotal = NowOrdersTotal;
//-----

 
rustein:
В советнике нужен звуковой сигнал при закрытие всех ордеров, помогите исправить этот или дайте другой рабочий вариант.

Спасибо.


Как же Вам помочь, если

- не известно, что возвращает функция CountTrades();

- не известно, что содержит переменная CloseSound;

- не известно, существует ли файл, имя которого (теоретически) содержится в CloseSound.

 
rustein:
В советнике нужен звуковой сигнал при закрытие всех ордеров, помогите исправить этот или дайте другой рабочий вариант.

Спасибо.


if (OrdersTotal() == 0) {
  if (UseSound)  {
     PlaySound(CloseSound);
   }
   UseSound = false;
} else {
   UseSound = true;
}
Причина обращения: