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


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

СообщениеДобавлено: Ср Апр 25, 2012 9:48 pm Ответить с цитатой Вернуться к началу

Для этого надо запретить покупку если уже есть сигнал на закрытие покупки. Типа так
Код:

Buy = ...; // правила покупки
Sell = ..; // правила закрытия покупки

// изменяем правила покупки

Buy = Buy AND Sell == 0;
........

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



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

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

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


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

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

Нормально. Не обязательно фрейм базы должен совпадать с рабочим фреймом робота. Я написал желательно чтобы не перегружали робота работая на часовках с минутной базой. Ну и более высокий фрейм Ами может строить по разному в зависимости от настроек....

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



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

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

Точно. Проблема именно в настройках отображения была и, соответственно, в разных возможностях компановки двух одноминутных баров в один двухминутной. И в результате стратегия, запущенная как индикатор, иногда делала не то, что параллельно робот. Точнее робот воспринимал котировки с одной компановкой двухминуток, а индикатор другой. Вобщем все перепуталось, но причина яснаSmile Спасибо!
Посмотреть профиль Отправить личное сообщение
Slava8519



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

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

Спасибо, помогло! А вот еще вопрос как использовать команду AplyStop().

Там у меня сейчас получается так:

Buy= ;//вход по пробою
Sell= ;
Short= ;//вход по пробою
Cover= ;
-----------
Buy1 = Buy[BarCount - 1]; //AND Sell1 == 0;
Sell1 = (Sell[BarCount - 2] AND Buy[BarCount - 1]==0) OR Short;
Short1 = Short[BarCount - 1]; //AND Cover1 == 0;
Cover1 = (Cover[BarCount - 2] AND Short[BarCount - 1]==0) OR Buy;

Куда здесь можно вставить AplyStop(). И зачем нужна(и нужна ли) функция Equity(1);? При использовании AplyStop() можно ли использовать функцию ExRem, чтобы предотвратить повторное вхождение после срабатывания takeprofit-а, до того как будет выполнен Sell1 или Cover1. И как тогда правильно записывать Buy1=ExRem(Buy1,Sell1) или Buy=ExRem(Buy,Sell) ?

Заранее очень признателен!
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Функция ApplyStop() задает стопы. Чтобы она работала в роботе обязательно нужно превратить этот стоп в сигнал покупки или продажи на соответствующем уровне. Это делает функция Equity() так, что её использование для стопов в роботе обязательно.

А использовать ApplyStop() очень просто. Пиши её в системе в любом месте и в конце системы Equity.

Хотя мне больше нравиться делать стопы без ApplyStop

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



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

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

000 писал(а):
Вопросы и косяки сюда.

Здравствуйте! Подскажите пожалуйста. Мне нужно сделать изменяющийся отступ при выставлении заявок.
Otstup = H-C-50;
но робот выдает ошибку что неправильный AFL код. Как правильно написать чтобы отступ был изменяющимся в зависимости от некоторого условия?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

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

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



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

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

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

Нет-нет Smile все правильно понимаю. заявка будет выставлена у меня не маркетом, а лимитом в стакан в расчете на волатильность и взятии по более лучшей цене. у меня система протестирована с отступом уже. так вот мне и нужно чтобы отступ считался по параметрам свечей (H,C,L,C) в виде некоторой формулы. А робот не хочет так считать
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Otstup = LastValue(H-C)-50;

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



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

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

000 писал(а):
Otstup = LastValue(H-C)-50;

Спасибо! А Ref -1 не надо делать?
Посмотреть профиль Отправить личное сообщение
Дмитрий



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

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

000 писал(а):
Otstup = LastValue(H-C)-50;

Она получается дает значение текущей свечи. А нужно чтобы давала предыдущей. Ведь вход осуществляется по сигналу на предыдущей свече. нельзя это как нибудь написать?
Посмотреть профиль Отправить личное сообщение
Дмитрий



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

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

000 писал(а):
Otstup = LastValue(H-C)-50;


кажется вот так надо
Otstup = LastValue(Ref(H,-1)-Ref(C,-1))-50;
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Можно даже так
Код:

Otstup = LastValue(Ref(H - C,-1))-50;

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



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

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

Здравствуйте! Вот продолжаю пытаться сделать внятный takeprofit. Столкнулся с проблемой что команда AplyStop() по видимому требует цену входа, а так как я вхожу по пробою то команды BuyPrice() у меня нет(так как роботу не надо указывать цену входа).

Решил воспользоваться вашим роботом со стопом - там все удобно. Но возникла проблема: почему-то начинает покупать и продавать на одном баре, хотя без стопа все работает как часы. Помогите пожалуйста. Сейчас код выглядит так:


Buy =; вход по пробою

Sell =;

Buy=ExRem(Buy,Sell);
Sell=ExRem(Sell,Buy);

Short = ; вход по пробою

Cover = ;

Short=ExRem(Short,Cover);
Cover=ExRem(Cover,Short);
Stop = 2;
///////////Конец Системы////////////
Buy1 = Buy[BarCount - 1];
Sell1 = (Sell[BarCount - 2] AND Buy[BarCount - 1]==0) OR Short;
Short1 = Short[BarCount - 1];
Cover1 = (Cover[BarCount - 2] AND Short[BarCount - 1]==0) OR Buy;

/// стопы ///

if(pos > 0 AND C[BarCount-1] >= AS_READ_PARAM("Quik_Robot", Name(), "price")*(1 + Stop/100))
{
Sell1 = 1;
str = str + " сработал стоп при лонге";
}
if(pos < 0 AND C[BarCount-1] <= AS_READ_PARAM("Quik_Robot", Name(), "price")*(1 - Stop/100))
{
Cover1 = 1;
str = str + " сработал стоп при шорте";
}
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen