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



Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны

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

Угу, понятно вроде. Пусть поработает, посмотрю на него.
Спасибо.
Посмотреть профиль Отправить личное сообщение ICQ Number
Avante



Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны

СообщениеДобавлено: Ср Июн 03, 2009 3:04 pm Ответить с цитатой Вернуться к началу

Ну вот, все работает.
Олегу большая благодарность.
Теперь робот системно сливает, все как задумано. Smile
Посмотреть профиль Отправить личное сообщение ICQ Number
pongo



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

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

Торгуем фьючерс на индекс ртс. Настройки:

Image Image

Код отправки заявки в квик взят с главной страницы этого сайта. У робота написано вот такое:
Код:
Buy = LastValue(Ref(Buy, -1));
Sell = LastValue(Ref(Sell, -1));
Short = LastValue(Ref(Short, -1));
Cover = LastValue(Ref(Cover, -1));


1. Можно ли сделать так, чтобы робот входил не после закрытия свечи, а в последние 20 секунд ее формирования?

2. Как сделать так, чтобы стоп срабатывал (отправлял заявку в квик) моментально, а не после закрытия свечи?

Стопы я делал свои, в цикле. Выглядят они примерно вот так:
Код:
// для лонга
if (L[i] <= stop) {
  Sell[i] = 2;
  SellPrice[i] = stop;
}


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


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

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

Можно.
Надо убрать сдвиг сигналов на следующий бар
Код:

Buy = LastValue(Buy);
Sell = LastValue(Sell);
Short = LastValue(Short);
Cover = LastValue(Cover);

И потом добавить фильтр по времени на основе Now(2)

По стопам думаю можно и так и так. Тут надо смотреть как будет работать....

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



Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны

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

Код:

Buy = LastValue(Ref(Buy, -1));
Sell = LastValue(Ref(Sell, -1));
Short = LastValue(Ref(Short, -1));
Cover = LastValue(Ref(Cover, -1));



Олег, скажи пожалуйста, что именно "шаманить" в коде, чтобы сигналы стопов на следующий бар не уезжали?
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

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

Убрать сдвиг.
Код:

Buy = LastValue(Buy);
Sell = LastValue(Sell);
Short = LastValue(Short);
Cover = LastValue(Cover);

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



Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны

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

000 писал(а):
Убрать сдвиг.


А еще решение есть?
Если убрать сдвиг, конечно, доходность хороша, но очень часто возникают ситуации пропадания сигнала.
И вот тут ошибки съедают все...
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

СообщениеДобавлено: Сб Окт 24, 2009 8:16 am Ответить с цитатой Вернуться к началу

Все другие решения будут иметь тот же эффект. Либо сдвигаешь сигнал и сделка заключается в самом начале следующего бара либо система должна быть написана так, чтобы сигналы не могли пропадать....

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



Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны

СообщениеДобавлено: Сб Окт 24, 2009 8:29 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Все другие решения будут иметь тот же эффект. Либо сдвигаешь сигнал и сделка заключается в самом начале следующего бара либо система должна быть написана так, чтобы сигналы не могли пропадать....


Я не смогу сам это написать, уже два месяца бьюсь над решением этой проблемы.
Может, давай в личке обсудим? У меня еще вопросы есть.
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

СообщениеДобавлено: Сб Окт 24, 2009 8:30 pm Ответить с цитатой Вернуться к началу

Давай

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



Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны

СообщениеДобавлено: Вс Окт 25, 2009 1:44 pm Ответить с цитатой Вернуться к началу

Переписал правила входа, выхода и стопы на циклах.
Не могу найти ошибку, помогите, пожалуйста.
Посмотреть профиль Отправить личное сообщение ICQ Number
Avante



Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны

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

Уф...
так переделал, как в примере у Олега.
Но у меня где-то ошибка в логике. Не могу понять где.
еще немного, и мой маленький моск взорвется...
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

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

Скобки не хватает. Вот в этом месте
Код:

  else if(position == 1) // в противном случае если лонг
   {
    if(CondSH[i]) { // условия закрытия лонга
      Sell[i] = 1; // продажа на текущем баре
      position = 0; // система не в позиции
    if(L[i] < StopLG) // проверка уровня срабатывания стопа при лонге
    {
       Sell[i] = 1; // закрытие лонга
       SellPrice[i] = stop;
       position = 0;
    }
  }

Надо так
Код:

  else if(position == 1) // в противном случае если лонг
   {
    if(CondSH[i]) { // условия закрытия лонга
      Sell[i] = 1; // продажа на текущем баре
      position = 0; // система не в позиции
    }
    if(L[i] < StopLG) // проверка уровня срабатывания стопа при лонге
    {
       Sell[i] = 1; // закрытие лонга
       SellPrice[i] = stop;
       position = 0;
    }
  }

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


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

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

Кстати говоря.
Иногда, для сложных кодов пользуюсь в качестве редактора вот таким халявным. RJ TextEd
Сделал для него даже подсветку синтаксиса.
Одно из удобств
Выделяем открывающую скобку и он автоматически показывает закрывающую. Очень удобно когда скобок много.

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



Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны

СообщениеДобавлено: Пн Ноя 02, 2009 12:34 pm Ответить с цитатой Вернуться к началу

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen