Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Роботы |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 След. |
Автор |
Сообщение |
Яхфар
Зарегистрирован: 24.04.2011
Сообщения: 74
|
Можно ли в робота засунуть несколько систем подобным образом:
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
|
Да, только вместо SetPositionSize( 1, spsShares); надо использовать переменную Lots |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
Яхфар
Зарегистрирован: 24.04.2011
Сообщения: 74
|
|
Посмотреть профиль Отправить личное сообщение |
|
Яхфар
Зарегистрирован: 24.04.2011
Сообщения: 74
|
Выдает ошибки:
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
|
Это точно не верно:
SetPositionSize( 1, Lots);
Вместо этого надо писать так:
Lots = 1;
Насчет проблем с сигналами.
Добавь в начало кода сигнала инициализацию всех этих массивов нулями.
Ну и убедись что у тебя инструменты имеют такие имена какие проверяется в if - кажись ни один if не исполнился. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
Яхфар
Зарегистрирован: 24.04.2011
Сообщения: 74
|
проверил чисто систему она вполне тестится..... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Яхфар
Зарегистрирован: 24.04.2011
Сообщения: 74
|
spitfire писал(а): |
Насчет проблем с сигналами.
Добавь в начало кода сигнала инициализацию всех этих массивов нулями.
. |
не знаю как это сделать |
|
|
Посмотреть профиль Отправить личное сообщение |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Перед кодом c if() поставь строчки:
Buy = 0; Sell = 0; и т.д.
Проверь что код заходит в if-конструкцию. Сделай переменную, которую будешь изменять если код попал в if, и далее выведи ее c помощью POPUPWINDOW. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
Яхфар
Зарегистрирован: 24.04.2011
Сообщения: 74
|
Добавил Buy = 0; Sell = 0; Cover = 0; Short = 0; перед if
Ошибки исчезли, но теперь пишет: не задан двузначный номер в поле Fullname. Не задан размера TickSize.
причем когда одним торгую он нечего подобного н еписал |
|
|
Посмотреть профиль Отправить личное сообщение |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Убей в коде робота эту строчку - она нафик не сдалась для работы
Ну или задай соответствующие поля - выбор за тобой |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
Яхфар
Зарегистрирован: 24.04.2011
Сообщения: 74
|
Сама логика интересна, почему он не видит?
В амих правилах системы задать? точнее написать строки ticksize и fullname |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Яхфар
Зарегистрирован: 24.04.2011
Сообщения: 74
|
щас потестил на минутках, сделка проходят так как надо, по обоим инструментам, несмотря на сообщения про ошибки
Что лучше грохнуть это:
PopupWindow( "Не задан размер тика значение TickSize", "ошибка", timeout = 5, left = -1, top = -1 );
PopupWindow( "Не задан двузначный номер в поле FullName", "ошибка", timeout = 15, left = -1, top = -1 );
или прописать лучше где надо? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Грохни оба вместе с if'ами, которые эти попапы активизируют
Поля ticksize & information можно задать в свойствах символа, которым ты торгуешь (Symbol - Information)
Вообще ticksize надо бы прописать - он нужен чтобы правильную цену выставлять в заявке чтобы квик ее схавал. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
Яхфар
Зарегистрирован: 24.04.2011
Сообщения: 74
|
В information я всё создал, точнее переименовал, если бы там нечего не менял бы, то заявки бы н е поступали бы в квик. Есть мысли почему эти сообщения вообще выходят..... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Не помню - надо код робота смотреть. Предлагаю их просто удалить и не париться. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
|
Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Роботы |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|