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


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

СообщениеДобавлено: Вт Май 22, 2012 11:36 am Ответить с цитатой Вернуться к началу

Sergg писал(а):
Заменил в роботе Lots на Lots=int((InitialEquity/(Open+Otstup))/10)-1;

Где InitialEquity - фиксированная сумма для торговли.
Но почему-то робот при наступлении Buy, Sell и т.п начинает ругаться и не чего не покупает.

Потому, что у тебя получается массив Lots, а это должна быть константа.
Добавь LastValue() так

Код:
Lots=LastValue(int((InitialEquity/(Open+Otstup))/10))-1;

или еще так должно сработать
Код:
Lots=int((InitialEquity/(Open[BarCount - 1]+Otstup))/10)-1;

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



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

СообщениеДобавлено: Ср Май 23, 2012 12:59 pm Ответить с цитатой Вернуться к началу

В общем, решил при тестировании прямо прописать цену открытия бара как цену совершения сделок. Теперь тест совпадает с работой робота.
Результаты конечно упали, просадка выросла... Sad
Но как раз в последнее время так более эффективно - из-за резких движений действительно лучше совершать сделку как можно раньше после поступления сигнала.
Посмотреть профиль Отправить личное сообщение
Sergg



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

СообщениеДобавлено: Ср Май 23, 2012 4:03 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Потому, что у тебя получается массив Lots, а это должна быть константа.
Добавь LastValue()


Спасибо, сейчас вроде все ok.

У меня до этого из одного Quik котировки получали 2 Ami (на разных таймфреймах), сейчас 2 робота из 2-х Ami отправляют заявки обратно в 1 Quik.
Правда однажды Quik сругался что много коннектов к нему.
Сильно не ругайте, что это делать нельзя (пока другого выбора нету).
Посмотреть профиль Отправить личное сообщение
Sergg



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

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

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



Зарегистрирован: 29.11.2011
Сообщения: 96
Откуда: Саратов

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

000 писал(а):
Попробовал робота на 20 тиковом интервале.
Вот так сделал
Код:
TimeFrame = -20;
.....
if (TimeFrame == Interval(1) AND Permit_Ticker)

Прекрасно торгует.

Здравствуйте! А может ли робот торговать на 200 тиковом интервале? В коде в таймфрейме надо -200 поставить или как?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Май 30, 2012 11:26 pm Ответить с цитатой Вернуться к началу

В начале
Код:
TimeFrame = -200;

Почти в конце
TimeFrame == Interval(1)

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



Зарегистрирован: 29.11.2011
Сообщения: 96
Откуда: Саратов

СообщениеДобавлено: Ср Май 30, 2012 11:34 pm Ответить с цитатой Вернуться к началу

000 писал(а):
В начале
Код:
TimeFrame = -200;

Почти в конце
TimeFrame == Interval(1)

А, понял. Спасибо! Надо попробовать.
Посмотреть профиль Отправить личное сообщение
VAE



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

СообщениеДобавлено: Вт Июн 05, 2012 4:51 pm Ответить с цитатой Вернуться к началу

Помогите пожалуйста насчет синтактических ошибок, вставляю этот код под свою систему. Программа при проверке выдает ошибки
color = coloriz = colorDefault; price = 0; str = Now(0) + " " + Name(); pos = AS_READ_PARAM(
-------------------^
Error 30.
Syntax error
coloriz = colorGreen; str = str + " заявка исполнена" + " ответ сервера=" + order; if(pos > 0 AND bs == "S") // закрытие лонга AS_WRITE_PARAM(
-----------------^
Error 30.
Syntax error
if(pos > 0 AND bs == "S") // закрытие лонга AS_WRITE_PARAM("Quik_Robot", Name(), "pos", 0); else if(pos == 0 AND bs == "S") // шорт AS_WRITE_PARAM(
-----------------^
Error 30.
Syntax error
else if(pos == 0 AND bs == "S") // шорт AS_WRITE_PARAM("Quik_Robot", Name(), "pos", -1*Lot); else if(pos < 0 AND bs == "B") // закрытие шорта AS_WRITE_PARAM(
-----------------^
Error 30.
Syntax error
else if(pos < 0 AND bs == "B") // закрытие шорта AS_WRITE_PARAM("Quik_Robot", Name(), "pos", 0); else if(pos == 0 AND bs == "B") // лонг AS_WRITE_PARAM(
-----------------^

Error 30.
Syntax error
str = str + " Buy"; sd = "Buy"; orders("B", round(C[BarCount-1]) + Otstup, Lots); AS_WRITE_FILE(
---------------^
Error 30.
Syntax error
str = str + " Sell"; sd = "Sell"; orders("S", round(C[BarCount-1]) - Otstup, abs(pos)); AS_WRITE_FILE(
---------------^
Error 30.
Syntax error
str = str + " Short"; sd = "Short"; orders("S", round(C[BarCount-1]) - Otstup, Lots); AS_WRITE_FILE(
---------------^
Error 30.
Syntax error
str = str + " Cover"; sd = "Cover"; orders("B", round(C[BarCount-1]) + Otstup, abs(pos)); AS_WRITE_FILE(
---------------^
Error 30.
Syntax error
SetOption( "NoDefaultColumns", 1 ); AddTextColumn(Name(), "Символ", 1.0, colorDefault, colorDefault, 60); AddColumn( C[BarCount-1], "Последняя цена", 1.2, colorDefault, colorDefault, 100 ); AddColumn( AS_READ_PARAM(
------------------------^
Error 31.
Syntax error, expecting ')' or ','
AddTextColumn(text, "Соединение", 1.2, colorDefault, color, 170); AddTextColumn(iz, "Исполнение заявки", 1.2, colorDefault, coloriz, 120); AddTextColumn(order, "Заявка", 1.2, colorDefault, IIf(StrToNum(order) > 100, colorGreen, colorRed), 90);
^
Error 32.
Syntax error, probably missing semicolon at the end of the previous line
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Июн 05, 2012 6:04 pm Ответить с цитатой Вернуться к началу

Хм. Я так понял, что робот копия этого робота?
Тогда вопрос. В редакторе AFL у тебя функции AS_WRITE_FILE, AS_WRITE_PARAM, AS_READ_PARAM синим выделены????

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



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

СообщениеДобавлено: Вт Июн 05, 2012 6:23 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Хм. Я так понял, что робот копия этого робота?
Тогда вопрос. В редакторе AFL у тебя функции AS_WRITE_FILE, AS_WRITE_PARAM, AS_READ_PARAM синим выделены????

Нет, подскажите пожалуйста, что нужно сделать.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Плагины не установлены или не работают.
Робот использует 2 плагина
AS_QuikTrade для отправки транзакций
AS_File для учета открытых позиций и для ведения лога (записи действий робота в отдельный файл)

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



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

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

Подскажите пожалуйста. Хочу выучить язык afl, но с чего начать не знаю, программированием раньше никогда не занимался. Что посоветуете?
Посмотреть профиль Отправить личное сообщение
VAE



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

СообщениеДобавлено: Вт Июн 05, 2012 9:11 pm Ответить с цитатой Вернуться к началу

Подскажи пожалуйста почему программа выдает ошибку.
AddTextColumn(text, "Соединение", 1.2, colorDefault, color, 170);

AddTextColumn(iz, "Исполнение заявки", 1.2, colorDefault, coloriz, 120);

AddTextColumn(order, "Заявка", 1.2, colorDefault, IIf(StrToNum(order) > 100, colorGreen, colorRed), 90) ;
^
Error 32.
Syntax error, probably missing semicolon at the end of the previous line
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Июн 05, 2012 9:24 pm Ответить с цитатой Вернуться к началу

Ошибка не в этих строках. Вероятно раньше.

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



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

СообщениеДобавлено: Вт Июн 05, 2012 9:54 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Ошибка не в этих строках. Вероятно раньше.

Подскажите как найти ошибку?
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen