Ошибки, баги, вопросы - страница 2005

 

Почему при точной шкале времени в ряде случаев нельзя вручную переместить Vertical Line на желаемое положение - съезжает

Последовательность действий:

  1. Установить обычную шкалу времени
  2. Создать окно графика EURGBP, M15
  3. Установить точную шкалу времени
  4. Увеличить масшаб
  5. Создать вертикальную линию где то справа
  6. Переместить ее влево при помощи мыши на 2017.09.15 15:45

В результате линия смещается на другую дату как показано на рисунке. С другими объектами - примагничивание происходит к каким-то невидимым и непонятным точкам - вручную вообще не смог произвести нужных построений

Настройки платформы - Начало работы - Справка по MetaTrader 5
Настройки платформы - Начало работы - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая платформа обладает множеством настроек, что позволяет организовать работу в ней так, как это удобно именно вам. Выполните команду...
 

Как запретить стилизатору создавать такие конструкции:

      //+------------------------------------------------------------------+
      //|                                                                  |
      //+------------------------------------------------------------------+

Подобная конструкция с описанием удобна мне для описания функции.

Однако, я привык пропускать строки и делать логические разрывы, к примеру тут вместо конструкции для комментария ничего мне ставить не надо:

      if(Variant_Contra==6)
        {
         double TP_Lot;
         int SL_Prognoz_Point=1000; //Убыток через Х пунктов
         double TP_Prognoz=0;       //Прогнозируемый тейк профит
         double V_Bezubitok=0;      //Объем позиции для безубытка
         double V_Open=0;           //Текущий объем позиции A
         double V_OpenC=0;          //Текущий объем позиции C
         double strLotA=0;          //Средняя цена позиций A
         double strLotC=0;          //Средняя цена позиций C
         int Open_one=0;            //Бар, на котором был открыт первый ордер
         double MinPrice=0;         //Минимальная цена с начала открытия первого ордера
         double MaxPrice=0;         //Максимальная цена с начала открытия первого ордера
         double V_Close=0;          //Объем позиции, который нужно закрыть что б получился безубыток при закрытии по SL
         lotCalc=0;                 //Обнуляем расчетный объем
         StopLoss=0;                //Обнуляем стоп лосс 
         //+------------------------------------------------------------------+
         //|                                                                  |
         //+------------------------------------------------------------------+
         if(CountMarketOrder_OB>StartContra)
           {

А конструкция эта пихается, я так понимаю, если есть пропуск строки и круглые скобки Оператор/Функция(...) - вот я бы хотел отключить это безобразие.

 
Vitaly Muzichenko:

Всё познаётся в сравнении. После 64 битной системы, 32 бита просто хлам для работы.

Кто хочет, тот ищет возможность, кто не хочет - причину.

Все здесь сконцентрированы на кодинге, а не на торговле. И в итоге ни одного достойного решения.

 
Aleksey Vyazmikin:

В настройках можно выбрать, какие звуки воспроизводить "Сервис - Настройки- События".

Упс, про веб терминал не знаю.

Спасибо,)

 

Ошибка при компиляции

template<typename T>
void f( T, const T ) {}
class A {};
void OnStart()
{
        const A *a;
        f( a, a ); //error: 'a' - cannot convert from const pointer to nonconst pointer
}

и здесь же

template<typename T>
void f( T const ) {}
class A {};
void OnStart()
{
        A *a;
        f( a ); //error: 'f' - cannot to apply function template
}
 
A100:

Ошибка при компиляции

и здесь же

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

Так и не разобрался в однозначности, как воспринимает MQL шаблон-типы. То тип воспринимает, как указатель на класс, то, как сам класс.

 
fxsaber:

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

Вообще я шаблоны использую редко - в детали не вдавался - могу объяснить только на интуитивном уровне

Во 2-ом случае прямая замена T на A* компилируется нормально - значит и шаблон должен компилироваться

class A {};
void f( A * const ) {}
void OnStart()
{
        A *a;
        f( a ); //нормально
}

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

template<typename T, typename T2>
void f( T, const T2 ) {}
class A {};
void OnStart()
{
        const A *a;
        f( a, a ); //нормально
}
 
A100:

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

Это можно прочувствовать через Print(__FUNCSIG__);

 
Странно как-то выводится значение просадки в таблице оптимизации. Выводится максимальная просадка по средствам (но пишется в процентах). А после одиночного теста выясняется что относительная просадка отличается от максимальной (процент больше или меньше). При использовании мани-менеджмента придется дописывать что-то, чтобы выводились нужные результаты?
 
A100:

Ошибка при компиляции

template<typename T>
void f( T, const T ) {}
class A {};
void OnStart()
{
        A * const a = new A;
        f( a, a ); //error: 'a' - cannot convert from const pointer to nonconst pointer
}
Так компилится, изначальный вариант и не должен.