МТ4 Ошибки, Баги, Вопросы - страница 3

 
Yurixx:

Как заставить MetaEditor помнить свою конфигурацию ?

Каждый раз при  открытии приходится руками восстанавливать панель инструментов, статусную строку и окно навигатора.

Хотя открытые в нем файлы он запоминает нормально.

Тоже акте иногда бывает. Когда захожу в второй профиль ос а потом обратно. 
 
При запуске терминала, после того, как все графики по очереди сгенерируют первую цепочку событий (OnInit, OnChartEvent и OnCalculate), каждый график генерирует ещё одно событие OnCalculate в связи с подгрузкой новых данных (даже если их нет).
Но это второе событие OnCalculate, сгенерированное на одном графике поступает и на все остальные, затем следующий график подгружает данные и генерирует OnCalculate снова всем графикам.
Это нормальное поведение МТ4?
#property strict
#property indicator_chart_window
int oi = 0, oc = 0, oe = 0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
   oi++;
   Print(" On Init | ", oi);
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   oc++;
   Print(" On Calculate | ", oc);
   return(rates_total);
}
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
{
   oe++;
   Print(" On Chart Event | ", oe);
}
Запуск терминала
 

НЕПРАВИЛЬНАЯ ПЕЧАТЬ СИМВОЛОВ ИЗ ТАБЛИЦЫ СИМВОЛОВ

Почему терминал неправильно печатает символы из таблицы:

Alt-кодСимволAlt-кодСимволAlt-кодСимволAlt-кодСимволAlt-кодСимволAlt-кодСимволAlt-кодСимвол
1ț21§41)61=81Q101e121y
22242*62>82R102f122z
32343+63 ?83S103g123{
42444,64@84T104h124|
52545-65A85U105i125}
62646.66B86V106j126~
72747/67C87W107k127
82848068D88X108l
92949169E89Y109m
103050270F90Z110n
113151371G91[111o
1232<пробел>52472H92\112p
1333 !53573I93]113q
1434"54674J94^114r
1535#55775K95_115s
1636$56876L96`116t
1737 %57977M97a117u
1838&58:78N98b118v
1939'59 ;79O99c119w
2040(60<80P100d120x

Простой пример, если мы хотим напечатать стрелочки "" и "":

//+------------------------------------------------------------------+
//|                                                Print Symbols.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Print("\24", " ", "\25");
   Print("\x2191", " ", "\x2193");      
   Print("\x0018", " ", "\x0019");
  }
//+------------------------------------------------------------------+

То, к сожалению, почему-то стрелочка "вверх" определиться и напечатается, а вот вместо стрелочки "вниз" будет другой символ.

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

Что здесь можно сделать?

 
Вы путаете между собой значение юникод символа в строке (https://unicode-table.com/ru/#control-character).
И отображение этого символа под призмой шрифта на экран. 

Ваша таблица - это отображение определенного шрифта (не помню как называется, что-то типа Wind.....).
 
Добрый день. Кто видел подобное исполнение ордеров? Кто может объяснить?
Файлы:
tda_1.jpg  508 kb
 
Bogun_aleksandr:     Добрый день. Кто видел подобное исполнение ордеров? Кто может объяснить?

Вы имеете ввиду проскальзывание? Видел такой рекорд: проскальзывание при открытии 511

20180808
0    07:14:18.717    pending order buy limit 0.17 EURUSD at 1.15062 sl: 0.00000 tp: 0.00000
0    07:14:18.826    order was opened : #5361 buy limit 0.17 EURUSD at 1.15062 sl: 0.00000 tp: 0.00000

20180810
0    08:17:02.713    order #5361 buy limit 0.17 EURUSD at 1.15062 activated at price 1.14551
 
Bogun_aleksandr:
Добрый день. Кто видел подобное исполнение ордеров? Кто может объяснить?

Открыли селл, цена пошла вверх, переместили ТП. Теперь он в убыточной зоне (но все еще ниже текущей цены).

 
Konstantin Erin:

Вы имеете ввиду проскальзывание? Видел такой рекорд: проскальзывание при открытии 511

20180808
0    07:14:18.717    pending order buy limit 0.17 EURUSD at 1.15062 sl: 0.00000 tp: 0.00000
0    07:14:18.826    order was opened : #5361 buy limit 0.17 EURUSD at 1.15062 sl: 0.00000 tp: 0.00000

20180810
0    08:17:02.713    order #5361 buy limit 0.17 EURUSD at 1.15062 activated at price 1.14551

Это не проскальзывание. Время открытия сделки 14:33. Цена в тот момент 1.13717. Цена открытия сделки - 1.13613. Фактическая цена в момент открытия сделки отличается от цены по которой открылась сделка на 100 пунктов. То есть сделка открылась сразу с убытком в 100 пунктов. Как это вообще возможно?

 
Bogun_aleksandr:

Это не проскальзывание. Время открытия сделки 14:33. Цена в тот момент 1.13717. Цена открытия сделки - 1.13613. Фактическая цена в момент открытия сделки отличается от цены по которой открылась сделка на 100 пунктов. То есть сделка открылась сразу с убытком в 100 пунктов. Как это вообще возможно?


Это называется повышение спреда.

 
Vladislav Andruschenko:


Это называется повышение спреда.

Так рынок спокойный, спред 5 пунктов.

Причина обращения: