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

 
Fia:

2) Есть ли функция в MQL5, чтоб удалить из динамического массива i элемент (один из - например в середине массива) ? Если нет, как лучше средствами языка это сделать?

Готовых функций в языке для этого нет, но в Стандартной библиотеке есть Базовый класс объектов CArrayObj
 

Добрый день

Расскажите пожалуйста как интерпретировать график баланса/эквити на этом примере


Почему в одной точке графики сразу расходятся, а сходятся в разное время(на один уровень по "y"). Вроде в момент открытия график баланса не знает что он увеличится.

Или я что то не понимаю.

Спасибо.

 
papaklass:
Ок, Ваша позиция ясна. Действительно, закончим на этой ноте. Спасибо за время, которое потратили, отвечая на мои вопросы.

Я поясню на простом примере.

Одна женщина за девять месяцев может родить ребёнка. Девять женщин за один месяц не родят ни одного ребёнка.

Это к вопросу о возможности обрабатывать одновременно несколько последовательных тиков параллельно в нескольких потоках. Дело в том, что в большинстве случаев результат обработки очередного тика очень сильно влияет на результат обработки следующего тика. Грубо говоря, на 4 потоках вы можете получить одновременно 4 торговые операции, вместо одной на первом тике

 
olyakish:

Добрый день

Расскажите пожалуйста как интерпретировать график баланса/эквити на этом примере


Почему в одной точке графики сразу расходятся, а сходятся в разное время(на один уровень по "y"). Вроде в момент открытия график баланса не знает что он увеличится.

Или я что то не понимаю.

Спасибо.


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

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

 
Rosh:
Готовых функций в языке для этого нет, но в Стандартной библиотеке есть Базовый класс объектов CArrayObj
Благодарю, за ответы!
 
Lazarev:

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

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

>на этом же баре на котором открылась сделка цена пошла вверх и сделка пошла в минус, но не закрылась - образовалась просадка,

просадка по эквити но не по балансу. => баланс должен быть на одной линии (не изменяться)

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

вообще то это одна сделка состоящая из sell in  (открытие позиции на продажу) и buy out (закрытие позиции на продажу )

 
papaklass:

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

Я Вам это только что попытался объяснить. Нельзя последовательные тики обрабатывать параллельно, потому что результат обработки одного тика сказывается на процессе обработки следующего тика.

Где в тестере можно было бы использовать параллельные вычисления? Только на расчёте индикаторов. Пока обрабатывается один тик, высчитываем значения индикаторов на следующем тике (следующих тиках). Сдохнем на синхронизации и диспетчеризации и не получим никакого выигрыша. Мы очень много времени потратили (и тратим до сих пор) на увеличение производительности системы, и озвученную возможность тоже рассматривали.

Параметризация обработчиков событий - это несколько другой вопрос. И мы ещё не отказались от параметризованных событий 

 
Стандартные функции приведения к типу int к Примеру 

double  MathRound(
   double  value      // округляемое значение
   );

Возвращают double ошибки но предупреждения сильно раздражают 

possible loss of data due to type conversion Tester.mqh 192 20

0 error(s), 22 warning(s) 1 23

Есть ли какой метод обхода .Спз

 

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
ivandurak:

Есть ли какой метод обхода .Спз

Приводить типы явно. Тогда предупреждений не будет.

Т.е.

int i = int(MathRound(5.5));
или
int i = (int)MathRound(5.5);
 

papaklass:

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

1. Параметризацию в принципе сделать можно. Правда это накладно для разработчиков и явно не является приоритетом

2. Многопоточность в данной орхитектуре действительно сделать не выйдет. Мало того что это будет накладно по времени и прочим ресурсам, это в виде стандартного решения приведет к кучи проблем у большинства пользователей (которые явно не являются проф. программерами).

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

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