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


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

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

Да незачто.
При случае отпишись как работает.

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



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

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

Подскажите, Lots может быть фунцией , если да то как ее прописать, если она считается в другом индикаторе и можно ли ее передать с помощью #include
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Может быть функцией.
Записать так
Код:
Lots = .....;
Lots = Lots[BarCount-2];


include передать скорее всего можно, но зависит от конкретного случая и вообще я include не пользуюсь никогда.

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



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

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

include вроде тормозит AFL? Тоже не использую...
000 писал(а):
Да незачто.
При случае отпишись как работает.

Пока нареканий нет. Особенно удобен твой AS_File плагин.
Но нужен совет. Столкнулся с общей проблемой у себя.
Во избежание двух сделок за один бар, слепил такую вот конструкцию:
Код:

INDX = LastValue(BarIndex());
POS = AS_READ_PARAM(ROBO, FUT, "POSITION");
BAR = AS_READ_PARAM(ROBO, FUT, "BAR");

if(GO_LONG[BarCount-1] AND INDX[BarCount-1] > BAR)
{
    switch(POS)
   {
      case -1:
         ORDER (2*LOTS, "B", LastValue(C)+SLIPP);
         AS_WRITE_PARAM(ROBO, FUT, "POSITION", 1);
         AS_WRITE_PARAM(ROBO, FUT, "BAR", INDX);
      case  0:
         ORDER (LOTS, "B", LastValue(C)+SLIPP);
         AS_WRITE_PARAM(ROBO, FUT, "POSITION", 1);
         AS_WRITE_PARAM(ROBO, FUT, "BAR", INDX);
      default: AS_WRITE_FILE(LOGS, "Сбой позиции, пытаемся войти в LONG, будучи уже в LONG, либо ошибка записи позиции");

   }
}

if(GO_SHORT[BarCount-1] AND INDX[BarCount-1] > BAR)
{
    switch(POS)
   {
      case 1:
         ORDER (2*LOTS, "S", LastValue(C)-SLIPP);
         AS_WRITE_PARAM(ROBO, FUT, "POSITION", 1);
         AS_WRITE_PARAM(ROBO, FUT, "BAR", NumToStr(INDX));
      case  0:
         ORDER (LOTS, "S", LastValue(C)-SLIPP);
         AS_WRITE_PARAM(ROBO, FUT, "POSITION", 1);
         AS_WRITE_PARAM(ROBO, FUT, "BAR", INDX);
      default: AS_WRITE_FILE(LOGS, "Сбой позиции, пытаемся войти в SHORT, будучи уже в SHORT, либо ошибка записи позиции");

   }
}

if(EX_LONG[BarCount-1] AND INDX[BarCount-1] > BAR)
{
    switch(POS)
   {
      case 1:
         ORDER (LOTS, "S", LastValue(C)-SLIPP);
         AS_WRITE_PARAM(ROBO, FUT, "POSITION", 0);
         AS_WRITE_PARAM(ROBO, FUT, "BAR", INDX);
      default: AS_WRITE_FILE(LOGS, "Сбой позиции, пытаемся выйти из LONG не имеея позиции либо ошибка записи позиции");
   }
}

if(EX_SHORT[BarCount-1] AND INDX[BarCount-1] > BAR)
{
    switch(POS)
   {
      case -1:
         ORDER (LOTS, "B", LastValue(C)+SLIPP);
         AS_WRITE_PARAM(ROBO, FUT, "POSITION", 0);
         AS_WRITE_PARAM(ROBO, FUT, "BAR", INDX);
      default: AS_WRITE_FILE(LOGS, "Сбой позиции, пытаемся выйти из LONG не имеея позиции либо ошибка записи позиции");
   }
}

Ну и столкнулся с тем, что всё работает.)))) Правда оказалось, что на одном баре может быть две сделки, например, выход из Long и вход в Short.
Как быть не подскажешь?
На опции default шибко не ругайся, это я так, шутки ради оставил... По идее их быть не должно.)))
Я, конечно, и сам придумаю, но думать буду дольше...
Ну и попутный вопрос, сколько может быть AND позиций в условном операторе if()??
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

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

А зачем ты переворот делаешь одной сделкой?
Делай закрыть лонг, открыть шорт.
Типа если EX_LONG если POS > 0 то ORDER (LOTS, "S", LastValue(C)-SLIPP); и запись pos = 0
и если GO_SHORT если pos == 0 то ORDER (LOTS, "S", LastValue(C)-SLIPP); и запись pos = -1

У тебя там кстати очепятка всралась
Код:
if(GO_SHORT[BarCount-1] AND INDX[BarCount-1] > BAR)
 {
     switch(POS)
    {
       case 1:
          ORDER (2*LOTS, "S", LastValue(C)-SLIPP);
          AS_WRITE_PARAM(ROBO, FUT, "POSITION", 1);
          AS_WRITE_PARAM(ROBO, FUT, "BAR", NumToStr(INDX));
       case  0:
          ORDER (LOTS, "S", LastValue(C)-SLIPP);
          AS_WRITE_PARAM(ROBO, FUT, "POSITION", 1);
          AS_WRITE_PARAM(ROBO, FUT, "BAR", INDX);

Почему 1 в AS_WRITE_PARAM(ROBO, FUT, "POSITION", 1); ???

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



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

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

000 писал(а):
А зачем ты переворот делаешь одной сделкой?
Делай закрыть лонг, открыть шорт.
Типа если EX_LONG если POS > 0 то ORDER (LOTS, "S", LastValue(C)-SLIPP); и запись pos = 0
и если GO_SHORT если pos == 0 то ORDER (LOTS, "S", LastValue(C)-SLIPP); и запись pos = -1

Так ведь меня не пустит номер Бара делать вторую сделку на этом же баре (переменная BAR = AS_READ_PARAM(ROBO, FUT, "BAR"); не дозволит).
Ну и кроме того есть бары, где есть выход из LONG, но нет входа в SHORT. Тоже самое в обратную, есть COVER, но нет захода в LONG.
000 писал(а):
У тебя там кстати очепятка всралась
Да, уже исправил это, просто старый код под руку попался. Великий Бог Копипаста при написании кодов и не так меня ещё подводил=)))
Посмотреть профиль Отправить личное сообщение ICQ Number
kosbar



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

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

Надо чтобы при LONG (EX_LONG) не было возможно EX_LONG (LONG) на одном баре, но был возможен SHORT... Ну и наоборот.
Хыхы)))))
Один бар должен допускать только одну сделку LONG или SHORT, но если на баре случился EX_LONG или EX_SHORT, то должна быть возможность SHORT и LONG соотвественно...

Вроде бы всё просто: не нужно запоминать номер бара при закрытии любой из позиций (будь то лонг или шорт), чтобы была возможно входа в противоположную, но при сильной волатильности меня может повторно запихать в только что закрытую позицию, очень мало вероятно, но возможно...
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

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

Ну.
Вот смотри. На примере лонга.
Есть сигнал на лонг. Смотрим pos. Если == 0, то лонг разрешен, если нет, то и сделки нет. и т.д.
Сделай закрытие лонга = шорт и всего делов....
Тогда если лонг pos == 1. Появился шорт, соответственно появилось закрытие лонга. Если pos == 1, то сработает закрытие лонга и pos станет == 0 (шорт при pos == 1 не сработает), а при следующем прогоне pos уже == 0 а шорт никуда не исчез. Соответственно сработает шорт при pos == 0

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



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

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

Привет всем!
Тоже этим роботом занимаюсь - вылез странный косяк -
робот работает, даже если не стоит галка у "Run every".
В смысле, если робот бы запущен, а потом галка снимается, транзакции продолжают поступать в квик.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Так всегда или только один раз было?

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



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

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

000 писал(а):
Ну.
Вот смотри. На примере лонга.
Есть сигнал на лонг. Смотрим pos. Если == 0, то лонг разрешен, если нет, то и сделки нет. и т.д.
Сделай закрытие лонга = шорт и всего делов....
Тогда если лонг pos == 1. Появился шорт, соответственно появилось закрытие лонга. Если pos == 1, то сработает закрытие лонга и pos станет == 0 (шорт при pos == 1 не сработает), а при следующем прогоне pos уже == 0 а шорт никуда не исчез. Соответственно сработает шорт при pos == 0

Случился лонг, зашли, поднялась волатильность и мы на этом же баре вышли из лонг - не есть хорошо. Для этого я стал записывать ещё и номер бара (свечи).
Теперь один бар - одна сделка. Но при этом отсекли сделку в противоположную сторону закрытой на этом баре позиции: закрыли лонг, и не вошли в шорт, потому что уже записали номер бара...
И объединить шорт с выходом из лонг нельзя - такое не каждый раз случается.
Короче, я придумал вроде как, нужон дополнительный триггер. Либо как-то вымучить параметр POS особо хитрым способом.
Посмотреть профиль Отправить личное сообщение ICQ Number
BRTO



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

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

000 писал(а):
Так всегда или только один раз было?

Несколько раз, проверял.
Может это глюк бета-версии 5.44? В принципе, это не смертельно, т.к. можно отключить прием транзакций в квике.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

У меня ни разу эксплорер так не зависал....

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



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

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

Кто-нть вход по рынку пробовал, стоящая вещь?))
Посмотреть профиль Отправить личное сообщение ICQ Number
spitfire



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

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

Думаю только для тех кто торгует по дневкам и выше Smile Остальные идут мимо.
Посмотреть профиль Отправить личное сообщение ICQ Number
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen