Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Биржевой робот 
:(
    Опции темы
neic
Дата 22.9.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Хочу создать биржевого робота. С чего начать?

Ни чего не знаю о торговле, разве только купил дёшево, продал дорого.
PM MAIL WWW ICQ Skype   Вверх
Bitter
Дата 22.9.2009, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 4
Всего: 27



Ну начни с изучения этой самой торговли ))))) Хотя бы форекс. Потом, проанализировав как всё происходит, попробуй написать программу, которая умеет просто принимать данные биржевые. Если получится, можно уже думать как их обрабатывать. Как вариант - нейросети.
PM MAIL ICQ Skype   Вверх
7maze
Дата 22.9.2009, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.9.2009

Репутация: нет
Всего: нет



2 neic

Для начала принимай данные, а потом обрабатывай любым математическим методом (математический анализ), коих описано в инете - тысячи. Или заложи определения фигур (а-ля японские свечи). Короче сначала данные - а потом обработка.

Лет 5 назад писал такого робота под metatrader на демо выигрывал, на реальном безбожно слил. Баловство одно это одно
PM MAIL   Вверх
neic
Дата 22.9.2009, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Bitter
7maze
Как считать данные? Можете привести пример?
PM MAIL WWW ICQ Skype   Вверх
Dims
Дата 24.9.2009, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Найди программы для Форекса. Там есть либо фриварные варианты, либо демки. И там всё объяснено и разъяснено. 

Правда, роботов, наверное, там не будет, но будут:

1) Стандартные способы представления данных -- разберёшься с предметной областью
2) Стандартные измерительные шаблоны, которые помогают человеку делать прогноз -- разберёшься, как обычно анализируют происходящии
PM MAIL   Вверх
SoWa
Дата 24.9.2009, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Внесу свое мнение: робот получится тупой как дрова.
Человека в торговле не заменит ничто. Анализ- это только анализ, он 100% гарантии не дает, что сейчас тренд пойдет падать, допустим. А все современные индикаторы всегда чуток запаздывают ко времени тренда.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
motorway
Дата 26.9.2009, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



off. Могу еще сказать, что с Форексом лучше не связываться - есть много статей, что это лохотрон. Так что реально если проверять на бирже такие вещи, то лучше в более безопасных местах. Просто вы начнете думать, что вот Форекс, хорошая штука, скоро зарабатывать начну - а там полно всяких нечестных способов бывает, так что анализ может просто провалиться.

Это сообщение отредактировал(а) motorway - 26.9.2009, 23:47
PM MAIL   Вверх
KaraKum
Дата 30.9.2009, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: нет
Всего: 1



В программе MetaTrader есть специальный скриптовый язык для написания советников (можно понимать как "роботов"). Эти советники могут и сделки открывать/закрывать. Язык похож на C.

Это сообщение отредактировал(а) KaraKum - 30.9.2009, 14:30
PM MAIL WWW   Вверх
Ubhra
Дата 4.10.2009, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.10.2009

Репутация: нет
Всего: нет



Нужно определится с ресурсом откуда таскать информацию. Написать оболочку под win\nix или web. И обрабатывать данные уже средствами этой оболочки. Есть аналоги (free\opensorce) под форекс и др. Можно попробовать их подстроить под себя или же передавать данные из них в свою программу. Все просто. Но для того что бы все получилось, нужно вначале изучить экономику )) И ставить перед собой юолее осмысленные цели.
PM MAIL   Вверх
victor79
Дата 4.10.2009, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



попробуй из Metatrader выгрузить котировки в текст, загрузи в свою программу, сделай процедуру эмулятора совершения сделок, которая автоматом будет списывать спред со совершенной сделки. Умудриться торговать в плюс при нулевом (или близком к тому) спреду - не сложно. А вот при спреде приближающемуся к реальному - у меня не получилось. Если интересно, могу войти в "команду разработчиков", но только пока не увижу чего реального - только в консультационном виде. Опыта хватает, благо за несколько годиков, каких только нейронных сеток и прочей гадости понаизучал. Хоть как я упомянул, что не получилось создать что-то существенное, но приобретенные знания очень помогают в других сферах.

Вот пример моего класса трейдера (эмулятора сделок):
Код

types
   arDouble = array [0..1000] of system.Double;
   parDouble = ^arDouble;

  TTrader = class
  private
      _position: integer;
      _rest: integer;
      _rest_many: double;
      _tax: double;
      _cnt_dials: integer;
      _cnt_steps: integer;

      _price_dls: double;

      _list_prices: parDouble;
      _cnt_prices: integer;
      _spread: double;

      procedure error_pos; overload;
      procedure error_pos(pos: integer); overload;
      procedure _execute(action: integer);
  public
          // в конструкотор передаешь массив котировок, размер массива, и спред на сделку
        constructor Create(list_prices: parDouble; cnt: integer; spread: double);
         // после устанавливаешь позицию, от которой будешь тестировать
        procedure set_pos(pos: integer);
         // каждое выполнение execute перемещает текущее время на единицу, причем если
         //   action = 0 - продать/купить в ноль, 1 - закупиться, -1 - продать в минус. Если просто ждать, тогда нужно action=rest
        procedure execute( action: integer );

        function balance: double; // здесь получаешь текущее состояние баланса (изначальный = 0, а дальше уходишь в плюс или минус)
        property rest: integer read _rest; // текущий остаток
        property price_dls: double read _price_dls; // цена начала текущей сделки
        property cnt_dials: integer read _cnt_dials; // количество совершенных сделок
        property cnt_steps: integer read _cnt_steps; // количество шагов (вызовов execute)

        property tax: double read _tax write _tax; // это если есть к-либо фиксированный налог (можно оставить = 0)

        property pos: integer read _position; // текущая позиция
        function cnt_pos: integer; // всего позиций (cnt в конструкторе)
        property spread: double read _spread write _spread; // спред
   end;

implementation

constructor TTrader.Create(list_prices: parDouble; cnt: integer; spread: double);
Begin
  _tax := 0.0;
  _position := 0;
  _rest := 0;
  _price_dls := 0;
  _list_prices := list_prices;
  _cnt_prices := cnt;
  _spread := spread;
End;

function TTrader.cnt_pos: integer;
asm
   mov eax, TTrader[eax]._cnt_prices
End;

function TTrader.balance: double;
var i, j: integer;
    v: double;
Begin
    if (_position < 0)or(_position > _cnt_prices) then error_pos
    else
    if _rest = 0 then result := _rest_many
    else Begin
       i := _position;
       if i = _cnt_prices then dec(i);

       v := _list_prices[i] / _price_dls - 1;

       result :=  _rest_many + v * _rest;
    End;
End;

procedure TTrader.set_pos(pos: integer);
Begin
    _position := pos;
    _rest := 0;
    _rest_many := 0.0;
    _cnt_dials := 0;
    _cnt_steps := 0;
    _price_dls := 0;
End;

procedure TTrader.execute(action: integer);
// eax - self
// edx - action
asm
   cmp TTrader[eax]._rest, edx
   jnz  @@run_dls
   inc TTrader[eax]._position
   inc TTrader[eax]._cnt_steps
   ret

@@run_dls:
   push  eax
   call  _execute
   pop   eax

   inc TTrader[eax]._position
   inc TTrader[eax]._cnt_steps
end;

procedure TTrader._execute(action: integer);
var v: double;
    i: integer;
Begin
    if (_position < 0)or(_position >= _cnt_prices) then error_pos;

    if _rest <> 0 then Begin
          v := _list_prices[_position] / _price_dls - 1;
          _rest_many := _rest_many + v * _rest - _tax;
    End;

    if action <> 0 then Begin

          _price_dls :=
          _list_prices[_position] + _spread * action;

          _rest_many := _rest_many - _tax;
    End;

    _rest := action;
    inc(_cnt_dials);
End;

procedure TTrader.error_pos;
begin
   raise Exception.CreateFmt('Неправильная позиция трейдера: %d (из возможных %d)', [_position, _cnt_prices]);
end;

procedure TTrader.error_pos(pos: integer);
begin
   raise Exception.CreateFmt('Неправильная позиция трейдера: %d (из возможных %d)', [pos, _cnt_prices]);
end;

PM MAIL WWW   Вверх
neic
Дата 4.10.2009, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



victor79
Я сейчас не много, занят. Освобожусь обращусь ;)
PM MAIL WWW ICQ Skype   Вверх
KaraKum
  Дата 5.10.2009, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: нет
Всего: 1



Парнишка бросил эту затею  smile . Как и многие другие.
PM MAIL WWW   Вверх
Reshetov
Дата 9.10.2009, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 9.10.2009

Репутация: нет
Всего: нет



> Хочу создать биржевого робота. С чего начать?

Как не странно, но с теории вероятности в приложении к нестационарности.

Финансовые инструменты нестационарны.
PM MAIL   Вверх
DRUID3
  Дата 23.10.2009, 07:50 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 463
Регистрация: 20.6.2005
Где: Kyyiv

Репутация: 2
Всего: 9



Цитата(SoWa @  24.9.2009,  13:54 Найти цитируемый пост)
Внесу свое мнение: робот получится тупой как дрова.
Человека в торговле не заменит ничто. Анализ- это только анализ, он 100% гарантии не дает, что сейчас тренд пойдет падать, допустим. А все современные индикаторы всегда чуток запаздывают ко времени тренда. 

Ну... Так категорично... Почему-то вспоминаются "пелевинские" космонавты из "Омон Ра" и их понятие "автоматика". smile 

Цитата(Reshetov @  9.10.2009,  15:09 Найти цитируемый пост)
> Хочу создать биржевого робота. С чего начать?

Как не странно, но с теории вероятности в приложении к нестационарности.

Финансовые инструменты нестационарны. 

 smile Каждый видит жизнь по-своему... Я бы, например, посоветовал изучать линейные и нелинейные системы... Ведь в динамической системе нудно будет искать крупицы детерминизма, а не давать численные оценки достоверностям наступления того или иного события... Эти науки очень близки, почти одинаковый матаппарат, но все таки основные идеи - разные...

P.S.: Никогда таким не страдал, но как по мне - сама идея порочна. Нужно писать не робота - а базис роботов. У Каждого своя стратегия. Из цикла - "хоть один но победитель". Если посидеть и подумать, пооптимизировать туда-сюда - то можно получить прямо таки беспроигрышные варианты - переход количества в качество, так сказать, согласно учению диалектического материализма smile ...


--------------------
Every time if you use Linux, you are joined to the communism...
практика - критерий истины ... отделенной от нас пропастью субъективного восприятия...
PM MAIL WWW Skype   Вверх
Leop
Дата 18.11.2010, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 21.1.2010

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
_Y_
Дата 18.11.2010, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Сначала анекдот: Наши экономичаекие алгоритмы позволили безошибочно предсказать девять из последних пяти экономических  кризисов!

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

Рещение должен пронимать именно человек. А вот что робот может делать, это собрать информацию и провести ее к виду, удобному для пронятия решения. Кроме того, робот может "приводить решение в жизнь", если предполагается какая-то длительная тупая активность на базе глобально принятого решения.

Если вам кто-то рассказывает об успешном биржавом роботе - верьте. Это значит, что правильное биржевое решение (коммерчаская идея) было найдено и заложено в его (робота) алгоритм. Только свои успешные буржевые идеи ни один норнмальный человек общественным достоянием не делает: ни в исходном виде, ни в виде кода.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Dirol2
Дата 17.1.2011, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



Чтоб не плодить темы, спрошу тут же.

Тоже решил написать робота, алгоритм уже в голове есть. Вопрос в том, что моя платформа (Альфа-Директ) позволяет подключаться через COM и брать историю с их сервера с поминутным интервалом в виде бара (макс цена, мин цена, цена открытия, цена закрытия). Этой информации мало для обучения робота.

Для него надо иметь информацию о каждой сделке с момента основания биржи.

Собственно, на какие платформы посмотреть в первую очередь, которые могут предоставить настолько полную информацию? И вообще существуют ли подобные решения на сей день?
Например WealthLab, или QUIK? Не так просто найти нужный файл справки для девелопера по каждой из платформ, да ещё его понять и переварить... Если есть уже те, кто работал с ними - можете подсказать, там такое есть?
PM MAIL   Вверх
миг
Дата 18.1.2011, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 15.9.2008

Репутация: нет
Всего: 1



Допустим напишите вы своего робота. Протестируете его на демо счете все будет отлично.. А когда начнете реально играть на рынках, то между вами и рынком будет сидеть посредник, через которого вы будете покупать и продавать.. А поскольку посредник работает не только с вами, то "мягко" говоря он не будет успевать покупать вам ценные бумаги по приемлемым ценам.. Да и в заключенном договоре может быть оговорено, что можно будет за пять минут совершать не более одной сделки.. а за пять минут реальный рынок может несколько раз взлететь и упасть.. Я уже не говорю, что за каждую проведенную сделку вы будете должны заплатить посреднику определенную сумму.

Это сообщение отредактировал(а) миг - 18.1.2011, 21:40
--------------------
Oaks may fall when reeds stand the storm.
PM MAIL   Вверх
Kaerus
Дата 19.1.2011, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WPF'er
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 3.9.2010

Репутация: нет
Всего: 1



миг
Выставление заявок через тоже quik (fix шлюз) занимает порядка 300 мс, для некоторых алгоритмов вполне допустимые значений.
PM MAIL ICQ   Вверх
BestCoder
Дата 21.1.2011, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 21.1.2011

Репутация: нет
Всего: нет



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


______________________________
Web-программирование
PM MAIL WWW   Вверх
SBH
Дата 20.11.2012, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.11.2012

Репутация: нет
Всего: нет



PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1292 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.