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


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

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

Заявку ты в любом случае ставишь функцией AS_QUIK_SEND_SYNC_NEWORDER.
Если это заявка лучше рынка, то она попадает в стакан, а номер её функция возвращает. Собственно пока она не исполнена, можно снимать в любой момент по этому номеру.
А если хуже рынка, то она сразу исполниться и смысла её снимать нету....

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



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

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

Пытаюсь снять заявку получив из файла номер заявки и вместо 1720298587 уходит 1720290176.
AS_QUIK_KILL_ORDER возвращает 5, из файла с [SBER]NUM=1720298587, ами считывает правильно, но потом происходит подмена последних 3-4 цифр.
kosbar писал(а):
Надо бы добавить в описание плагина описание функции по удалению ордеров. Я тут мучаюсь с этой функцией, никак не пойму как ей номер ордера передать, жалуется, говорит не тот тип...
Вот правильный пример функции:
AS_QUIK_KILL_ORDER("333", "SPBFUT00111", "SPBFUT", "RIH2", "6942616014");
А ордер придётся сейвить в файл, через StrToNum и читать не без NumToStr
ЫЫЫ, веселье: функция ами StrToNum шестизначный номер Ордера - 6942951928 превращает в число со знаком = -1646982656.
Олег, а функции - AS_WRITE_PARAM() и AS_READ_PARAM(), смогут записать и прочитать строковый параметр? Ну, я это ща проверю, конечно... Но чот сумневаюсь)))))
НЭ МОГУТ!
Человек тут писал что нэ могут .. Как же правильно получить этот номер?


Код:
num = AS_READ_PARAM("Robo", Name(), "NUM");
if(connection)
{
 Vb= AS_QUIK_KILL_ORDER ("123",           // OrderID - Любые цифры
                  "45519",       // Код Клиента
                 "QJSIM",        // Код класса
                  "SBER",        // Символ (SECCODE)
                 "num"); // Номер ордера который хотим снять
}


Последний раз редактировалось: zyanov (Пт Май 11, 2012 12:33 am), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Я не могу понять в чем трабл.
Номер ордера получается в текстовом формате т.к. в числовом Ами лажается из за переполнения формата.
Номер снимаемого ордера тоже надо отправлять в текстовом формате.
В промежутке тоже не надо превращать текст в номер.
Т.Е. С НОМЕРОМ ЗАЯВКИ РАБОТАЙ ВСЕГДА КАК С ТЕКСТОМ!!!

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


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

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

А для записи номера ордера в файл используй функцию AS_WRITE_STRING()

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



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

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

записывает
Код:
AS_WRITE_STRING("robot", Name(), "pos", order);

читает
Код:
num= AS_READ_PARAM("robot", Name(), "pos");
пробую и так
Код:
num= NumToStr(AS_READ_PARAM("robot", Name(), "pos"));

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


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

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

Первые два правильно. Третий не правильно.

Ошибка. Второй тоже не правильно.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.

Последний раз редактировалось: 000 (Вс Май 13, 2012 5:41 pm), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
zyanov



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

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

так и делал Image
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Так что неполучается?

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



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

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

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


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

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

Ну если ты пользуешься тем кодом который видно на скрине, то кавычки то у num удали вот тут
"num"); // номер ордера который хотим снять
и раньше, там где читаешь номер ордера из файла надо не AS_READ_PARAM(), а AS_READ_PARAM_STR

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



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

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

Здравствуйте! А вот еще вопрос появился: а как натравить этот робот на тиковые графики? Например на 20ти или 50ти тиковые. Можно ли такое в принципе?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

А почему нельзя? Какой интервал в АА включишь, на таком и будет работать. Только надо проверку интервала в роботе чуток модифицировать или убрать совсем.

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



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

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

В теории я все понял - вроде ничего сложного. Но когда убираю проверку - почему-то робот перестает отправлять какие либо заявки в принципе. При этом ни о каких ошибках не сообщает.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

А как ты её убираешь?

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



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

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

Я сделал просто:
if ((TimeFrame == Interval() OR 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);
}
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);
}
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);
}
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);
}
}

Я наверное чего-то недопонял.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen