Торговый автомат Амиброкер+Квик

  • Автор темы mehanizator1
  • Дата начала

mehanizator1

New member
1. в заявке указывается цена заведомо худшая, в примере на 1,5%. Так вроде описывается рыночная заявка. В реальности заявка не получается на 1,5% хуже, т.е. quik заявку исполняет по более лучшей цене. Так и должно быть? я не хотел бы чтобы мой робот ухудшал мою заявку на такой большой процент.

2. Где взять данные по тикеру? Classcode и Seccode?
1. исполняется всегда по лучшей цене в стакане.
2. в текущую таблицу квика можно вывести, код класса и код бумаги.
 

kartaviy

New member
Спасибо за ответ, робот работает отлично. Теперь шлифую систему. Хотелось бы все-таки иметь стоп в системе.

if ( mov4 > mov1 )
{ /* С фигурными скобками */
x = 0.5%;
}
else
x = 0.1%;

stop = (O - O * x);
Sell = L < stop;

Вот часть системы. Амиброкер ругается, говорит что ни "x", ни "stop" не инициированы.

Хочется чтобы система ставила стоп на уровне 0,5%, но если мувинг 4 превысил 2-ой то стоп становился 0,1%.

Сильно не знаком с языками програмирания , наверное просто все сделать, но до меня не доходит почему возникает ошибка.
 

000

New member
Так писать нельзя
Код:
Sell = Ref (mov3, -1) > Ref (mov1, -1); 
Sell = Ref (mov4, -1) < Ref (mov3, -1); 
Sell = L < stop; // stop 
Sell = y > 1;
Надо так
Код:
Sell = Ref (mov3, -1) > Ref (mov1, -1) OR Ref (mov4, -1) < Ref (mov3, -1) OR L < stop OR y > 1;
 

kartaviy

New member
и еще раз спасибо за ответ и еще один вопрос.
Робот может торговать только одним инструментом. Были тут попытки расширить его возможности, чтобы можно было торговать несколькими, но что-то не очень там получилось.

Можно ли так сделать, чтобы робот по имени инструмента определял настройки для акаунта. Информация ведь приходит с названием инструмента, я даже видел где-то в форуле "plot " показывал название инструмента. Так вот, чтобы робот брал из массива необходимые данные и вставлял в установки акаунта.

Сейчас, если я торгую несколькими инструментами, я открываю несколько вкладок в амиброкере, открываю в каждой вкладке инструмент, для каждого инструмента своя формула с заданными установками. Если бы можно было, чтобы была одна формула для всех вкладок-инструментов.
 

000

New member
Типа так.
Код:
If(Name() == GAZP)
{
блабла;
}
If(Name() == SPFB.GAZR)
{
блабла1;
}
По моему мнению лучше в таком случае использовать робота работающнго через АА. Описание я в этой ветке давал.[/quote]
 

kartaviy

New member
так в вашей системе сигнал на покупку должен же на следующем баре реализоваться?

хотя в принципе ничего такого плохого я не вижу если на одном баре будет и бай и селл.

вообще скрипт позволяет на одном баре четыре сигнала отрабатывать - buy, sell, short, cover.
Давно это было написано :)
но....
Это мой гральчик:

Buy = Ref(RSImoy,-1) < Ref (RSIa(C,14),-1);
Sell = Ref(RSImoy,-1) > Ref (RSIa(C,14),-1) OR L < stop;

Роботу нужен стоп, иначе смысла в роботе нет. Я реализовал его в выше приведённых правилах. Однако, не смотря на слова уважаемого Механизатора, мне не удается реализовать одновременно и buy и sell в одной свече. Например, если моя система грит - покупай на открытии следующей свечи: робот охотно пишет в tri файл информацию (плохой инет и исполнение в течение 10 секунд в среднем ':evil:'). Но если цена пошла вниз, и пробила стоп - то ничего не происходит - робот не формирует сигнал на продажу. Кроме этого, на следующей свече, формируется сигнал на покупку и робот прикупает ещё акций - теперь их в два раза больше. Куда руками не лазить, я не лазил. ПАМАГИТЕ!!!
 

kartaviy

New member
Серега, нужно,если возможно, еще одного робота поставить в окне чарта, которая запускает стоп, а не мучать робота меха :)
 

MAAAN779

New member
а у меня не получается, данные ввел, жму сканировать, а сделки получаются с одинаковыми ценами-
SBER Покупка 06.10.2009 10:31:00 59.6100
SBER Cover 06.10.2009 10:31:00 59.6100
SBER Продажа 06.10.2009 10:33:00 59.3800
SBER Short 06.10.2009 10:33:00 59.3800
SBER Покупка 06.10.2009 11:02:00 59.6300
SBER Cover 06.10.2009 11:02:00 59.6300
SBER Продажа 06.10.2009 11:27:00 59.5700
SBER Short 06.10.2009 11:27:00 59.5700
SBER Покупка 06.10.2009 11:50:00 59.6700
SBER Cover 06.10.2009 11:50:00 59.6700
 

kartaviy

New member
а у меня не получается, данные ввел, жму сканировать, а сделки получаются с одинаковыми ценами-
SBER Покупка 06.10.2009 10:31:00 59.6100
SBER Cover 06.10.2009 10:31:00 59.6100
SBER Продажа 06.10.2009 10:33:00 59.3800
SBER Short 06.10.2009 10:33:00 59.3800
SBER Покупка 06.10.2009 11:02:00 59.6300
SBER Cover 06.10.2009 11:02:00 59.6300
SBER Продажа 06.10.2009 11:27:00 59.5700
SBER Short 06.10.2009 11:27:00 59.5700
SBER Покупка 06.10.2009 11:50:00 59.6700
SBER Cover 06.10.2009 11:50:00 59.6700
у тебя же реверсиваня система - открыл лонг - закрыл шорт, далее наоборот закрыл шорт и открыл лонг. поэтому и цена покупки и закрытия шорта одинаковы, как и цена открытия шорта равна цене закрытия лонга и равны открытию минутного бара.
 

kartaviy

New member
Уважаемый Механизатор, можно попросить о небольшом изменении робота? Хотелось бы, чтобы до описания записи основной транзакции были сняты все стопы из квика, а после покупки была произведена запись о выставлении стопа в квике.
Без стопа работать сложно, я использую 15-ти минутки. Давно не было обновлений робота :wink:
 

GH05

New member
Уважаемый Механизатор, можно попросить о небольшом изменении робота? Хотелось бы, чтобы до описания записи основной транзакции были сняты все стопы из квика, а после покупки была произведена запись о выставлении стопа в квике.
Без стопа работать сложно, я использую 15-ти минутки. Давно не было обновлений робота :wink:
ППц, Вы бы хэлп для начала почитали
 

kartaviy

New member
ППц, Вы бы хэлп для начала почитали
кто сказал что я не читал инструкцию? наверное если есть код робота в свободном доступе, я могу спросить как он устроен и попросить помочь с его модернизацией.

if (Client!="") { CCS=" CLIENT_CODE="+Client+";"; }
transid=StrFormat("TRANS_ID=%g%g%g%g;",TickerID,sOperID,LastValue(Ref(DayOfYear(),-1)),LastValue(Ref(TimeNum(),-1)));
str=StrFormat(transid+"; CLASSCODE="+Classcode+"; ACTION=KILL_ALL_ORDERS; SECCODE="+Seccode+"ACCOUNT="+Account+";"+CCS);
str=StrFormat(transid+"PRICE=%1."+Point+"f;QUANTITY=%g;OPERATION="+sOper+";CLASSCODE="+Classcode+"; ACTION=NEW_ORDER; TYPE=L; SECCODE="+Seccode+"; ACCOUNT="+Account+";"+CCS,sprice,Lots);
str=StrFormat(transid+"ACTION= NEW_STOP_ORDER; QUANTITY=%g;OPERATION= S; CLASSCODE="+Classcode+"; ACCOUNT="+Account+"; SECCODE="+Seccode+"; STOPPRICE="+(Open*stopp)+"; PRICE="+((Open*stopp)*0.01)+"; EXPIRY_DATE = 20091231"+CSS, Lots);
savetrifile(transid,str);
 

bala

New member
Обнаружилась следующая проблема: иногда(примерно в одном случае из 5-7) квик не исполняет заявку. Т.е. ами пишет строку в trans.tri файл, но квик ее игнорирует. Кто нибудь сталкивался с такой проблемой?
 

kartaviy

New member
Обнаружилась следующая проблема: иногда(примерно в одном случае из 5-7) квик не исполняет заявку. Т.е. ами пишет строку в trans.tri файл, но квик ее игнорирует. Кто нибудь сталкивался с такой проблемой?
В tri-файле номера транзакций (trans_id) разные?
 

Anchorit

New member
Обнаружилась следующая проблема: иногда(примерно в одном случае из 5-7) квик не исполняет заявку. Т.е. ами пишет строку в trans.tri файл, но квик ее игнорирует. Кто нибудь сталкивался с такой проблемой?

А в tro и trr файлах он что об этих пропавших транзакциях пишет?
 
Your email address will not be publicly visible. We will only use it to contact you to confirm your post.
Сверху