Ни для кого не секрет, что в интернете статей про торговлю на рынке форекс очень много, но в основном это 5% по настоящему стоящей информации в зоне RU. Все остальное или размноженно и выложено на тысячах сайтов, либо на английском (пол беды), либо реклама. На мой взгляд planetaexcel.ru самый авторитетный ресурс посвященный Excel, за что огромное спасибо Николаю и всем участникам этого замечательного сайта. Думаю найдется не один человек интересующийся валютными операциями и в частности связкой Excel с разнообразными торговыми платформами и базами данных. В связи с этим прошу выделить отдельную ветку на форуме посвященную связке Excel c торговыми платформами, и созданию разнообразных вспомогательных программ средствами Excel.
А теперь перейду к одной из проблем в которой прошу помощи советом.
Задача: Создание тиковой истории котировок с возможность выбора нужного тайм фрейма.
Лист Quotes получает динамические данные от терминала
На листе EURUSD, записываются любые изменения на листе Quotes в таком виде:
Нужно: 1. Чтоб на листе Timeframes формировался список всех строк найденых на листе EURUSD по заданному таймфрейму. 2. Значения столюцов Open и Close автоматически заполнялись по следующему условию: Open - первая секунда новой минуты, Close - последняя ( значения 00:00:01 может не найтись, по этому нужно найти первое и последнее значение в пределах каждой минуты)
Например, нужный таймфрейм 1 минута. Функция должна найти все значения в пределах каждой минуты, найти максимальное и минимальное значение BID в пределах каждой минумы и записать соответственно в поля High и Low, найти первое и последнее значение каждой минуты и соответственно записать в поля Open и Close значения ячейки Bid
Дело усложняется тем, что функция должна искать в динамической среде.
Извините конечно, может ктото и занимается изучением Excel для развлечения и в целях самообразования, но согласитесь, таких очень мало. Excel офисная програма, а в офисах работают ))
Всё верно - работают. А некоторые хотят облегчить себе условия этой самой работы - ищут различные способы: формулы, макросы... Кто-то находит в бесплатном разделе, кто-то, если очень нужно, заказывает в платном.
Цитата
Юрий М написал: код следует оформлять соответствующим тегом. Ищите такую кнопку и исправьте своё сообщение.
Юрий М написал: Всё верно - работают. А некоторые хотят облегчить себе условия этой самой работы - ищут различные способы: формулы, макросы... Кто-то находит в бесплатном разделе, кто-то, если очень нужно, заказывает в платном.
У меня не обширные познания в Excel но мне кажется тут можно обойтись несколькими строчками кода. Да и если бы была возможность заплатить без сомнений заплатил бы. 95% занимающихся форекс проигрывают ))
Darky написал: но мне кажется тут можно обойтись несколькими строчками кода.
Ну-ну,глубоко ошибаетесь. Подсказка.читаете файл истории и получаете динамику,можете рассчитать любой таймфрейм. Файлы истории структурированы и читаются блоками.
Doober написал: Подсказка.читаете файл истории и получаете динамику,можете рассчитать любой таймфрейм. Файлы истории структурированы и читаются блоками.
Darky написал: Никогда бы не подумал, что для написания кода нужно предварительно рассказать всю свою жизнь в подробностях
Я подробности всей жизни не просил: только хотел узнать принадлежность к одной из групп )) Объясню почему: если Вы из 95%, то нет смысла автоматизировать вообще. Если из 5% (те, что успешные), то Вы на этом зарабатываете. Понятно о чём я? ))
Darky написал: Никогда бы не подумал, что для написания кода нужно
Так напишите, кто не дает? Но Вам учиться влом, охота сразу зарабатывать. И денег жалко. А здесь не стол халявных заказов, мы тут помогаем именно учиться. P.S. Зачем Вы все подряд цитируете?
Я большую часть своей жизни учусь. И мне не в лом учиться. Вот только вижу вы сидите в разделе бесплатном ) вам кажется в платный стоит заглянуть. Без обид.
просто функция вам сильно много должна... да и пост #15 вы не упускайте из виду...
Цитата
Darky написал: Функция должна найти все значения в пределах каждой минуты, найти максимальное и минимальное значение BID в пределах каждой минумы и записать соответственно в поля High и Low, найти первое и последнее значение каждой минуты и соответственно записать в поля Open и Close значения ячейки Bid
действительно, ещё ни одной строчки (попытки) кода с вашей стороны... составьте алгоритм, как ей это делать... и по-тиху пишите её - конкретные вопросы xl-ного характера задавайте - здесь много людей, которые могут помочь, но не сделать всё за вас...
Цитата
Darky написал: Я большую часть своей жизни учусь. И мне не в лом учиться.
+ ... Поиском (вверху страницы) можно воспользоваться (DDE) - подобного рода задачи решались не раз - пусть не биды/аски считали, но много идей по форуму об отборе той или иной инфо из массива данных, из словаря, из коллекции... из чего угодно... - можно прикручивать для обработки данных, приходящих по DDE... P.S. Выборка из динамически обновляемого списка Событие для ячееек с DDE-запросом
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Юрий М написал: если Вы из 95%, то нет смысла автоматизировать вообще. Если из 5% (те, что успешные), то Вы на этом зарабатываете.
Юрий М, не факт... если человек ещё только изучает рынок, знакомится с ним... автоматизировать расчёты, чтобы понаблюдать выводы может и надо... даже если до заработка, как до Луны, и не понятно в том ли направлении и на каких потерях по ходу и дойдёт ли и когда... но успехов ему и светлых идей, а не готовых кодов, т.к. мало ли, что ещё потом захочет... а всё ещё не будет уметь делать сам ... ТС, вы, главное - начните ... не усложнять себе жизнь (19 постов ждать)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
кстати, может и MT не надо эксплуатировать через DDE... примеры кодов Web Services For Financial Datahttp://investexcel.net/financial-web-services-kb/ - (и другие по данной тематике на данном ресурсе) в любом случае:
Цитата
Darky написал: Задача: Создание тиковой истории котировок с возможность выбора нужного тайм фрейма.
- очень комплексная... конкретика ваших затруднений не понятна...
2.6. Один вопрос - одна тема. Не следует в открываемой теме обозначать и задавать сразу несколько вопросов. 2.7. Если вам нужен не совет по самостоятельному решению задачи, а чтобы все сделали за вас - добро пожаловать в ветку Работа. Там, скорее всего, найдутся специалисты, которые разберутся с вашей проблемой быстро, качественно и за разумную плату.
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
JeyCi, Большое спасибо за советы и ссылки, Я наверное неправильно создал тему. Я никогда в жизни не создавал темы ) это первая, так как все что я делал до того мог сделать сам или находил в интернете. Идея была чтоб вместе создали такую полезную штуку, и всем кому надо могли пользоваться, Я не хотел готового решения. Дело в том что я очень слабо знаком с VBA.
Через DDE файл получает данные от моего брокера с МТ4, но функций которые можно передать по этому протоколу очень мало. Есть идея, когда будет чтото дельное выложу. Еще раз большое человеческое спасибо.
Darky написал: Идея была чтоб вместе создали такую полезную штуку
Скрытый текст
... очень бесполезную... если вы хотите торговать, то вся эта инфо есть в терминале (в достаточном виде)... её надо просто уметь читать - биды/аски, и !объёмы... биды/аски в МТ кривые... если нужны - ищите footprint (например, marketdelta.com - удовольствие не бесплатное - подписка больше 100 баксов в месяц; или NOFT - NinjaTraderOrderFlowTools)... да и мало ли где ещё (кластерный график http://clusterdelta.com/volume#getchart)... да и бесперспективно цены спота просчитывать в excel - НИКОМУ не надо... сначала разберитесь, что в трейдинге важно, что есть что, что для чего и поймёте, что куча специализированного софта уже работает - надо просто учиться им пользоваться (читать поток ордеров, а не историю раскладывать в xl - на истории останетесь в 95%)... НО это тематика др. форумов, да и понимать надо фьючерс, а не котировку, и участников фьючерсного рынка - там заведомо более полная картина по торгам... и xl тут не при чём, и уж тем более МТ4 разбирать по костям нет смысла, если не определились для чего оно вам... в теме не участвую, тема др. форума... но продублирую совет от Юрий М: когда автоматизируете - прежде задайтесь вопросом Зачем... автоматизируют для выполнения каждодневной рутинной работы... вам это каждый день надо будет?? (смотреть на биды/аски в xl)... задайтесь вопросом: какая вам от них польза уже сейчас?.. и может уже завтра они для вас окажутся лишь цифрами, которые нужны не в xl, а краем глаза глянуть в торговом терминале (см. Time&Sales в терминалах, предназначенных для торговли фьючерсов (или футпринт - ссылки дала)... спот котировки и фьючерсные ходят друг за другом... изучайте объёмы - см. как торгует биржа (а не спот)... идеи могут поменяться... ()
- торговать, котировки прошлого в настоящем вы всё равно не сможете, чтобы попасть в 5%... см. специализированные форумы по трейдингу
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
JeyCi, Есть стратегия. Фильтрация динамического списка нужна для подачи сигнала. C++ не владею иначе сделал бы прямо в МТ. Плюс хочу использовать для разработки дальнейших наработок. Макрос в теме записывает все изменения на листе, которые приходят по DDE. Мне только нужен способ фильтрации всего массива по определенным критериям. К примеру фильтрация массива по маске, Тип того.
Попробую выложить логику в словах... если получится ), а знающие люди может напишут языком VB. И так: Если значение в ячейка A1 = "М1" то проверить первую ячейку с временем по маске HH:MM:SS, подождать пака изменится значение **:MM:** и записать на листе к примеру "M1" значение всей строки Если запись есть тобиш строчка не пустая начать отслеживать MAX и MIN значений BID При появлении следующей записи (значение ММ снова изменилось) записать в соответствующие ячейки отслеженные значения MAX и MIN и продолжить по новой
нерационально... имхо... постоянно сканить на min/max - они постоянно могут меняться... да и оперативная память будет пахать, как сумасшедшая при большой волатильности - помнить *mm* да ещё и разбираться min/max на КАЖДОЙ записи... (а она может понадобиться ещё для каких приложений)... лучше: при появлении каждой новой *mm* кидать её строку куда надо и брать её саму в переменную и сравнивать с ней каждую новую запись... как только сменилась *mm* - найти min/maх в записях за уже закрытую минуту - и выставить, например, их куда надо... всё равно не может быть нормальных торговых условий, если каждая новая минута будет появляться с интервалом в 5 мин - это низколиквидный рынок - его торговать нет смысла (не заработаете, если цена будет стоять колом)... на нормальном рынке смена минут не заставит себя долго ждать... p.s. с dde не работала, да и времени нет, да и MT4 не у всех есть для подобных экспериментов... разбирайтесь по порядку: 1) как увидеть новую строку, пришедшую по dde 2) сравнить с вашей *mm* 3) записать в первую или (далее) следующую после последней заполненной строки 4) начать собирать массив/коллекцию (можно по ходу) 5) как только, т.е. "если" не совпадает *mm*, то 6) достать из массива min и max 7) новую строку с новой *mm* кинуть куда надо... запомнить в переменную *mm*... и собирать новый массив... чтобы потом из него снова выбирать min/max... вобщем, запихнуть все действия в цикл... как вариант алгоритма (но все незнакомые темы в рамках него - придётся ковырять на форуме, если не хотите в раздел Работа - а хотите сделать сами)... успехов...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)