Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1306

 

Нужна помощь в настройки МТ5 .

1. Проблема   В МТ5 я перешел на ДЕМО-счет, но кнопка для размещения ордеров не активна, внизу видно, что нет связи с сервером и тикеры контрактов на 2019 и 2020 загружаются из вашей базы в список, но есть фактических контрактов нет.

 
gorod258:
Нужна помощь в настройки МТ5 с нуля .

https://www.metatrader5.com/ru/terminal/help/startworking/settings

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

Я её предварительно настроил, но почему-то часть функция не работает .

1. Проблема   В МТ5 я перешел на ДЕМО-счет, но кнопка для размещения ордеров не активна, внизу видно, что нет связи с сервером и тикеры контрактов на 2019 и 2020 загружаются из вашей базы в список, но есть фактических контрактов нет.

Вы могли бы помочь ?

 
SanAlex:

честно!? - без понятия! - так, чем не будь занять себя с утра.

Ну он и так все удалит, без условий) 

 
Привет!!!   Подскажите а в методы классов как передавать тип данных перечисления?  Допустим я хочу передать таймфрейм.   Создаю в шапке советника перечисления 
   enum frame1 // перечисление именованных констант
     {
      PERIOD_M1,
      PERIOD_M5,
      PERIOD_M15,
      PERIOD_M30,
      PERIOD_H1,
      PERIOD_H4,
      PERIOD_D1,
      PERIOD_W1,
      PERIOD_MN1
     };


Далее, декларирую метод в классе.
public:
                     Signal_Line();
                    ~Signal_Line();
   double               Time_Frame(double &Trend_Line_Down[][], int Frame, int Down);

   int               Short_Proboy(double &Trend_Line_Down[][], string Name_Static, int Down, ENUM_TIMEFRAMES);
И при вызове метода из советника если мне нужно передать из перечисления -  frame  третье значение -  PERIOD_M30  что вписать в вопросики кода ниже?
         Trend_Line_Down[Timer_Down][1]=Signal.Short_Proboy(Trend_Line_Down, Name_Static, ???);     // Флаг пробоя трендовой нулевой свечой
 
Если подумать то вроде как напрашивается написать туда 
 Trend_Line_Down[Timer_Down][1]=Signal.Short_Proboy(Trend_Line_Down, Name_Static, frame1 3);     // Флаг пробоя трендовой нулевой свечой

  но пишет при компиляции ошибку. В чём подвох может быть?

 
Kira27:
Привет!!!   Подскажите а в методы классов как передавать тип данных перечисления?  Допустим я хочу передать таймфрейм.   Создаю в шапке советника перечисления 
Далее, декларирую метод в классе.
И при вызове метода из советника если мне нужно передать из перечисления -  frame  третье значение -  PERIOD_M30  что вписать в вопросики кода ниже?

Вопрос 1: ЗАЧЕМ создавать своё перечисление, если есть стандартное ENUM_TIMEFRAMES

 

Вопрос по поводу стоимости тика.

Для какого размера контракта (размера лота) эта стоимость считается?

Например, данный скрипт для валютной пары EURUSD выдает значения, которые совпадают, а вот для металлов разница в 10 раз. Откуда, почему, как узнать?

int OnStart()
  {
//---
    // цена тика для символа
    double symb_tick_price = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
    // рассчитаная цена символа (для Forex, CFD - формула из справки)
    // Profit  = (close_price - open_price) * Contract_Size * Lots
    // т.е. берем размер тика и считаем по этой формуле
    // -> TickPrice  = TickSize * Contract_Size * Lots
    double symb_lot_size = 1.0;
    double symb_tick_size = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
    double symb_contract_size = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE);
    double calc_symb_tick_price = symb_tick_size * symb_contract_size * symb_lot_size;
    PrintFormat("Цена тика SYMBOL_TRADE_TICK_VALUE=%f, Цена тика ВЫЧИСЛЕННАЯ=%f", symb_tick_price, calc_symb_tick_price);
//---
   return(INIT_SUCCEEDED);
  }


NG      0       13:31:42.450    testTickPrice (EURUSD,H1)       Цена тика SYMBOL_TRADE_TICK_VALUE=1.000000, Цена тика ВЫЧИСЛЕННАЯ=1.000000
OE      0       13:31:56.924    testTickPrice (XAGUSD,H1)       Цена тика SYMBOL_TRADE_TICK_VALUE=0.500000, Цена тика ВЫЧИСЛЕННАЯ=5.000000
CE      0       13:40:00.848    testTickPrice (XAUUSD,H1)       Цена тика SYMBOL_TRADE_TICK_VALUE=0.100000, Цена тика ВЫЧИСЛЕННАЯ=1.000000
 
Kira27:
Если подумать то вроде как напрашивается написать туда 

  но пишет при компиляции ошибку. В чём подвох может быть?

Если сделаете такое перечисление

enum frame1 // перечисление именованных констант
 {
  m1  = PERIOD_M1,
  m5  = PERIOD_M5,
  m15 = PERIOD_M15,
  m30 = PERIOD_M30,
  h1  = PERIOD_H1,
  h4  = PERIOD_H4,
  d1  = PERIOD_D1,
  W1  = PERIOD_W1,
  MN1 = PERIOD_MN1
 };

то можно будет попробовать написать так

 Trend_Line_Down[Timer_Down][1]=Signal.Short_Proboy(Trend_Line_Down, Name_Static, (ENUM_TIMEFRAMES)m30);     // Флаг пробоя трендовой нулевой свечой
 
Alexey Viktorov:

Если сделаете такое перечисление

то можно будет попробовать написать так

... а потом через месяц будешь пытаться понять чтобы это значило )))

если писать такой уж код, то хотя бы в int приведите 

enum frame1 // перечисление именованных констант
 {
  m1  = (int)PERIOD_M1,
  m5  = (int)PERIOD_M5,
  m15 = (int)PERIOD_M15,
  m30 = (int)PERIOD_M30,
  h1  = (int)PERIOD_H1,
  h4  = (int)PERIOD_H4,
  d1  = (int)PERIOD_D1,
  W1  = (int)PERIOD_W1,
  MN1 = (int)PERIOD_MN1
 };

так хоть понять можно, что автор получит на выходе

...хотя извращение еще то ))))