Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 661

 
Roman Sharanov:

К тому что мне нужно в массиве хранить массивы котировок

Чтобы в цикле один раз выполнить копирование, и потом производить вычисления через ArrayCopy, а не CloseCopy

Конечно каждый волен поступать как ему нравится. Но зачем поэлементно копировать один массив в другой, двумерный и потом работать с этим двумерным массивом? Разве нельзя вместо копирования произвести те самые вычисления?

Или я чего-то не знаю? Разве можно одномерный массив скопировать во второе измерение двумерного массива?
 
Alexey Viktorov:

Конечно каждый волен поступать как ему нравится. Но зачем поэлементно копировать один массив в другой, двумерный и потом работать с этим двумерным массивом? Разве нельзя вместо копирования произвести те самые вычисления?

Или я чего-то не знаю? Разве можно одномерный массив скопировать во второе измерение двумерного массива?

у меня два вложенных цикла, во внешнем CopyClose есть, и во внутреннем

и все они копируют одни и те же символы из массива.

Я хочу перед циклами занести массивы котировок для каждой пары в отдельный 

короче вот так я сделал, обернул double массив currency в структуру, и сделал массив структур

for(int i = 0; i<ACTIVES; i++){
      CopyClose(all_pairs[i], PERIOD_CURRENT, 1, calculation_period, pairs_data[i].currency);
      pairs_data[i].pair = all_pairs[i];
   }
for(int i = 0; i < ACTIVES-1; i++){
	ArrayCopy(first_data, pairs_data[i].currency, 0,0,WHOLE_ARRAY);
	//работа с firstData
	...
      
	for(int k = i+1; k < ACTIVES; k++){
		ArrayCopy(second_data, pairs_data[i].currency, 0,0,WHOLE_ARRAY);
         	//Работа с secondData
         	...
      }
   }
 

Друзья, не могу спокойно спать так и не решив данный вопрос уже какое то время:

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

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

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


 
Roman Sharanov:

разница средних по close не равна средней по разнице close, увы и ах

Ну, это очевидно!

Но если Вы переходите в пространство средних по close, то Вы автоматически находитесь в другом математическом пространстве.

То есть, Вы выполняете интегральное преобразование скользящих средних, и осознанно(!!! В Вашем случае, как я понимаю, не вполне)  уходите из пространства котировок (по Сlose, в Вашем случае).

То есть, Вы сознательно отказываетесь от котировок (Close), а уходите в (интегральное) пространство скользящих средних.

Никто Вас не заставляет это делать. Это Вы делаете сами, по своему собственному желанию и вполне осознанно. (!?)

Но!!! В этом новом (интегральном) пространстве и работать следует  с разницами по средним, а не по котировкам.

Разница по котировкам в (интегральном) пространстве средних не имеет смысла!!!

И средняя разницы по котировкам в интегральном пространстве средних  - тоже не имеет смысла !!!

Надеюсь, эти простые математические истины Вам понятны. (!?)

------------------------------------------------------------------------------------------------

А получается у Вас так, что Вы, вроде как, переходите в пространство средних. И, при этом, продолжаете рассматривать среднюю разницу по close.

Это что за чудо математики???

-------------------------------------------------------------------------------------------------------

Нельзя быть одной ногой в лодке, а одной на берегу - и при этом плыть по морю.

 
Alexey Viktorov:

Конечно каждый волен поступать как ему нравится. Но зачем поэлементно копировать один массив в другой, двумерный и потом работать с этим двумерным массивом? Разве нельзя вместо копирования произвести те самые вычисления?

Или я чего-то не знаю? Разве можно одномерный массив скопировать во второе измерение двумерного массива?

Вероятно,  Вы чего-то не понимаете.

Вычисления в исходных массивах данных запрещены по определению.

Чтобы проводить вычисления, следует скопировать исходный массив данных в новый массив, и после этого проводить с этим новым массивом вычисления.

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

----------------------------------------------------------------------------------------------------------------------------------

Если же мы используем для вычислений исходный массив, то любая ошибка становится фатальной.

--------------------------------------------------------------------------------------------------------------------------------------------

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

Например, в первый массив  записываем "цвет котировок", а во второй - сами котировки.

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

------------------------------------------------------------------------------------------------------------------------------------------------

Кстати, аналогичную "цветовую градацию" полезно иметь и на самом графике (а не просто однотонный фон!).

А можно просто сбоку сделать "цветовую линейку". Очень полезно иметь такое при трейдинге.

 
Сергей Николаев:


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

отслеживайте это событие в таймере и обновляйте свой индикатор

 
neverness:

Вероятно,  Вы чего-то не понимаете.

Вычисления в исходных массивах данных запрещены по определению.

И правда... такую ахинею как вы пишете совсем невозможно понять...

В каких исходных массивах??? И кто запретил???

Всё остальное, трудно не только понять смысл, даже понять к чему всё написанное относится невозможно...

 
Alexey Viktorov:

И правда... такую ахинею как вы пишете совсем невозможно понять...

В каких исходных массивах??? И кто запретил???

Всё остальное, трудно не только понять смысл, даже понять к чему всё написанное относится невозможно...

Тренируйтесь понимать "ахинею", а не себя самого.

Еще раз повторяю, в программировании исходные данные не корректируются, и не изменяются ни при каких условиях.

Именно поэтому эти данные идут только "в режиме чтения - ONLY READ".

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

И именно поэтому в С++Builder есть процедура копирования данных в блок Мemo, которая сама определяет размер требуемого массива для копирования.

Кстати, в MT4/MT5 это тоже присутствует. Разработчики MT4/MT5 молодцы - об этом позаботились.

 
neverness:

Очередная ахинея не имеющая не только отношения к обсуждаемой теме, но и не имеющая никакого смысла вообще.

 
Alexey Viktorov:

Очередная ахинея не имеющая не только отношения к обсуждаемой теме, но и не имеющая никакого смысла вообще.

Не расстраивайтесь. Это нормально. Не понимаете - и ладно. Ничего страшного.