Jump to content
Sign in to follow this  
elisseev2000

создание массива из множества значений

Recommended Posts

elisseev2000

а что измениться в годе если перейти с недели на день???????

Share this post


Link to post
Share on other sites
elisseev2000

а что изменится в коде если перейти с недели на день?????????

Share this post


Link to post
Share on other sites
AntFX
а что изменится в коде если перейти с недели на день?????????

 

Главным образом нужно будет убрать "-(DayOfWeek()-1)*86400)" и заменить везде 604800 на 86400. Ну и ещё пропуск выходных добавить... Но это уже Вы сами


1

Share this post


Link to post
Share on other sites
elisseev2000

Доброго здоровья!

Вопрос следующий. Есть индикатор. Пишу новый. Могу ли я экспортировать массив, который считает 1ый индикатор в новый индикатор. Просто лень опять все писать старое в новом.

С Уважением

Олег

Share this post


Link to post
Share on other sites
elisseev2000

mql4 в mql4

Share this post


Link to post
Share on other sites
AntFX
Доброго здоровья!

Вопрос следующий. Есть индикатор. Пишу новый. Могу ли я экспортировать массив, который считает 1ый индикатор в новый индикатор. Просто лень опять все писать старое в новом.

С Уважением

Олег

 

Функция вызова пользовательского индикатора iCustom как раз это и делает


1

Share this post


Link to post
Share on other sites
elisseev2000

Спасибо за ответ. Если в 1ом индикаторе массив всегда меняется в зависимости от цен закрытия, то оба индикатора должны работать параллельно. правильно?

Share this post


Link to post
Share on other sites
elisseev2000

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

Share this post


Link to post
Share on other sites
elisseev2000

Здравствуйте. У меня вин7, запускаю терминал мт4 от одмина. Не записывает в файл код.

for(k=1;k<=145;k++)

 

{

 

ExtMapBuffer2[145-k]=XXXFur000[k][NOM000]+YYFur00[k];

int handle=FileOpen("my_data.csv",FILE_CSV| FILE_READ | FILE_WRITE,';');

FileWrite(handle,"rrrrrrrr" );

FileWriteArray(handle,YYFur00,0,WHOLE_ARRAY);

FileClose(handle);

}

смотрю в папке C:\Program Files (x86)\********** MetaTrader 4 Client Terminal\MQL4\Files

В чем ошибка???

помогите плз

Share this post


Link to post
Share on other sites
elisseev2000

хочу записать массив в файл, чтобы его потом открыть

Share this post


Link to post
Share on other sites
Ugar68
хочу записать массив в файл, чтобы его потом открыть

FileWriteArray

Записывает в файл типа BIN массивы любых типов, кроме строковых

А у тебя csv файл, а не bin.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
elisseev2000

Здравствуйте.

В моем индикаторе используется сильная математика. Много циклов и массивов. Терминал начал подвисать. Думаю написать длл. Вопрос критично ли на каком языке напишу ее. Просто С++ не знаю. Могу весь мат аппарат написать на Visual Fortran. C благодарностью Олег

Share this post


Link to post
Share on other sites
transcendreamer
Здравствуйте.

В моем индикаторе используется сильная математика. Много циклов и массивов. Терминал начал подвисать. Думаю написать длл. Вопрос критично ли на каком языке напишу ее. Просто С++ не знаю. Могу весь мат аппарат написать на Visual Fortran. C благодарностью Олег

 

приветствую!

 

посмотрите, может быть Вам подойдет перенести расчеты в среду R

если это сильная математика - это статистика то может быть подойдет

есть готовая библиотека mt4r

еще есть alglib - библиотека стат.анализа

Share this post


Link to post
Share on other sites
elisseev2000
приветствую!

 

посмотрите, может быть Вам подойдет перенести расчеты в среду R

если это сильная математика - это статистика то может быть подойдет

есть готовая библиотека mt4r

еще есть alglib - библиотека стат.анализа

Спасибо за идею

Share this post


Link to post
Share on other sites
elisseev2000

Здравствуйте!

 

Помогите новичку пожалуйста!

 

Вопрос следующий. я использую iClose() например

 

for (int j=1;j<=121;j++)

 

{

 

ExtMapBuffer1[j1]=iClose(NULL,PERIOD_W1,j1);

 

потом всякая вещь..............

 

.........................................

 

}

 

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

 

