Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 как сообщить роботу позу Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
Novi4ok



Зарегистрирован: 15.08.2008
Сообщения: 127

СообщениеДобавлено: Ср Июл 01, 2009 4:00 am Ответить с цитатой Вернуться к началу

в квике у фьючей есть такое понятие как "Текущая позиция"
через DDE в Excel можно вывести, а также есть вывод по ODBC.

как бы эту инфу импортировать в АМИ?
Shocked
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Ср Июл 01, 2009 7:49 am Ответить с цитатой Вернуться к началу

Я плучал в Ами позиции из Квика. В общем Не так просто, но и не сказать, что не возможно.

Код:
odbcOpenDatabase("ODBC;DSN=000;Driver=Firebird/InterBase(r) driver;Dbname=C:/TEST1.FDB;CHARSET=ASCII;PWD=masterkey;UID=SYSDBA;Client=C:/Program Files/Firebird/Firebird_2_1/bin/fbclient.dll;");
real_market_position = Nz(odbcGetValue("TABLE01", "", "FIELD02"));

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Novi4ok



Зарегистрирован: 15.08.2008
Сообщения: 127

СообщениеДобавлено: Ср Июл 01, 2009 9:42 am Ответить с цитатой Вернуться к началу

огромное спасибо!
я думал в ексель, оттуда в текстовый файл гнать
--
хм Sad что-то Амиброкер такой функции не знает odbcOpenDatabase
---
я так понимаю, нужно эту dll скачать или целиком Firebird устанавливать?
а у Windows XP Pro разве нет своего ODBC-сервера?
в разделе "Администрирование" есть раздел "Источники данных ODBC" (ODBC Data Source Administrator).
там варианты:
OutpostDatabase,
База данных MSAccess,
Файлы DBASE,
Файлы Excel
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Ср Июл 01, 2009 7:00 pm Ответить с цитатой Вернуться к началу

Цитата:
хм что-то Амиброкер такой функции не знает odbcOpenDatabase

Плагин есть такой http://www.amibroker.com/odbc.html

Цитата:
я так понимаю, нужно эту dll скачать или целиком Firebird устанавливать?

Чтобы появилась такая функция нунжа dll (плагин)
А в качестве BD я (по совету друзей Smile ) использовал Firebird
В принципе не обязательно его.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Novi4ok



Зарегистрирован: 15.08.2008
Сообщения: 127

СообщениеДобавлено: Ср Июл 01, 2009 10:21 pm Ответить с цитатой Вернуться к началу

ух ты....
как здорово!
это ж можно стакан экспортировать.
вопрос только сможет ли эта БД обновляться раз в секунду
Посмотреть профиль Отправить личное сообщение
Avante



Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны

СообщениеДобавлено: Вс Ноя 01, 2009 11:38 pm Ответить с цитатой Вернуться к началу

Novi4ok писал(а):
ух ты....
как здорово!
это ж можно стакан экспортировать.
вопрос только сможет ли эта БД обновляться раз в секунду


Ага, супер. Smile
В Ами эта функция появилась, а вот импорт/экспорт в винде не могу настроить.
Подскажите, что куда добавлять нужно:
- Пользовательский DSN
- Системный DSN
- Файловывй DSN
- Драйверы
- Группировка подключений

После установки драйвера Easysoft Firebird, он появился по вкладке "драйверы".

Файл TEST1.FDB создал с помощью блокнота, но вот экспорт в него не могу настроить.

Что еще где нужно сделать?
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Ноя 02, 2009 12:21 am Ответить с цитатой Вернуться к началу

Я в БД нифига не смыслю. Создавал БД и смотрел её содержимое при помощи Firebird Maestro.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Avante



Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны

СообщениеДобавлено: Пн Ноя 02, 2009 12:31 am Ответить с цитатой Вернуться к началу

Ладно сейчас тоже через эту прогу попробую.
Но у меня уже в впечатление, что я вообще ни в чем не смыслю Smile
Посмотреть профиль Отправить личное сообщение ICQ Number
Avante



Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны

СообщениеДобавлено: Пт Ноя 06, 2009 1:33 pm Ответить с цитатой Вернуться к началу

Уф... все, разобрался!
все заработало, ура!
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пт Ноя 06, 2009 7:01 pm Ответить с цитатой Вернуться к началу

Так не жлобься. Опиши.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Avante



Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны

СообщениеДобавлено: Вт Ноя 10, 2009 3:37 pm Ответить с цитатой Вернуться к началу

Ага, описываю, точнее, немного добавлю к тому, что уже написано Олегом (ООО).

Итак, все по порядку:

Как уже было сказано, скачиваем плагин для работы Ami c базами данных по ODBC: http://www.amibroker.com/odbc.html
и кладем этот файлик в папку Plugins каталога AmiBroker.

Теперь необходимо создать саму базу данных и зарегистрировать ее, чтобы ей мог воспользоваться Quik для экспорта.
Для создания БД понадобится одна из программ импорта-экспорта. Я использовал Firebird 2.1: http://www.firebirdsql.org/index.php?op=files

Про то, как создать и внести изменения в БД с использованием утилиты isql, входящей в компект Firebird 2.1 можно почитать здесь:
http://www.devrace.com/ru/fibplus/articles/3359.php или здесь:
http://www.ibprovider.com/rus/documentation/firebird.html#firebird_utility
Если вас не устраивает работа в командной стороке, можно воспользоваться программой Firebird Maestro.
В Firebird Maestro создаем новую БД, а в ней создаем таблицу, по количеству колонок равную той, которую нужно экспортировать.
Один нюанс:
Когда в таблице БД вы создатете Fields, их тип должен быть Varchar, в противном случае Quik не сможет их идентифицировать, и экспорт данных будет невозможен.

Итак, база данных создана, переходим с ее активации.
Чтобы зарегистрировать БД нужно скачать и установить драйвер ODBC, скажем вот отсюда: http://www.firebirdsql.org/index.php?op=files&id=odbc
После того, как драйвер установлен, регистрируем его:
Пуск - Настройка - Панель управления - Администрирование - Источники данных ODBC
Смотрим вкладку "Драйверы" - в нее должен добавиться Firebird/InterBase(r) driver.
Переходим во вкладку "Пользовательский DSN".
Нажимаем кнопку "добавить" и выбираем из списка Firebird/InterBase(r) driver.
Откроется окно конфигуратора.
Источник данных DSN - это ваша учетная запись в системе.
База данных - выбирается расположение созданного файла БД ***.fdb
Клиент - место установки Firebird: C:\ProgramFiles\Firebird\Firebird_2_\bin\fbclient.dll
Символьная таблица ASCII
Если все настроено правильно, после нажатия "Проверки соединения" вы увидите окошко с соообщением, подтверждающем об успехе.

И последнее - прописываем в коде для Ami (выложенном ООО) учетную запись - DSN, пути к файлу БД и к файлу клиента в программе Firebird, кодировку и пароль к вашей учетной записи.
Вот и весь процесс.
Единственное замечание - чтобы избежать непонятных ошибок не используйте кириллические символы.
Посмотреть профиль Отправить личное сообщение ICQ Number
Teema



Зарегистрирован: 01.04.2009
Сообщения: 184

СообщениеДобавлено: Вт Дек 29, 2009 5:29 pm Ответить с цитатой Вернуться к началу

Вот это, реально, нужная тема! Т.е. можно сделать контроль позиций. Спасибо обоим, троим авторам. Exclamation
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
burga



Зарегистрирован: 04.09.2009
Сообщения: 23

СообщениеДобавлено: Сб Мар 20, 2010 7:58 am Ответить с цитатой Вернуться к началу

Делал вывод через dde в excel, а оттуда читал следующим кодом:

Код:

EnableScript("vbscript");
<%
OpenLots = afl("OpenLots")
RobotID = afl("RobotID")

Seccode = afl("Seccode")

Set Excel = GetObject("r:\case.xls")
NameSheet = "Robot" + CStr(RobotID)
Set SheetRobot = Excel.WorkSheets(NameSheet)

OpenLots = 0
for i = 2 to 30
   TickerExcel = SheetRobot.Cells(i,3).Value
   if (TickerExcel = Seccode) then
      OpenLots = SheetRobot.Cells(i,8).Value      
      exit for
   end if
Next

AFL.Var("OpenLots") = OpenLots

%>
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen