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



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

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

блин, у меня встает в позу и тут же доливает, и в перевороте то же самое, закрывает позу, и затем сразу открывает и доливает
Код:
06.11.2012 14:06:07  RIZ2  Buy  заяка исполнена ответ сервера=1879773407  позиция на момент исполнения 0
06.11.2012 14:06:08  RIZ2  Buy (доливка)  заяка исполнена ответ сервера=1879773585  позиция на момент исполнения 1
06.11.2012 14:08:07  RIZ2  Buy (доливка)  заяка исполнена ответ сервера=1879782888  позиция на момент исполнения 2
06.11.2012 14:11:06  RIZ2  Buy (доливка)  заяка исполнена ответ сервера=1879796247  позиция на момент исполнения 3
06.11.2012 14:35:06  RIZ2  Sell  заяка исполнена ответ сервера=1879883909  позиция на момент исполнения 4
06.11.2012 14:35:08  RIZ2  Short  заяка исполнена ответ сервера=1879883983  позиция на момент исполнения 0
06.11.2012 14:35:09  RIZ2  Short (доливка)  заяка исполнена ответ сервера=1879884075  позиция на момент исполнения -1
06.11.2012 14:49:08  RIZ2  Short (доливка)  заяка исполнена ответ сервера=1879931858  позиция на момент исполнения -2
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Значит у тебя одновременно 2 сигнала. Buy1 и Buy2.
А фрейм какой?
Время доливок странное....

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



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

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

минутки, я для скорости поменьше поставил, торгую на 15 минутах, хотя он должен смотреть позу на предыдущем баре. Вообще сигналы на вход и доливку одинаковые, но ведь робот отслеживает позу.
Может эту строчку в код системы вставить?
Код:
pos = AS_READ_PARAM("Quik_Robot", Name(), "pos");
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Хм. Смотри что получается. Сигналы на вход и доливку одинаковые. Появляются 2 сигнала Buy1 и Buy2 исполняется вход и размер открытой позиции становиться больше 0. Робот сканирует раз в секунду. При следующем скане сигнал на вход не пройдет т.к. поза уже открыта, но вот сигнал на доливку пролезет т.к. для него все карты...

Если тебе надо чтобы по одинаковому сигналу и работала и доливка и вход, то надо переделать робота. Либо убрать в системе доливочный сигнал в момент входа

Код:
Buy1 = Buy2 = ...
Sell1 = ...

Buy1 = ExRem(Buy1, Sell1);

Buy2 = Buy2 AND Buy1 == 0;

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



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

СообщениеДобавлено: Ср Ноя 07, 2012 10:30 am Ответить с цитатой Вернуться к началу

да, помогло....хотя я несколько извращенный способ придумал. Извини, если задаю глупые вопросы и отвлекаю
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Почему извращенный? По моему нормальный.
Вопросы задавай. Если мне надоест отвечать тут на вопросы (не только твои), то закрою сайт нафиг и все... Laughing

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



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

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

000 писал(а):
Почему извращенный? По моему нормальный.
это я про себя, у меня извращенный, хотя все оказалось просто Cool
Посмотреть профиль Отправить личное сообщение
Ser



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

СообщениеДобавлено: Ср Фев 27, 2013 6:43 pm Ответить с цитатой Вернуться к началу

Приветствую!
Есть система: вход по пробою, выход по прересечению мувинга + доливки по правилам входа.
Хотелось бы уточнить как правильно адаптировать сигналы к работе робота, т.к. в тестере это все делается галочкой "reverse entry signal..."
По форуму нашел обрывочные сведения, то об одном, то о другом. Хотелось бы в голове свести все в правильную кучу.
Код:
Buy1 = Cover12 = ....... ;  // пробой уровня
Sell1 = 0; //
Sell11 = ..... ;   // пресечение мувинга
Sell12 = Short1 = .... ;  // пробой уровня
Cover1 = 0;
Cover11 = ...... ;  // пресечение мувинга
/// доливка ///
Buy2 = Buy1;
Short2 = Short1;
//////////////////// для Buy, например ////
Sell1 = Sell1 AND Buy1 == 0; // запрещение Sell1 при сигнале Buy1
Buy1 = ExRem(Buy1, Sell1 OR Sell11 OR Sell12); /// нужно ли тут фильтровать сигнал, как в посте чуть выше?????
Buy2 = Buy2 AND Buy1 == 0;  // для запрещения первоначальной доливки

// далее цикл с доливками и выходами

Имеет ли значение в какой последовательности идут строки:
Код:
Sell1 = Sell1 AND Buy1 == 0; // запрещение Sell1 при сигнале Buy1
Buy1 = ExRem(Buy1, Sell1 OR Sell11 OR Sell12); /// нужно ли фильтровать сигнал, как в посте чуть выше?????

или вообще все не правильно? ))))
Проблема возникает тогда, когда на предыдущей свече произошло пересечение мувинга, т.е. по сути sell, а на текущей свече идет вход Buy или доливка. Ну, и наоборот. В итоге куча ордеров бай-селл.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Непонятно в коде. У тебя
Sell1 = 0; //
и далее зачем то
Sell1 = Sell1 AND Buy1 == 0; // запрещение Sell1 при сигнале Buy1

Наверное надо Sell11 а про Sell1 вообще забыть т.к. он не используется.

По алгоритму.
А если одновременно идут
пересечение мувинга, т.е. по сути sell, а на текущей свече идет вход Buy или доливка то как надо поступать? Игнорируем Buy или Sell ???

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



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

СообщениеДобавлено: Чт Фев 28, 2013 12:11 pm Ответить с цитатой Вернуться к началу

Начнем с того, что я не программист, и могу не видеть очевидных вещей и усложняю простое )))
Обозначения Sell1, Sell11 и Sell12 - мне так проще привязать стратегию к роботу и не запутаться. В стратегии есть Sell, Sell1 Sell2 соответственно....
Вообще, Sell1 я использую в роботе как общий выход из цикла, поэтому и присваиваю вначале Sell1=0.
Выход из Buy в цикле:
Код:
else if(Sell11[i] AND position > 0)
  {
    Sell1[i] = 1;
    position = 0;
  }
else if(Sell12[i] AND position > 0)
  {
    Sell1[i] = 1;
    position = 0;
  }

Может, скорее лишними будут Sell12 и Cover12 или лучше оставить???

Т.к. хочется в итоге получить реверсивную систему, то важнее Buy и Short, соответственно Sell и Cover игнорируем в момент сигнала входа.
Sell и Cover используются исключительно как стопы.

Надеюсь, что понятно объяснил ))))
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Фев 28, 2013 2:10 pm Ответить с цитатой Вернуться к началу

Берем ЭТОГО робота.
Код в него пихаем такой
Код:

Buy1 = ....... ;  // пробой уровня
Short1 = .....;  // пробой уровня

Sell11 = ..... ;   // пресечение мувинга 
Sell11 = Ref(Sell11, -1); // сдвигаем сигнал
Cover11 = ...... ;  // пресечение мувинга
Cover11 = Ref(Cover11, -1); // сдвигаем сигнал

/// доливка ///
Buy2 = Buy1;
Short2 = Short1;

Sell1 = Sell11 OR Short1;
Cover1 = Cover11 OR Buy1;

Buy1 = ExRem(Buy1, Sell1);
Short1 = ExRem(Short1, Cover1);

//////////////////// для Buy, например ////
Sell1 = Sell1 AND Buy2 == 0; // запрещение Sell1 при сигнале Buy2
Cover1 = Cover1 AND Short2 == 0; // запрещение


Сигналы сдвигать больше не надо.

Вроде все должно заработать.

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



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

СообщениеДобавлено: Чт Фев 28, 2013 10:47 pm Ответить с цитатой Вернуться к началу

Хм, тогда вопрос еще... несколько...
У меня сдвиг сигнала расположен как в роботе на сайте - перед исполнительной частью после всех правил системы. Может, в том месте его /сдвиг/ и оставить? Очень удобно визуально контролировать что сдвигаешь, а что нет.

А с циклом что делать, когда я сразу в начале присваиваю значение Sell1?
Код:
else if(Sell1[i] AND position > 0)
  {
    Sell1[i] = 1;
    position = 0;
  }
Оставить одно такое условие? Так будет правильно?

А строка с запретом доливки не написана сознательно? Разве не будет входа и доливки одновременно, если не прописать:
Код:
Buy2 = Buy2 AND Buy1 == 0;  // для запрещения первоначальной доливки

Не пойму еще строку:
Sell1 = Sell1 AND Buy2 == 0; // запрещение Sell1 при сигнале Buy2
может, надо будет изменить на
Код:
Sell1 = Sell1 AND Buy1 == 0 OR Buy2 == 0; // запрещение Sell1 при сигнале Buy1 и Buy2
или это все мои бредни?
я просто физический смысл этой строки не понимаю... почему именно Buy2? Ведь может быть не только доливка в тот момент, но и вход...
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Ser писал(а):
Хм, тогда вопрос еще... несколько...
У меня сдвиг сигнала расположен как в роботе на сайте - перед исполнительной частью после всех правил системы. Может, в том месте его /сдвиг/ и оставить? Очень удобно визуально контролировать что сдвигаешь, а что нет.

На счет сдвига. Обычно, когда торгуют пробой сигнал исполняют не по закрытию, а именно в момент пробоя. Когда я писал код я имел ввиду именно такой подход. Если пробой ценой закрытия, то сдвиг нужен, но тогда там надо смотреть, а то я уже кое что насдвигал....
Ser писал(а):

А с циклом что делать, когда я сразу в начале присваиваю значение Sell1?
Код:
else if(Sell1[i] AND position > 0)
  {
    Sell1[i] = 1;
    position = 0;
  }
Оставить одно такое условие? Так будет правильно?

А зачем вообще нужен этот цикл?
Ser писал(а):

А строка с запретом доливки не написана сознательно? Разве не будет входа и доливки одновременно, если не прописать:
Код:
Buy2 = Buy2 AND Buy1 == 0;  // для запрещения первоначальной доливки

Не пойму еще строку:
Sell1 = Sell1 AND Buy2 == 0; // запрещение Sell1 при сигнале Buy2
может, надо будет изменить на
Код:
Sell1 = Sell1 AND Buy1 == 0 OR Buy2 == 0; // запрещение Sell1 при сигнале Buy1 и Buy2
или это все мои бредни?
я просто физический смысл этой строки не понимаю... почему именно Buy2? Ведь может быть не только доливка в тот момент, но и вход...

Это верное замечание.
Просто я не до конца разделил первоначальный сигнал и сигнал доливки.
Поэтому и в строке
Код:
Sell1 = Sell1 AND Buy2 == 0;

оставил только Buy2.
Это не правильно. Надо убрать Buy2 там, где Buy1 == 1.
И соответственно добавить в ограничение сигнала Sell
Т.е. если сдвиги не меняем, то
Код:

Buy1 = ....... ;  // пробой уровня
Short1 = .....;  // пробой уровня

Sell11 = ..... ;   // пресечение мувинга 
Sell11 = Ref(Sell11, -1); // сдвигаем сигнал
Cover11 = ...... ;  // пресечение мувинга
Cover11 = Ref(Cover11, -1); // сдвигаем сигнал

/// доливка ///
Buy2 = Buy1;
Short2 = Short1;

Sell1 = Sell11 OR Short1;
Cover1 = Cover11 OR Buy1;

Buy1 = ExRem(Buy1, Sell1);
Short1 = ExRem(Short1, Cover1);

Buy2 = Buy2 AND Buy1 == 0;
Short2 = Short2 AND Short1 == 0;

//////////////////// для Buy, например ////
Sell1 = Sell1 AND Buy2 == 0 AND Buy1 == 0; // запрещение Sell1 при сигнале Buy2
Cover1 = Cover1 AND Short2 == 0 AND Short1 == 0; // запрещение

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



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

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

Со сдвигом мне все понятно, пробой формируется на текущей свече, а индикаторы по закрытию. Я спрашивал можно ли оставить сдвиг отдельным блоком после правил входа перед исполнительной частью робота...
Цитата:
А зачем вообще нужен этот цикл?
У меня доливки прописаны в цикле, ну заодно я и "стопы" туда прикрутил... хотя понимаю, конечно, что стопы можно и отдельно... чисто академический интерес - корректно ли так записать цикл?

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


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

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

Ser писал(а):
Со сдвигом мне все понятно, пробой формируется на текущей свече, а индикаторы по закрытию. Я спрашивал можно ли оставить сдвиг отдельным блоком после правил входа перед исполнительной частью робота...

Конечно можно отдельно. Просто мне показалось так удобнее.

Ser писал(а):

У меня доливки прописаны в цикле, ну заодно я и "стопы" туда прикрутил... хотя понимаю, конечно, что стопы можно и отдельно... чисто академический интерес - корректно ли так записать цикл?

Вроде нормально.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen