Примеры: Взаимодействие между MetaTrader 4 и Matlab посредством CSV-файлов - страница 2

 

Вообще конечно удивляет общая тупость статьи .. для тех кому в падлу почитать

такое же писалово на соседнем сайте ...

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

можно и быстрее и компактнее и более эффективно записать в родном

MAT формате ?

Короче все это :

 
Благодарю за статью, поздновато я с ней познакомился. Взаимодействие через CSV файлы не сильно сказывается на производительности компьютера, но значительно позволяет расширить функциональность MQL4. Вдобавок к неочень высокой его производительности. Лично для меня MQL4 это прослойка между сервером и PHPTrader - более функциональным и быстрым решением для финансовой торговли
 
Почему не могу скачать прикрепленные файлы? Жму - выходит белый лист и все!
 
Black_Coffee:
Почему не могу скачать прикрепленные файлы? Жму - выходит белый лист и все!

Сейчас попробуй
 

Встроил Вашу программу в эксперт в отдельную подпрограмму МТ4.

Файл создаётся.. данные пишутся ( как пишет программа советника) но найти этот файл визуально на диске мне не удаётся.

Подскажите где искать этот сохранённый файл.

Я ищу в папке experts/files но папка пуста.

Может быть файлы скрыты для просмотра?

Или он в другой папке:

Искал так же в других папка х.

 

Матлаб 2012а, вин7. ГУЙ рисует график но не создается файл в матлабе, соотв. не рисует в МТ. В матлабе выскакивает это:

Error while evaluating TimerFcn for timer 'timer-1' 

Too many output arguments.

 

ЧТО ДЕЛАТЬ? 


 
digger3d:

Матлаб 2012а, вин7. ГУЙ рисует график но не создается файл в матлабе, соотв. не рисует в МТ. В матлабе выскакивает это:
Error while evaluating TimerFcn for timer 'timer-1'
Too many output arguments.
ЧТО ДЕЛАТЬ?

Попробовать сначала без таймера.
Т.е.  проверить, - работает ли до пункта 4.5 включительно, и создаётся ли файл при нажатии на "Start".
А потом уже разбираться с функцией "timer()" по матлабовскому хелпу.

Я помню, что там некоторая сложность была, связанная с тем, что в функцию, вызываемую таймером передавались лишние аргументы. Т.е. я пишу - только handles-структуру передавать, а в вызываемую функцию передаются ещё какие-то. И пока я в вызываемой функции "checktime()" - не приписал эти входные аргументы (хоть и не использовал их) - функция вызывалась с ошибкой. Вот ваше сообщение об ошибке - похоже на что-то такое.

 
shelandr:

Файл создаётся.. данные пишутся ( как пишет программа советника) но найти этот файл визуально на диске мне не удаётся.
Подскажите где искать этот сохранённый файл.

Матлаб в этом примере - пишет выходной файл туда же, откуда взял входной. Т.е. просто кладёт рядом. Только добавляет "_result" после имени (перед расширением).
Куда пишет и может писать MT4 - лучше посмотреть в документации на MT4, функции FileWrite() и FileOpen(). У меня записывал туда, где Вы искали.
Может попробовать имя файла задавать полное принудительно вместе с расположением. Ну там C:\...
Только надо посмотреть в хелпе на MT4 - можно ли.
 
Dmitriy:

Попробовать сначала без таймера.
Т.е.  проверить, - работает ли до пункта 4.5 включительно, и создаётся ли файл при нажатии на "Start".
А потом уже разбираться с функцией "timer()" по матлабовскому хелпу.

Я помню, что там некоторая сложность была, связанная с тем, что в функцию, вызываемую таймером передавались лишние аргументы. Т.е. я пишу - только handles-структуру передавать, а в вызываемую функцию передаются ещё какие-то. И пока я в вызываемой функции "checktime()" - не приписал эти входные аргументы (хоть и не использовал их) - функция вызывалась с ошибкой. Вот ваше сообщение об ошибке - похоже на что-то такое.


Дмитрий, у меня та же проблема. 

Error while evaluating TimerFcn for timer 'timer-1' 

Too many output arguments.

Могли бы Вы прикрепить работающий код или, сказать что исправить при вызове функции checktime ?

Я нашел в коде по ней 2 строчки и меня как-то не могу понять сам синтаксис передачи аргументов. Что именно надо поравить?

1. handles.t = timer('TimerFcn',{@checktime, handles},'ExecutionMode','fixedRate','Period',1.0,'UserData', 'NONE');

2. function checktime(obj, event, handles)