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



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

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

Обнаружил приписку, которая убила не только меня, но и всю мою систему -
"Робот написан так, что выставляет заявки сразу после закрытия бара на котором получен сигнал. Фактически сразу на открытии следующего бара."
Evil or Very Mad Evil or Very Mad Evil or Very Mad
Черт, а если у меня система на пробой Хаев??? Exclamation
Сделка должна открываться, если Н новой свечки зайдет за границу прошлого Н, а закрываться по Клоуз этой свечки. Если будем открывать сделки по Клоуз, то ... Mad Mad Mad ну сами понимаете...

ВЫРУЧАЙТЕ! Crying or Very sad

Что делать то? Question
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Робот меховский?

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



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

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

000 писал(а):
Робот меховский?


Ну, вот тот что на сайте лежит- //// mehanizator (c) 2004,
http://www.amisite.ru/afl/exp/0001.htm
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Так. Ну и в чем проблема? Достаточно просто разобраться что там и к чему и сразу видно, что сигнал сдвигается на начало следующего бара тут
Код:
Buy = LastValue(Ref(Buy, -1));
Sell = LastValue(Ref(Sell, -1));
Short = LastValue(Ref(Short, -1));
Cover = LastValue(Ref(Cover, -1));

Т.е. если убрать Ref, то и сигналы будут исполняться немедленно.
Код:
Buy = LastValue(Buy);
Sell = LastValue(Sell);
Short = LastValue(Short);
Cover = LastValue(Cover);

Другой вопрос, что при этом надо внимательнее следить за возможными ошибками в коде.

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



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

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

Да??? Rolling Eyes А я принял "надпись" за чистую монету...

Но мне кажется, "это" задано в коде ниже -
Формируем транзакцию.

Код:

if (TimeFrame == Interval() & FullName() != "")
{
   if(Buy)
   {
      price = Close[BarCount-1] + Otstup;
      dir = "1";
      makeandsave("B", price);
   }
   if(Sell)
   {
      price = Close[BarCount-1] - Otstup;
      dir = "2";
      makeandsave("S", price);
   }
   if(Short)
   {
      price = Close[BarCount-1] - Otstup;
      dir = "3";
      makeandsave("S", price);
   }
   if(Cover)
   {
      price = Close[BarCount-1] + Otstup;
      dir = "4";
      makeandsave("B", price);
   }

}
else if (TimeFrame != Interval())


Нет? Question

И кстати, куда вставлять во эти строки-
_SECTION_BEGIN
_SECTION_END();
Как бы логично поставить их по краям кода, но подумал - может надо их ставить по краям непосредственно Условий или вообще не надо, что бы не нарушать mehanizatorа?[/code]
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Имеешь виду это Close[BarCount-1] ? Нет. Это просто особенность BarCount.
Строки
_SECTION_BEGIN
_SECTION_END();
Вообще никуда вставлять не надо. А зачем их вставлять?

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



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

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

Так, стоп... Тогда "эта" надпись для меня становиться все более загадочной.

Тогда я не понимаю имею ли право кардинально изменить в нем вот этот код:

Код:

////////// Правила системы ///////////////
Buy =  Cross(C, MA(C, 10));
Sell = Cross(MA(C, 10), C);
Short = Sell;
Cover = Buy;
//////////////////////////////////////////

Equity(1, 0);

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



... что бы это не повлияло непосредственно на работу входов/выходов.

Если "да" - тогда написали бы там, что то типа "Макет робота" и не писали бы о том, что он открывает сделки ТОЛЬКО по закрытию бара...

Собственно, меня из-за этого и "переклинило"... Sad

ЗЫ.
Как я понимаю, вот эти строки тоже не нужны?
Код:

SetBarsRequired(300000,30000);
SetChartOptions(0,chartShowArrows|chartShowDates);
SetPositionSize(1, 4);

Или что то вместо них написать?

ЗЗЫ.

А еще он пишет мне вот такую ошибку в коде
Код:

if (TimeFrame == Interval() & FullName() != "")
{
   if(Buy)
   {
      price = Close[BarCount-1] + Otstup;
      dir = "1";
      makeandsave("B", price);
   }
///////////
Error 6. Condition in IF, WHILE, FOR statements has to be Numeric or Boolean type. You can not use array here, please use [] (array subscript operator) to access array elements


...А там написано - !!!!СЮДА РУКАМИ НЕ ЛАЗИТЬ!!!! - вот...думаю... Rolling Eyes

ЗЗЗЫ.
А еще задолбала выпрыгивать надпись:
"Не соответствует временной интервал в настройках АА и в коде".
Все ведь правильно задал. Я десять раз проверил... Confused
В чем тут может быть проблема?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

давай так. Что делает робот? Он отслеживает сигналы системы, в конкретном примере эти
Код:

Buy =  Cross(C, MA(C, 10));
Sell = Cross(MA(C, 10), C);
Short = Sell;
Cover = Buy;

и записывает их в файл .tri который потом обрабатывает квик. При этом робот следит чтобы одна и та же запись не появлялась 2 раза. Поскольку данная конкретная системы отслеживает сигналы по закрытию бара было принято решение, что самый простой и соответственно надежный способ узнать, что бар действительно закрылся это дождаться появления следующего бара.
Для этого сигнал системы тупо передвинут на следующий бар. В результате если на закрытии бара возникает сигнал, то сразу по открытию следующего бара он будет записан в tri...
Если у тебя сигнал не по закрытию, то убирай сдвиг и вперед.
На счет
Код:
SetBarsRequired(300000,30000);
SetChartOptions(0,chartShowArrows|chartShowDates);
SetPositionSize(1, 4);

Первая строка роботу не нужна, но можнт понадобится некоторым системам. В общем её лучше вставить, хуже от неё точно не будет.
Вторая совершенно точно не нужна абсолютно
Третья строка влияет на работу функции Equity(). В принципе тоже можно вставить, хуже не будет.

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


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

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

Alex писал(а):

ЗЗЫ.

А еще он пишет мне вот такую ошибку в коде
Код:

if (TimeFrame == Interval() & FullName() != "")
{
   if(Buy)
   {
      price = Close[BarCount-1] + Otstup;
      dir = "1";
      makeandsave("B", price);
   }
///////////
Error 6. Condition in IF, WHILE, FOR statements has to be Numeric or Boolean type. You can not use array here, please use [] (array subscript operator) to access array elements


Скорее всего ты убрал LasValue тут.
Код:

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


Alex писал(а):

ЗЗЗЫ.
А еще задолбала выпрыгивать надпись:
"Не соответствует временной интервал в настройках АА и в коде".
Все ведь правильно задал. Я десять раз проверил... Confused
В чем тут может быть проблема?

Проблема может быть только в одном. не правильно задал.
Обязательно надо тут
Код:
TimeFrame      = 60;                  // таймфрейм в секундах.

и ТУТ опция Periodicity

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



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

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

Ага... все. Боюсь показаться "самым умным", но там нужно было просто в Квике включить импорт транзакций из файла.
Мне кажется это нигде не написано. А зря... Wink

Надеюсь, последний вопрос -
Теперь он пишет "Не правильный идентефикатор транзакции".

Вот тут я даже не знаю куда ткнуть... Confused
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Квик такое пишет?

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



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

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

000 писал(а):
Квик такое пишет?


Да, Квик.
Позвонил им в ТП, сказали, что в Information на АМИ нужно написать не Full name=RIM1, а какие нибудь 2 цифры.
Это исправил.

Теперь другое. Пишет "неправильный Класс". Это нужно поменять в Group 0...200.
Сейчас ищу как и на что...

ЗЫ.
Возможно, замена на 2 цифры тоже не совсем верно. Просто у меня пропала одна ошибка и появилась другая. Evil or Very Mad
Посмотреть профиль Отправить личное сообщение
Alex



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

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

Нашел для себя ответ тут:
http://amisite.ru/phpBB2/viewtopic.php?t=928&highlight=classcode

Посмотрим чего еще ОН придумает... Rolling Eyes
Посмотреть профиль Отправить личное сообщение
Alex



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

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

Cool Урааа! У меня получилось! Razz Razz Razz Razz Razz
И даже прибыльная сделка. Может оставить mehanizator торговать? Wink

Выражаю особую благодарность Олегу за посильную помощь. Smile

Если кто еще не знает, в Goup=SPBFUT для РТС.

Где бы посмотреть все эти обозначения для остальных инструментов?
(имею ввиду не только русские, но и америку)


Еще пару вопросов и закончим на этом...
...на сегодня... Rolling Eyes


1) Почему то открылась сделка на 2 лота, хотя у меня задан один?
Это потому что Cover = Buy; или какая то ошибка?

2) "Ламмерс форева". Как удалить из АМИ лишнюю Database? И как сделать, что бы нужная открывалась автоматически, а не та на которой случайно не убрал галочку при создании?
(не могу найти нужную кнопочку Embarassed )

3) Можно ли запустить на одном АМИ несколько ботов?
Это делается так же как и с одним?

4) Как сделать ограничение убытков? Имею ввиду не Стоп-Лосс, а %от Эквити.

Все. Еще раз спасибо. Smile
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Alex писал(а):
Позвонил им в ТП, сказали, что в Information на АМИ нужно написать не Full name=RIM1, а какие нибудь 2 цифры.
Это исправил.

Теперь другое. Пишет "неправильный Класс". Это нужно поменять в Group 0...200.
Сейчас ищу как и на что...

А инструкцию то не судьба была прочитать?
Там написано и про 2 цифры и про классы...
Alex писал(а):

1) Почему то открылась сделка на 2 лота, хотя у меня задан один?
Это потому что Cover = Buy; или какая то ошибка?

Посмотри файл tri. Там должно быть 2 записи на покупку с QUANTITY=1.
Смотри последную цифру в TRANS_ID= 1 - buy, 2 - sell, 3 - short, 4 - cover.
Alex писал(а):

2) "Ламмерс форева". Как удалить из АМИ лишнюю Database? И как сделать, что бы нужная открывалась автоматически, а не та на которой случайно не убрал галочку при создании?
(не могу найти нужную кнопочку Embarassed )

меню tools -> preferences, закладка Data. Там устанавливается БД по умолчанию.
Alex писал(а):

3) Можно ли запустить на одном АМИ несколько ботов?
Это делается так же как и с одним?

Нет. Надо делать один который будет работать за несколько.
Alex писал(а):

4) Как сделать ограничение убытков? Имею ввиду не Стоп-Лосс, а %от Эквити.

Вопрос непонятен.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen