Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Биржевой робот 
:(
    Опции темы
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   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


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

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


 




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


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

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