Я что-то пытался смотреть в документации про refresh, но не понял. Там вроде не прописывается временной интервал. Это надо т.к. я использую в индикаторе iClose 4 раза для разных таймфреймов и платформа начинает подвисать.

 

Плиз помогите.

 

С Уважением Олег

Share this post


Link to post
Share on other sites
Ugar68

В приведённом примере, цикл и всё что в нём, а значит и iClose(), выполняется с максимальной скоростью, какой может выполнить компьютер. Обычно, интервал не более 10 миллисекунд, около 100 раз в секунду.

Что бы не считать одно и то же многократно используют IndicatorCounted()

Edited by Ugar68

Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
elisseev2000
В приведённом примере, цикл и всё что в нём, а значит и iClose(), выполняется с максимальной скоростью, какой может выполнить компьютер. Обычно, интервал не более 10 миллисекунд, около 100 раз в секунду.

Что бы не считать одно и то же многократно используют IndicatorCounted()

Спасибо за ответ. но мне не нужен последний бар. мне необходимо массив длиной 121 обновлять раз в неделю.

Share this post


Link to post
Share on other sites
elisseev2000
В приведённом примере, цикл и всё что в нём, а значит и iClose(), выполняется с максимальной скоростью, какой может выполнить компьютер. Обычно, интервал не более 10 миллисекунд, около 100 раз в секунду.

Что бы не считать одно и то же многократно используют IndicatorCounted()

Вопрос такой. как часто обновляется массив цен закрытия. могу ли я заставить iClose, чтобы он скачивал цены раз в неделю. хочу оптимизировать прогу. Помагите плз

Share this post


Link to post
Share on other sites
Ugar68
Вопрос такой. как часто обновляется массив цен закрытия. могу ли я заставить iClose, чтобы он скачивал цены раз в неделю. хочу оптимизировать прогу. Помагите плз

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


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
Wowa
Вопрос такой. как часто обновляется массив цен закрытия. могу ли я заставить iClose, чтобы он скачивал цены раз в неделю. хочу оптимизировать прогу. Помагите плз

 

iClose скачивает данные столько раз, сколько ты его вызываешь. Если будешь вызывать раз в неделю, так же будет и скачивать.

Но ты вызываешь его 121 раз на каждом баре. Прислушайся к совету Ugar68 и вызывай его хотя бы один раз вместо 121. Будет работать в 121 раз быстрее. Если, конечно, тебе не надо перерисовывать индикатор.

 

Если надо, считывай в массив периодически и работай с этим массивом


Мы сами знаем, что проблема не имеет решения. Мы хотим знать, как ее решать. (с) К. Хунта

Share this post


Link to post
Share on other sites
Vlad Minkov
Здравствуйте.

В моем индикаторе используется сильная математика. Много циклов и массивов. Терминал начал подвисать. Думаю написать длл. Вопрос критично ли на каком языке напишу ее. Просто С++ не знаю. Могу весь мат аппарат написать на Visual Fortran. C благодарностью Олег

На языке R всё это решается в две строчки. Переходите на этот язык, не пожалеете.

Успехов


Постоянны только перемены!

Share this post


Link to post
Share on other sites
Vlad Minkov
Здравствуйте!

 

Помогите новичку пожалуйста!

 

Вопрос следующий. я использую iClose() например

 

for (int j=1;j<=121;j++)

 

{

 

ExtMapBuffer1[j1]=iClose(NULL,PERIOD_W1,j1);

 

потом всякая вещь..............

 

.........................................

 

}

 

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

 

Я что-то пытался смотреть в документации про refresh, но не понял. Там вроде не прописывается временной интервал. Это надо т.к. я использую в индикаторе iClose 4 раза для разных таймфреймов и платформа начинает подвисать.

 

Плиз помогите.

 

С Уважением Олег

 

Просто напиши

if(LastTime!=iTime(NULL,PERIOD_W1,o){

//здесь свой цикл

......

......

LastTime=iTime(NULL,PERIOD_W1,o);

}


Постоянны только перемены!

Share this post


Link to post
Share on other sites
elisseev2000

Здравствуйте! Вопрос такой. Написал индикатор. Он перерисовывает линию каждый час. Мне необходимо сохранять линии, которые были час назад, два часа и три часа назад. Пытаюсь это все сделать через организацию двумерного массива. Ничего не получается. Помогите плз.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×