Перейти к содержимому


Фото
* * * - - 2 голосов

SmartCOM data Plug-in для AmiBroker


  • Please log in to reply
472 ответов в этой теме

#441 Serval

Serval

    Участник

  • Трейдеры
  • PipPip
  • 155 сообщений

Отправлено 21 June 2012 - 11:10 AM

Прошу помощи от техподдержки.
Выставил три заявки тремя файлами
place_order?portfolio=ST21422-RF-01&security=RTS-9.12_FT&action=BUY&type=LIMIT&validity=DAY&price=130000&stop_price=0&amount=2
place_order?portfolio=ST21422-RF-01&security=RTS-9.12_FT&action=BUY&type=LIMIT&validity=DAY&price=129000&stop_price=0&amount=2
place_order?portfolio=ST21422-RF-01&security=RTS-9.12_FT&action=SELL&type=LIMIT&validity=DAY&price=133000&stop_price=0&amount=2
прошло, активны 1 на продажу 2 на покупку.
Могу отменить приказ на покупку по 130000:
cancel_order?portfolio=ST21422-RF-01&security=RTS-9.12_FT&action=BUY&type=LIMIT&price=130000&stop_price=0&amount=2
Могу отменить все приказы и на покупку, и на продажу:
cancel_order?portfolio=ST21422-RF-01&security=RTS-9.12_FT&action=ALL&type=LIMIT&price=130000&stop_price=0&amount=2
А вот отменить все приказы на покупку так и не смог.
Что нужно сделать?

#442 Эдуард Полозков

Эдуард Полозков

    Сотрудник ITinvest

  • Трейдеры
  • Pip
  • 81 сообщений

Отправлено 21 June 2012 - 03:23 PM

К сожалению, такого функционала (снять все заявки только на покупку или только на продажу) в текущей реализации плагина нет.


Прошу помощи от техподдержки.
Выставил три заявки тремя файлами
place_order?portfolio=ST21422-RF-01&security=RTS-9.12_FT&action=BUY&type=LIMIT&validity=DAY&price=130000&stop_price=0&amount=2
place_order?portfolio=ST21422-RF-01&security=RTS-9.12_FT&action=BUY&type=LIMIT&validity=DAY&price=129000&stop_price=0&amount=2
place_order?portfolio=ST21422-RF-01&security=RTS-9.12_FT&action=SELL&type=LIMIT&validity=DAY&price=133000&stop_price=0&amount=2
прошло, активны 1 на продажу 2 на покупку.
Могу отменить приказ на покупку по 130000:
cancel_order?portfolio=ST21422-RF-01&security=RTS-9.12_FT&action=BUY&type=LIMIT&price=130000&stop_price=0&amount=2
Могу отменить все приказы и на покупку, и на продажу:
cancel_order?portfolio=ST21422-RF-01&security=RTS-9.12_FT&action=ALL&type=LIMIT&price=130000&stop_price=0&amount=2
А вот отменить все приказы на покупку так и не смог.
Что нужно сделать?



#443 Старый пень

Старый пень

    Участник

  • Трейдеры
  • PipPip
  • 140 сообщений

Отправлено 22 June 2012 - 06:36 PM

Уважаемый Serval. Подскажите почему кусок программы робота кидает приказы без моего участия. Я его на график не накладывал. А он всё шлёт и шлёт приказы. Хорошо, что я путь в тестовую папку указал.

#444 Serval

Serval

    Участник

  • Трейдеры
  • PipPip
  • 155 сообщений

Отправлено 22 June 2012 - 07:29 PM

Уважаемый Serval. Подскажите почему кусок программы робота кидает приказы без моего участия. Я его на график не накладывал. А он всё шлёт и шлёт приказы. Хорошо, что я путь в тестовую папку указал.

Не очень понятно. Чем редактируеся код робота, если встроенным afl editor-ом, то он где-то на графиках, нужно поискать. Или код запускается АвтоАнализатором, там нужно выставить другой afl-файл.
Что такое тестовая папка?
По самому коду. Пусть Buy= Ref(Cross(Ma1,Ma2), -1); Если в коде не предусмотрено, что приказ уже отправлен один раз, на открытии следующего бара после пересечения, то весь этот бар Buy истинно, и код будет кидать приказ с частотой выставленной в АА, или с частотой обновления графика в Preferences, максимально 10 раз в секунду.

#445 Старый пень

Старый пень

    Участник

  • Трейдеры
  • PipPip
  • 140 сообщений

Отправлено 22 June 2012 - 09:35 PM

Где то на графиках ненужный индикатор, видимо, остался. Я периодически обновляю систему. В смысле совершенствую, что-нибудь добавляю или убираю ненужное. Потом сохраняю под другим номером. Имя то же, а номер другой. Потом старые индюки с графика удаляю. Путь указал не к той папке, которая в плагине, а к другой папке, просто чтобы проверить работу. Сначала действительно приказы слались раз в секунду !!! Замотался их удалять. Куски скрипта, которые приказы слали двойными слешами отгородил - типа текст. Один хрен приказы шли. Потом приказ к рисованию стрелок привязал... Теперь шлёт только когда стрелка появляется. Однако всё равно вчера после 00 часов почему-то приказы появились. Все индюки с графиков убрал и новые поставил. Код, который приказы посылал, переименовал. Посмотрю что получится.

#446 Старый пень

Старый пень

    Участник

  • Трейдеры
  • PipPip
  • 140 сообщений

Отправлено 22 June 2012 - 09:38 PM

Код, который приказы шлёт, вообще убрал с графиков и переименовал. То есть его и не было на графиках. Понаблюдаю.

#447 Старый пень

Старый пень

    Участник

  • Трейдеры
  • PipPip
  • 140 сообщений

Отправлено 22 June 2012 - 10:14 PM

В анализаторе в строке Formula какая-то формула написана. Её реально нет давно. А путь остался. Может из-за этого приказы появляться? Как её убрать? Что-то не убирается никак.

#448 Serval

Serval

    Участник

  • Трейдеры
  • PipPip
  • 155 сообщений

Отправлено 23 June 2012 - 12:48 AM

В анализаторе в строке Formula какая-то формула написана. Её реально нет давно. А путь остался. Может из-за этого приказы появляться? Как её убрать? Что-то не убирается никак.

Выбрать другую, например, машку, или открываешь новый чарт, кидаешь какой-нибудь индюк, потом идешь в редактор, и оттуда жмёшь на восклицательный знак (Автоматический Анализатор)в верхнем меню редактора, этот код идёт в АА и остаётся там. Возможно файлы создаются, когда из афл-редактора сохраняешь код робота, мышкой на применить индикатор в верхнем меню редактора.

#449 Старый пень

Старый пень

    Участник

  • Трейдеры
  • PipPip
  • 140 сообщений

Отправлено 23 June 2012 - 10:33 AM

Похоже, когда в AFL редакторе проверяю код на наличие ошибок, код ведь прогоняется, вот тогда и возникают непонятные приказы. Не уверен на 100% , но чудес ведь не бывает.

#450 Старый пень

Старый пень

    Участник

  • Трейдеры
  • PipPip
  • 140 сообщений

Отправлено 28 June 2012 - 08:54 PM

Уважаемый Админ! Ответьте пожалуйста, что происходит со строкой открытой позиции в файле OpenPosition.dat после закрытия позиции. И ещё... Администратор Амисайта говорит, что Амиброкер может общаться с торговой системой без участия текстовых файлов, и он знает как это делается !!! Свяжитесь с ним пожалуйста... http://amisite.ru/ph...er=asc&start=30

#451 Serval

Serval

    Участник

  • Трейдеры
  • PipPip
  • 155 сообщений

Отправлено 29 June 2012 - 04:08 AM

Выкладываю код Робота-индикатора для отсылки приказов через текстовые файлы и плагин амиброкер-Смартком.
Сделан на основе:
Источники: http://forex.kbpauk....e/0#Post#227883,
http://amisite.ru/ph...?t=1107&start=0
вариант работы через сканер Amibroker'а, который предложен Олегом 000 ( http://amisite.ru/ ).
http://amisite.ru/ph...r=asc&start=180

Что умеет: визуальные оповещения, возможность задания шага цены, возможность записывать/не записывать транзакции.
Отправка СМС по сигналу, отрисовка открытых позиций и выставленных заявок на графике а-ля СмартТрейд, выведение текстовой информации о позициях и заявках на график.
При использовании Амиброкеровского ApplyStop(...) выводит приказы в систему и рисует значки на графике.
Как использовать:
1. Устанавливаем СмартКом 2.2
2. Устанавливаем плагин http://www.itinvest....ic=63382&st=380, сообщение №400 Андрея Осташова по описанию в том же сообщении. В отличии от описания плагина, у меня установилась версия плагина 2.2.66
3.Регистрируем плагин, запустив от имени администратора файл regplugin.bat или через cmd
4. Распаковываем данный архив.
файл TextOrdersRobot.afl должен попасть в C:\...\AmiBroker\Formulas\Custom
остальные в C:\...\AmiBroker\transactions
файл RobotLog.txt -некий журнал учёта отправленных и отменённых приказов, рекомендуется удалять содержимое редактором раз в неделю. Сам файл (пусть пустой) должен обязательно присутствовать.
файл delit_old.bat - командный файл для чистки - удаляет все OLD файлы, рекомендуется запускать раз в неделю.
файл delit_new.bat - командный файл для чистки - удаляет все NEW файлы, после тестовых прогонов БарРеплеером, Гонять Строго во внерабочее время!!! Иначе приказы пойдут в систему. После прогонов проверить состояние в СмартТрейде.
файл TransacJournalLog -некий журнал учёта, создается Смарткомом, пока работает Ами, при выходе обнуляется.
Замечена одна особенность, файлы приказов.NEW с названиями, в которых используется русский язык не принимаются СмартКом и не исполняются. Только английские названия.
В коде робота перед запуском потребуется заменить секцию системы своими сигналами.Также потребуется внести изменения в настройки робота в соответствии с рабочим таймфреймом, торгуемым инструментом, счётом и путями до нужных файлов и установить символы, разрешенные для торговли Tickers.
Теперь кидаем код на график Амиброкера, если в параметрах включить Отправлять ли приказы на биржу? -YES? то робот заработает.
Если не включать, то можно просто смотреть открытые позиции и заявки на графике, торговли не будет.

#452 Старый пень

Старый пень

    Участник

  • Трейдеры
  • PipPip
  • 140 сообщений

Отправлено 29 June 2012 - 09:15 PM

А если его в Анализатор вставить в окно Formula, будет ли работать со стопами, которые есть в Анализаторе? И как в этом случае его запускать?

#453 Serval

Serval

    Участник

  • Трейдеры
  • PipPip
  • 155 сообщений

Отправлено 30 June 2012 - 11:20 AM

А если его в Анализатор вставить в окно Formula, будет ли работать со стопами, которые есть в Анализаторе? И как в этом случае его запускать?

Это код робота-ндикатора. Его преимущества: наглядность, частота выставления заявок до 10 штук в секунду, неизвестно, нужно ли это. Недостатки: Chart с индикатором должен быть всё время открыт, иначе работа робота прекращается.
А со стопами он и так работает, те, которые определены функцией ApplyStop, в Анализаторе будет так же. Индикатор при этом рисует на графике значки для выхода из позиции, которые дает ApplyStop. Если сунуть код в АА, я думаю будет работать, но не будет никакой информации о работе ( в какой мы позиции, какие заявки активны). Этот кусок кода надо дописывать.
Цель этого робота создать пример работы через текстовые файлы со стороны Амиброкера, а для тех, кому нужна наглядность можно использовать и так.

#454 Старый пень

Старый пень

    Участник

  • Трейдеры
  • PipPip
  • 140 сообщений

Отправлено 30 June 2012 - 01:31 PM

Я понял. Стопы надо вручную забивать в ApplyStop.

#455 Старый пень

Старый пень

    Участник

  • Трейдеры
  • PipPip
  • 140 сообщений

Отправлено 01 July 2012 - 12:05 AM

Для наглядности добавляю ещё линию стоплосса и линию трейлстопа.

#456 Старый пень

Старый пень

    Участник

  • Трейдеры
  • PipPip
  • 140 сообщений

Отправлено 01 July 2012 - 07:41 PM

