Страницы: 1
RSS
Торговый робот в VBA Excel
 
Здравствуйте! Пишу торговый робот в VBA для торговли на бирже. Увидел вот этот http://4robot.ru/trade-robots-and-systems/13-torgovyy-robot-na-forts-analiz-sdelok.html  
Вот и появился вопрос к знатокам excel. Скажите, как часто может осуществляться цикл в экселе?
 
думаю, многое зависит от железа
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Простейший цикл с измерением времени:  
 
Sub bb()  
Dim i&, t!  
t = Timer  
For i = 1 To 10000000  
Next  
Debug.Print 10000000# / (Timer - t)  
End Sub  
 
У меня получается 71 млн в секунду (Pentium M 1.6).  
Сформулируйте вопрос более конкретно.
 
Здравствуйте, цикл может осуществляться так часто насколько позволит сам цикл. В excel нет многопоточности - поэтому все действия робота будут выполняться один за другим. вопрос какие это действия. У меня в роботе идет расчет 8 индикаторов занимает расчет одну минуту. Таймфрейм 4 часа - так что меня такое устраивает. а вот для скальпинга такое не пойдет - надо оттачивать быстроту основного цикла. или упрощать стратегию.
 
У меня результат менялся в зависимости от того, как объявлены переменные:  
(2-ядерный проц AMD Athlon 64 X2 Dual)  
 
   Dim i, t   ' результат: 64 000 000  
   Dim i&, t! ' результат: 106 666 666  
   Dim i&, t  ' результат: 106 666 666  
   Dim i, t!  ' результат: 71 111 111  
 
 
У кого больше?  
Как я понял, от производительности компа тут мало что зависит.
 
80000000    
106666666,666667    
106666666,666667    
71111111,1111111    
 
Процессор помощнее - Intel Pentium E5200 Wolfdale
 
Зависит. В той же последовательности - 4-х яд. А3:  
128000000    
160000000    
160000000    
128000000
Я сам - дурнее всякого примера! ...
 
Тоже 2 ядра: AMD Athlon 64 X2 Dual 1,9 (3600+)  
 
Dim i, t = 45714285  
Dim i&, t! = 71111111  
Dim i&, t = 49230769  
Dim i, t! = 45714285
 
Dim i, t = 37 647 058  
Dim i&, t! = 64 000 000    
Dim i&, t = 71 111 111  
Dim i, t! = 42 666 666  
 
AMD Athlon 2400+ (1 ядро)  
 
Private i, t = 35 555 555  
Private i&, t! = 32 000 000  
Private i&, t! = 49 230 769  
Private i, t! = 37 647 058
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
До кучи  
 
'Static i, t = 30 476 190  
'Static i&, t! = 40 000 000  
'Static i&, t = 42 666 666  
'Static i, t! = 32 000 000  
 
В предыдущем посте забыл добавить: работает на 2.01 ГГц  
 
=73747=
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
По приведенной ссылке обнаружил фразу: "торговый робот AMZ - это разработка Zakharov Studio".  
Так как моя фамилия тоже Захаров, то,  на всякий случай, отпишусь, что там не про меня :-)  
 
Недавно здесь уже была ссылка на тот же ресурс в теме:  
http://www.planetaexcel.ru/forum.php?thread_id=30802  
 
В данной теме же речь идет не просто о возможностях цикла VBA, а об ограничении DDE-канала связи. Другими словами, о максимальном, а также о гарантированном периоде, с которым окно приложения Excel  обменивается сообщениями с операционной системой.  
По некоторым оценкам, предел составляет порядка 700 раз в секунду (зависит от железа и открытых приложений). Но с учетом того, что часть сообщений операционной системы имеют более высокий приоритет, чем сообщения DDE, гарантированным пределом считается 200 раз в секунду, т.е. с интервалом в 5 мс. Это при минимуме окон, в т.ч и скрытых, а также при отсутствии какой-либо обработки в Excel.  
 
Но так как реально все-таки ожидается определенная обработка DDE-данных в Excel, то более скоростным решением будет накопление данных в буфере отдельного приложения с периодическим скачиванием всего буфера в Excel, где период скачивания не фиксированный, а определяется временем обработки данных в Excel.  
 
Максимальную скорость обработки DDE-данных в VBA дает метод SetLinkOnData, примеры кода я когда-то уже приводил.  
 
И на закуску, цитата-ограничитель для любителей быстрой езды и казино :-)  
"Спешим огорчить всех любителей скальпинга и высокочастотной торговли. Такие роботы создаются для обогащения брокерских компаний, ведь у всех скальперов от 50 до 70% прибыли уходит обратно брокеру в виде комиссионных."
 
А полный ексель файла кто может дать? =)
 
на форумах трейдеров могут.  
вот только "дать" - вряд ли.  
"впарить" за неплохие деньги - скорее.  
причем вероятность того, что эта штука окажется полезной и вы с таким чудом программирования не сольёте депозит в первый же месяц - очень невысока.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Ну я находил Ексель пустой для Квик, за 3к. Что то не охото им деньги отстёгивать за набор символов)  
Самому реально такое сделать или лучше не стоит?
 
{quote}{login=artur}{date=11.06.2012 06:44}{thema=}{post}Самому реально такое сделать или лучше не стоит?{/post}{/quote}  
сорри, я в этом вопросе некомпетентен - сам торгую исключительно ручками :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
{quote}{login=artur}{date=11.06.2012 06:44}{thema=}{post}Ну я находил Ексель пустой для Квик, за 3к. Что то не охото им деньги отстёгивать за набор символов)  
Самому реально такое сделать или лучше не стоит?{/post}{/quote}  
 
Можете и сами сделать, если профессионально владете программированием на VBA под Excel (или вообще программированием, неважно на каком языке)  
 
А если вы не разбираетесь в программировании, то выход один - покупать готовую программу (не факт, что эта программа будет работать как надо, и что вообще будет работать),  
или же заказывать разработку такой программы у специалистов.  
(лучше заказать, описав желаемый алгоритм работы исполнителю - тогда вам сделают именно то, что вы хотели)  
 
Надеюсь, вы понимаете, что такие программы, если и существуют, бесплатно в интернете не валяются, - а то давно бы любой школьник мог бы скачать такую программу, и к окончанию института обогатиться, став миллионером...
 
пример quik->dde->excel->txt->quik выложен на пауке. так же в сети есть примеры использования api quik.  
на сайте netinvestor для niapi выложен самый подробный пример робота на vba в excel.    
 
вот тут пример кода http://snipplr.com/view/51366/automated-trading--code-vba-1/  
в аттаче пример его применения для получения котировок c finam.  
 
библиотека индикаторов для тех анализа в excel - ta_lib.xll    
 
есть еще программа SpecMachineNZ которая в качестве торгового сигнала может использовать макрос excel. единственный в макросе нельзя использовать подключаемые библиотеки, то есть если в макросе исп. индикаторы из ta-lib то они расчитываться не будут:( Поэтому отказался от этого варианта.  
 
In My Humble Opinion -  niapi проще для освоения - все уже прописано остается лишь добавить свою ТС.
Страницы: 1
Читают тему
Наверх