Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Роботы |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55 След. |
Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Может тогда стоит отключить энергосбережение? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
shaly
Зарегистрирован: 01.07.2008
Сообщения: 53
Откуда: Омск
|
000 писал(а): |
Может тогда стоит отключить энергосбережение? |
Да, попробую без энергосбережения и блокировок экрана. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
skameykin22
Зарегистрирован: 15.10.2017
Сообщения: 1
Откуда: Санкт-Петербург
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number |
|
shaly
Зарегистрирован: 01.07.2008
Сообщения: 53
Откуда: Омск
|
skameykin22 писал(а): |
И как, получилось? |
Да, причина в косячной работе в вечернюю сессию - включенныйй режим энергосбережения. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
superolegb
Зарегистрирован: 25.08.2015
Сообщения: 17
|
добрый день
ошибка Too many arguments вот тут AS_WRITE_PARAM("Quik_Robot", Name(), "pos", Lot, 0);
Робот и плагины взяты с 49 страницы. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
У тебя старый плагин. Надо убрать точность из кода.
AS_WRITE_PARAM("Quik_Robot", Name(), "pos", Lot); |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
superolegb
Зарегистрирован: 25.08.2015
Сообщения: 17
|
ок) спасибо все получилось |
|
|
Посмотреть профиль Отправить личное сообщение |
|
FriendlyDeepSpace
Зарегистрирован: 07.12.2018
Сообщения: 34
|
Приветствую. Долго собирался заняться таки АмиБрокером, и вот видимо тот момент настал.
Прошу прощения, если задам избитые вопросы, но боюсь что 50 страниц ветки не осилю. Прошу, подскажите)
На странице загрузок вижу два разных робота, и тут в страницах мелькали еще некие версии, я так и не понял какой мне подойдет.
Я торгую разные системы на разных таймфреймах. Каждая система покупает своим сигналом и продает то, что купила, своим сигналом. Не зависит от сигналов других систем. Т.е. лишь бы система помнила, что именно она и сколько купила, и вместо закрытия позиции не дала мне ненужный шорт. Или не закрыла не свою позицию.
Посоветуйте как мне лучше это реализовать, возможно я что-то неверно понимаю.
1. Что мне делать в этом случае? Делать каждый раз отдельно файл с вашим роботом и правилами входа для каждой системы, или в один файл с роботом вставлять по очереди правила всех систем? (не знаю как еще называть вещи своими именами, ибо путаюсь пока в общей "схеме" связки Амиброкера и Квика). Мне нужно, чтобы системы работали независимо, можно было отключить какую-то одну, или три, или все сразу, также видеть статистику по каждой и в свокупности.
2. Какой робот использовать, если стопы не нужны. Есть ли между ними разница, кроме того, что в одном возможны доливки, стопы и т.п., а в другом их нет? Может еще есть разница? Надежность, какие-либо функции и т.п. У меня вход и выход происходит по сигналу, без стопов. И выход из всех позиций в конце дня. В общем какой актуальный на данный момент робот качать?
3. Регулировать объем входа буду вручную. Можно ли так? Просто после закрытия роботом позиции, иду в код и даю новое значение, и следующие входы у этой конкретной системы будут с новым объемом? Останавливать ничего не нужно? Тут важно, отсылка к первому вопросу, т.е. каждая система в отдельный файл или как будет правильно, хотелось бы выяснить, чтобы не делать заведомо неверную пустую работу.
4. Сам АмиБрокер. Где его лучше брать и есть ли важность версии для работы? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Тебе нужен ВОТ ЭТОТ робот.
Сначала пробуй работу робота только по одной системе с равным, минимальным объемом. Если все устроит, то тогда и будешь спрашивать как запихать в него несколько систем.
А то ты еще первый курс не закончил а задаешь вопросы из пятого... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
FriendlyDeepSpace
Зарегистрирован: 07.12.2018
Сообщения: 34
|
000 писал(а): |
Тебе нужен ВОТ ЭТОТ робот.
Сначала пробуй работу робота только по одной системе с равным, минимальным объемом. Если все устроит, то тогда и будешь спрашивать как запихать в него несколько систем.
А то ты еще первый курс не закончил а задаешь вопросы из пятого... |
Ок, спасибо за уточнение! Мне сказали, мол, лучше спроси, там есть грамотный отзывчивый разработчик Олег, он подскажет, вот я и спрашиваю)
Лучше задать вопрос перед тем, как будет потрачена куча попочасов, чтобы потом выяснить, что оно не подходит под задачи)
Обещаю стараться не задавать бестолковых вопросов!) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
FriendlyDeepSpace
Зарегистрирован: 07.12.2018
Сообщения: 34
|
Привет, нужна ваша помощь. Видимо я что-то не так делаю, а что - не понятно.
1. Ставлю Квика-Юниора 7.23.1.4, и Амиброкер 5.70.2 (32bit)
2. Далее - скачиваю файл торгового Робота со страницы http://www.amisite.ru/afl/exp/0002.php. Оттуда же перехожу по ссылкам на плагины, и скачиваю два плагина в папку C:\Program Files (x86)\AmiBroker\Plugins.
3. Иду на страницу https://arqatech.com/ru/support/files/, оттуда скачиваю https://arqatech.com/upload/iblock/80a/Trans2QuikAPI_1.3_x64.zip, из него достаю trans2quik.dll и кладу в C:\Program Files (x86)\AmiBroker.
4. Оттуда же качаю QUIK2AMIBROKER_DataPlugin.dll, кладу в C:\Program Files (x86)\AmiBroker\Plugins.
5. Создаю базу данных в Ами, настраиваю экспорт из Квика-Юниора, все работает, котировки в созданный инструмент идут реал-тайм.
6. Правлю файл Робота, меняю инструмент на мой, лот, таймфрейм, правила входа, путь к Квику-Юниору, сохраняю. Далее пробую нажать Scan для проверки, и получаю ошибки синтаксиса в файле Робота. Скрин ошибок прилагаю. И еще, если открыть в Ами Tools>>Plugins, то там будет только AS_File, а второго нет. Так и должно быть?
Вот код Робота:
Код: |
Filter = 1;
TimeFrame = 60; // таймфрейм в секундах.
Account = "SPBFUT00754"; // Номер счета
Client_Code = "SPBFUT00754"; // Код Клиента
Quik = "C:\\QUIKJunior"; // путь к Квику
Tickers = "Si_Junior"; // торгуемые символы через запятую без пробелов. Для контроля ошибок. Так, как они называются в Ами
///////////////
// задаем размер лотов, коды и отступ для разных символов
/////////////
if(Name() == "Si_Junior") { //Символ как он называется в Ами
SecCode = "SiH9";
Class = "SPBFUT";
Lots = 1;
TickS = 1; // Минимальный шаг цены торгуемой бумаги
Otstup = 100; // Заявка будет выставлена хуже текущей цены на Otstup рублей
}
//else if(Name() == "SBER") { //Символ как он называется в Ами
// SecCode = "SBER";
// Class = "EQBR";
// Lots = 2;
// TickS = 0.01; // Минимальный шаг цены торгуемой бумаги
// Otstup = 1; // Заявка будет выставлена хуже текущей цены на Otstup рублей
//}
//////////////Система///////////////
Buy1 = C>O;
Sell1 = C<O;
Short1 = 0;
Cover1 = 0;
///////////Конец Системы////////////
Buy1 = Ref(Buy1, -1);
Sell1 = Ref(Sell1, -1);
Short1 = Ref(Short1, -1);
Cover1 = Ref(Cover1, -1);
////////////////////////////////////
text = iz = sd = order = "";
color = coloriz = colorDefault;
price = 0;
str = Now(0) + " " + Name();
pos = AS_READ_PARAM("Quik_Robot", Name(), "pos");
///////////// проверка наличия символа в списке для торговли ////////////////
k = 0;
Permit_Ticker = False;
do {
Tick = StrExtract(Tickers, k);
k++;
if(Name() == Tick)
Permit_Ticker = True;
} while(Tick != "");
/////////// Функции ////////////
procedure orders(bs, pr, Lot)
{
connection = 0;
QC = AS_QUIK_CONNECT (Quik);
if (QC == 1)
{
connection = 1;
text = "Есть соединение с сервером";
Color = colorGreen;
}
else if (QC == -1)
{
text = "нет соединения с квиком";
Color = colorRed;
}
else if (QC == -2)
{
text = "нет соединения с сервером";
Color = colorRed;
}
else
{
text = "фигня какая то";
Color = colorRed;
}
if(connection == 1)
{
order = AS_QUIK_SEND_SYNC_NEWORDER( "123", // OrderID - Любые цифры
Account,
Client_Code,
"L", // Тип заявки M-рыночная, L-лимитированная
Class,
SecCode,
bs,
pr,
TickS,
Lot);
}
if(StrToNum(order) > 100)
{
iz = "исполнена";
coloriz = colorGreen;
str = str + " заяка исполнена" + " ответ сервера=" + order;
if(pos > 0 AND bs == "S") // закрытие лонга
AS_WRITE_PARAM("Quik_Robot", Name(), "pos", 0, 0);
else if(pos == 0 AND bs == "S") // шорт
AS_WRITE_PARAM("Quik_Robot", Name(), "pos", -1*Lot, 0);
else if(pos < 0 AND bs == "B") // закрытие шорта
AS_WRITE_PARAM("Quik_Robot", Name(), "pos", 0, 0);
else if(pos == 0 AND bs == "B") // лонг
AS_WRITE_PARAM("Quik_Robot", Name(), "pos", Lot, 0);
str = str + " позиция на момент исполнения " + pos;
else {
iz = "не исполнена";
coloriz = colorRed;
str = str + " заяка НЕ исполнена" + " ответ сервера=" + order;
}
}
////////// конец Функций //////////
if (TimeFrame == Interval() AND Permit_Ticker)
{
if(Buy1[BarCount-1] AND pos == 0) {
str = str + " Buy";
sd = "Buy";
orders("B", round(C[BarCount-1]) + Otstup, Lots);
AS_WRITE_FILE("log.quik", str);
}
else if(Sell1[BarCount-1] AND pos > 0) {
str = str + " Sell";
sd = "Sell";
orders("S", round(C[BarCount-1]) - Otstup, abs(pos));
AS_WRITE_FILE("log.quik", str);
}
else if(Short1[BarCount-1] AND pos == 0) {
str = str + " Short";
sd = "Short";
orders("S", round(C[BarCount-1]) - Otstup, Lots);
AS_WRITE_FILE("log.quik", str);
}
else if(Cover1[BarCount-1] AND pos < 0) {
str = str + " Cover";
sd = "Cover";
orders("B", round(C[BarCount-1]) + Otstup, abs(pos));
AS_WRITE_FILE("log.quik", str);
}
}
else if(TimeFrame != Interval()) {
PopupWindow( "Не соответствует временной интервал в настройках АА и в коде",
"ошибка", timeout = 5, left = -1, top = -1 );
}
SetOption( "NoDefaultColumns", 1 );
AddTextColumn(Name(), "Символ", 1.0, colorDefault, colorDefault, 60);
AddColumn( C[BarCount-1], "Последняя цена", 1.2, colorDefault, colorDefault, 100 );
AddColumn( AS_READ_PARAM("Quik_Robot", Name(), "pos"), "Позиция", 1.0, colorDefault,
IIf(AS_READ_PARAM("Quik_Robot", Name(), "pos") > 0, colorGreen,
IIf(AS_READ_PARAM("Quik_Robot", Name(), "pos") < 0, colorRed, colorDefault)), 60);
AddTextColumn(sd, "Сигнал", 1.0, colorDefault, colorDefault, 60);
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); |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
AS_QuikTrade.dll точно положил в C:\Program Files (x86)\AmiBroker\Plugins. ???
Если положил, то плагин будет виден в Tools -> Plug-Ins |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
FriendlyDeepSpace
Зарегистрирован: 07.12.2018
Сообщения: 34
|
Положил, потому меня и смущает этот момент, будто бы ошибка от того, что Робот не видит его и не узнает нужных функций. Может что-то другое влияет? Может версия Ами не та? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
FriendlyDeepSpace
Зарегистрирован: 07.12.2018
Сообщения: 34
|
Ты прав, подтверждаю, установка версии TRANS2QUIK.dll из твоего сообщения привела к появлению второго плагина! Значит новая версия не подходит. Но проверка Робота на ошибки указывает, что еще что-то все-таки осталось под вопросом. На моменте нажатия Scan или Explore, как и просто при проверке синтаксиса Робота, идет указание на ошибку. Скрин прилагаю. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Роботы |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|