ReadOpenPositions();
TickerID=GetChartID(); // уникальный для каждого индикатора номер
Otstup=0.5; // в процентах. заявка будет выставлена хуже текущей цены на столько процентов
StopPrice=0; // Пока стоп приказы не сделаны, торгуем с использованием встроенного в Ами ApplyStop()
Lots_open=StaticVarGet("Number_of_Lots");
wp=StaticVarGet("Weighted_price");
printf("ОТКРЫТО КОНТРАКТОВ: "+Lots_open+" ПО ЦЕНЕ: "+wp+" ");
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// БЛОК СТОПЛОССА
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
StopLossLine = 0;
StopLoss = Param("СТОПЛОСС%", 5.0, 1.0, 10.0, 1); // Парамеры СТОПЛОССА
if(Lots_open>0){StopLossLine = wp-wp/100.00*StopLoss;} // Линия СТОП в процентах для ЛОНГ
if(Lots_open<0){StopLossLine = wp+wp/100.00*StopLoss;} // Линия СТОП в процентах для ШОРТ
// Верхняя часть БЛОКА СТОПЛОССА служит только для построения линии на графике
// Реальное положение СТОПЛОССА определяется функцией ApplyStop()
ApplyStop(stopTypeLoss , stopModePercent, amount = StopLoss, ExitAtStop = 1, Volatile = False, ReEntryDelay = 0);
if(Lots_open!=0){Plot(wp,"Weighted_price",IIf((Lots_open>0),colorGreen,colorRed), styleLine|styleDashed|ParamStyle("Style") );}
if(Lots_open!=0){Plot( StopLossLine,"ЦВЕТ СТОПА", ParamColor( "ЦВЕТ СТОПА", colorYellow), styleDashed);}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// БЛОК ТРЕЙЛСТОПА
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
TrailLine = 0;
StopTrail = Param("ТРЕЙЛСТОП%", 5, 1, 100, 1); // Парамеры ТРЕЙЛСТОПА
Current_price=Close;
DeltaL=0; // Объявление переменной
DeltaS=0; // Объявление переменной
DeltaL=(Current_price-wp)*100.00/wp; // Измеряем текущую прибыль в процентах для ЛОНГА
DeltaS=(wp-Current_price)*100.00/wp; // Измеряем текущую прибыль в процентах для ШОРТА
n=1;
n=n+1;
Step=StopTrail*n;
Cond1=Lots_open > 0 AND DeltaL>Step;
TrailLine1=IIf(Cond1,wp+Step,StopLossLine); //Если в прибыль не вышли, то условно рисуем линию ТРЕЙЛ на уровне СТОПЛОССА
Cond2=Lots_open < 0 AND DeltaL>Step;
TrailLine2=IIf(Cond1,wp-Step,StopLossLine); //Если в прибыль не вышли, то условно рисуем линию ТРЕЙЛ на уровне СТОПЛОССА
// Верхняя часть БЛОКА ТРЕЙЛСТОПА служит только для построения линий ТРЕЙЛА на графике
// Реальное положение ТРЕЙЛСТОПА определяется функцией ApplyStop()
ApplyStop(stopTypeTrailing , stopModePercent, amount = StopTrail, ExitAtStop = 1, Volatile = False, ReEntryDelay = 0);
Plot( TrailLine1, "ЛИНИЯ ТРЕЙЛ ЛОНГ", ParamColor("ЛИНИЯ ТРЕЙЛ ЛОНГ", colorBlue ), styleDashed);
Plot( TrailLine2, "ЛИНИЯ ТРЕЙЛ ШОРТ", ParamColor("ЛИНИЯ ТРЕЙЛ ШОРТ", colorBlue ), styleDashed);
n=0;

#457 Старый пень

Старый пень

    Участник

  • Трейдеры
  • PipPip
  • 140 сообщений

Отправлено 01 July 2012 - 07:52 PM

Это блоки для рисования линий СТОПЛОССА и ТРЕЙЛСТОПА на графике. Линии действительны только для параметров, указанных в операторах ApplyStop. Если параметры ApplyStop изменить, то рисованные линии не будут соответствовать реальному положению стопов. Наверное ТРЕЙЛСТОП не особенно нужен, т.к. если цена пошла в прибыль, то закрытие произойдёт по обратному сигналу системы.
Заметил ошибку, у меня написано: Cond2=Lots_open < 0 AND DeltaL>Step;
надо написать: Cond2=Lots_open < 0 AND DeltaS>Step;

#458 Эдуард Полозков

Эдуард Полозков

    Сотрудник ITinvest

  • Трейдеры
  • Pip
  • 81 сообщений

Отправлено 02 July 2012 - 02:52 PM

После закрытия позиции соответствующая строка из файла удаляется.

Уважаемый Админ! Ответьте пожалуйста, что происходит со строкой открытой позиции в файле OpenPosition.dat после закрытия позиции. И ещё... Администратор Амисайта говорит, что Амиброкер может общаться с торговой системой без участия текстовых файлов, и он знает как это делается !!! Свяжитесь с ним пожалуйста... http://amisite.ru/ph...er=asc&start=30



#459 Старый пень

Старый пень

    Участник

  • Трейдеры
  • PipPip
  • 140 сообщений

Отправлено 27 July 2012 - 01:28 PM

Плагин работает. Однако не могу пользоваться роботом, потому что у меня связь плохая. СкайЛинк. Медленно и нестабильно. Часто бывает, что Амиброкер по несколько часов не может соединиться с нужным сервером, и сигналит каждые енесколько секунд. А уж во время движняка, я вообще молчу... Не только Амиброкер. Все терминалы виснут !!! Как будто специально кто-то кран перекрывает. Доказательств нет, что это специально делается, но впечатление именно такое.

#460 Старый пень

Старый пень

    Участник

  • Трейдеры
  • PipPip
  • 140 сообщений

Отправлено 27 July 2012 - 01:30 PM

Уважаемые программисты ! Когда сделаете трансляцию Финмаркета ??? Обещали !!! Надо выполнять обещания !!!




Rambler's Top100 Яндекс.Метрика