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



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

СообщениеДобавлено: Пт Окт 14, 2011 1:00 pm Ответить с цитатой Вернуться к началу

Можно ли в робота засунуть несколько систем подобным образом:


if(Name() == "SRZ1")
{
Period1 = Optimize("PeriodA", 5, 1, 50, 1);
Period2 = Optimize("PeriodB", 5, 1, 50, 1);
Top = Ref(HHV(C, Period1), -1);
Bot = Ref(LLV(C, Period2), -1);
Buy = Cover= Cross(C, Top);
Sell = Short= Cross(Bot, C);
SetPositionSize( 1, spsShares);

}
else if(Name() == "VBZ1")
{
Period3 = Optimize("PeriodAA", 10, 1, 50, 1);
Period4 = Optimize("PeriodBB", 5, 1, 50, 1);
Top = Ref(HHV(C, Period3), -1);
Bot = Ref(LLV(C, Period4), -1);
Buy = Cover= Cross(C, Top);
Sell = Short= Cross(Bot, C);
SetPositionSize( 1, spsShares);
}
Посмотреть профиль Отправить личное сообщение
spitfire



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

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

Да, только вместо SetPositionSize( 1, spsShares); надо использовать переменную Lots
Посмотреть профиль Отправить личное сообщение ICQ Number
Яхфар



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

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

Клево щас попробую
Посмотреть профиль Отправить личное сообщение
Яхфар



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

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

Выдает ошибки:

Equity(1, 0);



Buy = LastValue(Ref(Buy,
-----------------------^

Error 29.
Variable 'buy' used without having been initialized.


Ну и тоже самое для Cover, Sell...



Сам код:





////////// Правила системы ///////////////

if(Name() == "SRZ1")
{
Period1 = Optimize("PeriodA", 5, 1, 50, 1);
Period2 = Optimize("PeriodB", 5, 1, 50, 1);
Top = Ref(HHV(C, Period1), -1);
Bot = Ref(LLV(C, Period2), -1);
Buy = Cover= Cross(C, Top);
Sell = Short= Cross(Bot, C);
SetPositionSize( 1, Lots);

}
else if(Name() == "VBZ1")
{
Period3 = Optimize("PeriodAA", 5, 1, 50, 1);
Period4 = Optimize("PeriodBB", 5, 1, 50, 1);
Top = Ref(HHV(C, Period3), -1);
Bot = Ref(LLV(C, Period4), -1);
Buy = Cover= Cross(C, Top);
Sell = Short= Cross(Bot, C);
SetPositionSize( 3, Lots);
}

//////////////////////////////////////////

Equity(1, 0);

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


//////////// Формируем транзакцию.//////////////
////////////////////////////////////////////////
//////// !!!!СЮДА РУКАМИ НЕ ЛАЗИТЬ!!!! /////////
////////////////////////////////////////////////

Classcode = GroupID(1);
if(TickSize == 0)
Посмотреть профиль Отправить личное сообщение
spitfire



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

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

Это точно не верно:
SetPositionSize( 1, Lots);
Вместо этого надо писать так:
Lots = 1;

Насчет проблем с сигналами.
Добавь в начало кода сигнала инициализацию всех этих массивов нулями.
Ну и убедись что у тебя инструменты имеют такие имена какие проверяется в if - кажись ни один if не исполнился.
Посмотреть профиль Отправить личное сообщение ICQ Number
Яхфар



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

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

проверил чисто систему она вполне тестится.....
Посмотреть профиль Отправить личное сообщение
Яхфар



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

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

spitfire писал(а):


Насчет проблем с сигналами.
Добавь в начало кода сигнала инициализацию всех этих массивов нулями.
.


не знаю как это сделать
Посмотреть профиль Отправить личное сообщение
spitfire



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

СообщениеДобавлено: Пт Окт 14, 2011 4:04 pm Ответить с цитатой Вернуться к началу

Перед кодом c if() поставь строчки:
Buy = 0; Sell = 0; и т.д.
Проверь что код заходит в if-конструкцию. Сделай переменную, которую будешь изменять если код попал в if, и далее выведи ее c помощью POPUPWINDOW.
Посмотреть профиль Отправить личное сообщение ICQ Number
Яхфар



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

СообщениеДобавлено: Пт Окт 14, 2011 4:31 pm Ответить с цитатой Вернуться к началу

Добавил Buy = 0; Sell = 0; Cover = 0; Short = 0; перед if

Ошибки исчезли, но теперь пишет: не задан двузначный номер в поле Fullname. Не задан размера TickSize.

причем когда одним торгую он нечего подобного н еписал
Посмотреть профиль Отправить личное сообщение
spitfire



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

СообщениеДобавлено: Пт Окт 14, 2011 4:44 pm Ответить с цитатой Вернуться к началу

Убей в коде робота эту строчку - она нафик не сдалась для работы Smile
Ну или задай соответствующие поля - выбор за тобой Wink
Посмотреть профиль Отправить личное сообщение ICQ Number
Яхфар



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

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

Сама логика интересна, почему он не видит?

В амих правилах системы задать? точнее написать строки ticksize и fullname
Посмотреть профиль Отправить личное сообщение
Яхфар



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

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

щас потестил на минутках, сделка проходят так как надо, по обоим инструментам, несмотря на сообщения про ошибки

Что лучше грохнуть это:

PopupWindow( "Не задан размер тика значение TickSize", "ошибка", timeout = 5, left = -1, top = -1 );

PopupWindow( "Не задан двузначный номер в поле FullName", "ошибка", timeout = 15, left = -1, top = -1 );

или прописать лучше где надо?
Посмотреть профиль Отправить личное сообщение
spitfire



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

СообщениеДобавлено: Пт Окт 14, 2011 6:17 pm Ответить с цитатой Вернуться к началу

Грохни оба вместе с if'ами, которые эти попапы активизируют Smile
Поля ticksize & information можно задать в свойствах символа, которым ты торгуешь (Symbol - Information)
Вообще ticksize надо бы прописать - он нужен чтобы правильную цену выставлять в заявке чтобы квик ее схавал.
Посмотреть профиль Отправить личное сообщение ICQ Number
Яхфар



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

СообщениеДобавлено: Пт Окт 14, 2011 6:56 pm Ответить с цитатой Вернуться к началу

В information я всё создал, точнее переименовал, если бы там нечего не менял бы, то заявки бы н е поступали бы в квик. Есть мысли почему эти сообщения вообще выходят.....
Посмотреть профиль Отправить личное сообщение
spitfire



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

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

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen