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



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

СообщениеДобавлено: Ср Фев 24, 2010 1:57 pm Ответить с цитатой Вернуться к началу

Удивительно, но всё работает в онлайне! В смысле - приказы, позиция и лог пишутся в файлы, в нужное время. До Смарта пока эти приказы не довожу - днем слишком опасно на настоящем счете...

В лог пишутся строки типа

24.02.2010 13:26:07 GAZP_FT
24.02.2010 13:32:58 GAZP_FT

код, их задающий, как Вы и написали
str = Now(0) + " " + Name() + " ";

Я хотел было добавить к нему цену закрытия предпоследнего бара.

Попробовал
str = Now(0) + " " + Name() + " " Ref (Close, -1 ) ; не принимает

пробовал

Cena = NumToStr( Ref (Close, -1 ) ) ;
str = Now(0) + " " + Name() + " " Cena ; не принимает

даже пробовал
Cena=NumToStr (Close[BarCount-2] ) ;
str = Now(0) + " " + Name() + " " Cena ; все равно syntax error

Как в строчную переменную вставить цену из прошлого бара? в хелпе совсем мало примеров...
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Фев 24, 2010 3:46 pm Ответить с цитатой Вернуться к началу

Оно и должно в онлайн работать. Smile
А строка у меня примерно так
str = Now(0) + " " + Name() + " текущая цена = " + С[BarCount - 2] ;

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



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

СообщениеДобавлено: Ср Фев 24, 2010 11:39 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Оно и должно в онлайн работать. Smile
А строка у меня примерно так
str = Now(0) + " " + Name() + " текущая цена = " + С[BarCount - 2] ;


Извините - Error 30. Syntax error.
Курсор указания ошибки начинает мигать после последнего плюса, перед С

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


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

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

Ну конечно будет мигать. Я по невнимательности вместо англ русскую эС написал. Smile

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



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

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

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

ApplyStop(stopTypeTrailing, stopModePoint, 20, True );

бесполезно. Робот же не знает когда и по-чем продали... и Снова эта проблема ложных-повторных Buy. Посмотрел коды роботов, выложенных здесь на форуме... там нету ApplyStop

В ами-роботах для реальной торговли (не тестировании) вообще не используют встроеный ApplyStop ?

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


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

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

Робот не знает, а вот стратегия знает. Реальная сделка по цене скорее всего немного отличается от теоретической (скользяк). В общем. Пишешь систему. Пишешь стопы (ApplyStop), активизируешь их при помощи функции Equity(1) (читей хелпер по этой функции и особенно коментарии).
В результате появляются сигналы на закрытие позиций инициированные срабатыванием стопов. Они отличаются от обычных тем, что значение например Sell равно не 1, а 2, 3, 4, 5 или 6 в зависимости от типа стопа. Ничто не мешает эти сигналы использовать в роботе.

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



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

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

000 писал(а):
Пишешь стопы (ApplyStop), активизируешь их при помощи функции Equity(1) (читей хелпер по этой функции и особенно коментарии).
В результате появляются сигналы на закрытие позиций инициированные срабатыванием стопов. Они отличаются от обычных тем, что значение например Sell равно не 1, а 2, 3, 4, 5 или 6 .

Сегодня попробовал гонять робота на BarReplay и режиме Explore... Похоже, я плохо понимаю, в каком месте надо вставлять Equity для сработки трэйлинга и при этом, проверки позиции...

вот этот вот код - покупает вовремя, но продает-выходит только в конце дня. Трейлинг не работает. Я пытался переставлять Equity( 1 ), но добился только что и Buy перестает отдаваться... Посмотрите пожалуйста - где надо вставить ApplyStop и где Equity( 1 ) ?

canstar = TimeNum() >105000;
noend = TimeNum() < 162700;
endday = TimeNum() >162800;

Buy = canstar AND noend AND .... условия входа;
Sell = endday;

ApplyStop(stopTypeTrailing, stopModePoint, 0.6, True );

pos = readposition(); // вызываем function readposition() и узнаем нашу позицию

sendBuy = Buy AND pos < 0;
sendSell = Sell AND pos > 0;

eq = Equity( 1 ); //запускаем аплистоп

AddColumn(Sell, "Sell", 1.0, colorDefault, colorDefault);
AddColumn(Buy, "Buy", 1.0, colorDefault, colorDefault);

if(sendBuy[BarCount-2]) {
orderbuy();
writeposition(1);
writelog(str);
}

if(sendSell[BarCount-2]) {
ordersell();
writeposition(-1);
writelog(str);
}

AddColumn(pos, "position", 1.0, colorDefault, IIf(pos>0, colorGreen, colorDefault));
AddColumn(eq, "equity", 1.0, colorDefault, IIf(pos>0, colorGreen, colorDefault));
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Даже в таком виде есть ошибки. Но указывать не буду. Форум иногда искажает код. Пользуйся тегами Code /Code или прикрепляй код к сообщению. Тогда разберем все ошибки... А то фиг знает чего и сколько движок форума из кода вырезал....

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



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

СообщениеДобавлено: Пн Мар 08, 2010 11:20 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Даже в таком виде есть ошибки. Но указывать не буду. Форум иногда искажает код. Пользуйся тегами Code /Code или прикрепляй код к сообщению. Тогда разберем все ошибки... А то фиг знает чего и сколько движок форума из кода вырезал....

Кажется, он искажает если в свойствах сообщения забыть указать "Отключить HTML".

Я между тем, надеюсь, разобрался - Equity не срабатывала из-за моей невнимательности. Я думал, что у нее признак "дипазон котировок: -1 : (по умолчанию) использует диапазон установленый в Automatic analysis " ---относится и пункту диапазона "N last quotes".

А оказывается нет - даже если в АА тригер Range не установлен на "from dates" - Equity даты оттуда все равно считывает. Надо или менять их или свои даты прописывать в коде... Извините за отнятое время.
Посмотреть профиль Отправить личное сообщение
VladimirN



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

СообщениеДобавлено: Вс Мар 21, 2010 1:40 am Ответить с цитатой Вернуться к началу

Подумал, что будет некрасиво, если я не отчитаюсь о результатах. Прилагаю код простейшего работающего робота для Смарта. Проверялся со SmartTrade 5.3 версии от августа 2009г. В смарте надо включить прием приказов из текстового файла и прописать их каталог C:\order Обязательно используйте в Смарте подтверждения приказов!!!

Лог-файл робота и файл-контроля позиции должны лежать в том же каталоге.

Робот запускался в режиме Explore. с онлайн-трансляцией котировок. Устойчив к разрывам связи. В том смысле, что не дает ложных сигналов при восстановлении и докачке баров, ибо Ами+esignals докачивают бары акуратно. Жаль только они ФОРТС из Смарта не могут взять...
Посмотреть профиль Отправить личное сообщение
gerra96



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

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

VladimirN писал(а):
Подумал, что будет некрасиво, если я не отчитаюсь о результатах. Прилагаю код простейшего работающего робота для Смарта. Проверялся со SmartTrade 5.3 версии от августа 2009г. В смарте надо включить прием приказов из текстового файла и прописать их каталог C:\order Обязательно используйте в Смарте подтверждения приказов!!!

Лог-файл робота и файл-контроля позиции должны лежать в том же каталоге.

Робот запускался в режиме Explore. с онлайн-трансляцией котировок. Устойчив к разрывам связи. В том смысле, что не дает ложных сигналов при восстановлении и докачке баров, ибо Ами+esignals докачивают бары акуратно. Жаль только они ФОРТС из Смарта не могут взять...


новый плагин к амиброкеру http://www.itinvest.ru/forum/index.php?showtopic=63382&pid=253955&st=0&#entry253955
Посмотреть профиль Отправить личное сообщение
Teema



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

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

Процесс идет!
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Craft



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

СообщениеДобавлено: Ср Ноя 10, 2010 9:28 pm Ответить с цитатой Вернуться к началу

Бразы, у разработчиков из ITinvest появились вопросы:

-------------------------------
Написал: Андрей Осташов
Предполагается, что плагин будет обрабатывать приказы market, limit, stop и stop limit.
...
Приказы можно будет выставлять, снимать и передвигать (последнее только дл FORTS).
...
Все описанное выше практически уже разработано - осталось подпилить мелочи.

А вот дальше у нас планируются проблемы.
Чтобы получать данные о состоянии приказов (выставлен, исполнен, частично исполнен, снят) AmiBroker должен уметь работать с потоковыми данными (callback-и обрабатывать). Мы никак не можем окончательно разобраться умеет ли он это или нет. По-видимомому, придется провести отдельный research на эту тему.
Коллеги, у кого-нибудь есть возможность проконсультировать нас на эту тему?


В принципе можно ограничиться только выставлением, передвижением и снятием, контролируя все это в SmartTrade.
Но как-то пошло получится. Ради чего копья ломали?

Кроме того, с обработкой потоков связаны и большие планы на будущее. Вплоть до трансляции в AmiBroker состояния торгового портфеля.
Это не обязательство, это мечты! Smile
-------------------------------

Кто может проконсультировать разработчиков, помогите пожалуйста:
http://www.itinvest.ru/forum/index.php?showtopic=63382&pid=255371&st=120&#entry255371
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Ноя 10, 2010 10:55 pm Ответить с цитатой Вернуться к началу

Одно из двух. Или люди на столько грамотнее меня, что я вопрос не понял или они настолько не понимают.
Все делается в плагине. Ами переодически опрашивает его. Пришло в плагин по ком событие, плагин себе это "записал". Когда Ами опросит плагин то увидит, что блаблабла...
Заставить передать в Ами от плагина инфу, что событие произошло вроде нельзя. Как часто ами будет опрашивать плагин на предмет изменений зависит от того, как используется AFL. Если в АА и scan 5 мин, то раз в 5 минут опросит и т.д....
В дата плагине можно сообщать ами о том, что произошло событие
WM_USER_STREAMING_UPDATE в AFL плагине такого нет.

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



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

СообщениеДобавлено: Ср Ноя 17, 2010 1:25 am Ответить с цитатой Вернуться к началу

000, спасибо, разработчики услышали Ваш ответ.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen