[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 237

 
Dima.A.:

Урежьте файл, мне достаточно пары строк в нем..

Правильно ли я понимаю,что для  mql 4   имеет значение каким образом инициализируется массив. Т.е. так как это делал я , - делать нельзя?

ФАЙЛ ПРИКРЕПИЛ

Файлы:
vytxcfq.txt  61 kb
 

т.е. Вы хотите чтобы процедура инициализация выглядела следующим образом: экспорт из МТ цен, затем импорт этих цен обратно в МТ (допустим советник) и инициализация массива ?

А сразу нельзя массивы инициализировать по заданному алгоритму, не гоняя данные через файл ? Или я что-то пропустил..

 
solnce600:

Разбивал единый столбец со всеми данными по столбцам.В столбце в ценами открытия ставил после каждого значения запятую - транспонировал в строку - сортировал - и вставлял в редактор,т.е. во включаемые файл mqh.


Совершенно тривиальный случай. Макросом конечно, потом горячую клавишу ему назначьте да и всё.

DDE подключается в сервис - настройки - сервер - подключить DDE сервер, потом смотрите образовавшийся DDE-Sample.xls в корневом каталоге терминала. Лодырь (IDLoader) смотрите в музее форекс-клуба. Это локальный поставщик данных (winros.exe), вот не помню, кажется Финама. Формат метастоковский, гуглите "описание файлов F?.dat". У меня сейчас Ворд не установлен, так бы я глянул накидал макрос. Там смысл макроса такой, если вдруг надо: разбираете файл как единую строку на несколько строк, содержащая блоки по 4 байта, в блоках по порядку содержатся: дата, время, open, high, low, close, volume и open interest, а дальше ascii-коды символов блоках переводите в десятеричные и форматируете по смыслу данных в блоке. Редактор VBA (Visual Basic for Applications) вшит и в Ворд и в Эксель, на VBA записываются действия пользователя. Дальше так же - открывается в Ворде, конвертируется и в Эксель. Лодырь поставляет данные в реальном времени.

Метасток - это терминал от компании, близкой к Ройтерс, но поставщик данных у них подписка платная, поэтому народ выкручивается. Если для самообразования, то советую старый седьмой метасток, посмотрите на форуме КБ Паук. 

 
Dima.A.:

т.е. Вы хотите чтобы процедура инициализация выглядела следующим образом: экспорт из МТ цен, затем импорт этих цен обратно в МТ (допустим советник) и инициализация массива ?

А сразу нельзя массивы инициализировать по заданному алгоритму, не гоняя данные через файл ? Или я что-то пропустил..


Datetime и close? В программе, конечно, циклом.

solnce600:

Т.е. так как это делал я , - делать нельзя?

))) Это мазохизм))) 

 
Dima.A.:

т.е. Вы хотите чтобы процедура инициализация выглядела следующим образом: экспорт из МТ цен, затем импорт этих цен обратно в МТ (допустим советник) и инициализация массива ?

А сразу нельзя массивы инициализировать по заданному алгоритму, не гоняя данные через файл ? Или я что-то пропустил..

Я  выбирал эти цены пока  вручную.Пока просто хочу проверить закономерность,которую я ,как мне кажется ,обнаружил.Если все будет ОК -

в дальнейшем нужно будет придумывать код ,который сразу нужные мне цены+время открытия бара будет помещать в массивы, а затем - добавлять к имеющимся значениям массива N 1 (цена открытия свечи) и массива N 2 (время открытия именно этой же свечи )

Только мне нужно что бы каждая цена(это цена открытия бара) соответствовала своему значению времени открытия бара.В файле они стоят рядом друг с другом.

Т.е. если у первого элемента массива значение 1.03745 - то у первого элемента второго массива должно быть значение 06.01.2000 15:00. и такое соответствие должно быть по всем элементам

двух массивов.

 
alega:

Здравствуйте! подскажите в какой папке и с каким расширением хранятся глобальные переменные?


MT4\profiles\gvariables.dat


Можно ли копировать папку с глобальными переменными в другой терминал?

а почему нельзя? копируйте.
 

solnce600, два варианта: скриптом

for (i=0; i<3000; i++){

d = GlobalVariableSet(TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES), Close[0]);

Тогда массив будет виден во всём терминале, или просто выставлять Bars=3000 и Close[i], i=0..Bars-1. Но в вашу задачу я конечно не вникал, смотрите по себе.

 

Есть ли такая программа для переноса глобальных переменных из оного термина в другой? Спасибо.

Мне нужно перенести с демо терминала на реал терминал значение глобальной переменной 0 или 1. Возможно ли это и как?
 
gyfto:

solnce600, два варианта: скриптом

for (i=0; i<3000; i++){

d = GlobalVariableSet(TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES), Close[0]);

Тогда массив будет виден во всём терминале, или просто выставлять Bars=3000 и Close[i], i=0..Bars-1. Но в вашу задачу я конечно не вникал, смотрите по себе.

Большое спасибо за совет.По поводу мазохизма...... может быть вы думаете,что все запятые я проставлял вручную.....это действительно был бы мазохизм.

Запятые проставлял excel.

 
solnce600:

Я  выбирал эти цены пока  вручную.Пока просто хочу проверить закономерность,которую я ,как мне кажется ,обнаружил.Если все будет ОК -

в дальнейшем нужно будет придумывать код ,который сразу нужные мне цены+время открытия бара будет помещать в массивы, а затем - добавлять к имеющимся значениям массива N 1 (цена открытия свечи) и массива N 2 (время открытия именно этой же свечи )

Только мне нужно что бы каждая цена(это цена открытия бара) соответствовала своему значению времени открытия бара.В файле они стоят рядом друг с другом.

Т.е. если у первого элемента массива значение 1.03745 - то у первого элемента второго массива должно быть значение 06.01.2000 15:00. и такое соответствие должно быть по всем элементам

двух массивов.

А зачем вам два массива? Сделайте один двумерный . Вам же нужно хранить цену и время. Вот и храните их в одном массиве. Это всё и приведёт к соответствию. Не нужно будет сопоставлять два разных массива. Просто: Первое измерение - время, второе измерение - цена. По времени можно сортировать.
Причина обращения: