Главная > Торговый робот > Торговые функции QPILE

Торговые функции QPILE

29 марта 2009

orderlogoИли отправка транзакций. Это вторая большая сложность, с которой сталкивается программист, создающий торговый робот на QPILE, после получения котировок . Дело в том, что в QUIK доступны сотни инструментов на разных площадках, несколько типов заявок. Если это все перемножить и добавить количество вариантов цен — получим бесконечное количество параметров! Именно для этого был разработан механизм отправки транзакций, учитывающий все эти параметры. Для начала рассмотрим сам код QPILE торговой функции:

Код на QPILE доступен только зарегистрированным пользователям.

Заметили, что все переменные для отправки транзакции должны быть в текстовом формате? Именно для этого мы объединяем их с пустой строкой в коде.

Исполнив данный код, QUIK купит 10 лотов RIM9 по цене 70100. Вначале появится заявка в таблице заявок, затем она поменяет статусы с «активна» на «исполняется» и «исполнена». Появится соответствующая запись в таблице сделок, вобщем все ровно также, как  если бы мы торговали «ручками». Код универсален, с помощью него можно отправлять любые варианты транзакций, главное правильно использовать нужные параметры.

Теперь вернемся к сонму вариантов значений параметров транзакции. Все они могут принимать вот такие значения:

CLASSCODE Код класса, по которому выполняется транзакция, например EQBR. Обязательный параметр

SECCODE Код инструмента, по которому выполняется транзакция, например EESR

ACTION Вид транзакции, имеющий одно из следующих значений:

  • «NEW_ORDER» — новая заявка,
  • «NEW_NEG_DEAL» — новая заявка на внебиржевую сделку,
  • «NEW_REPO_NEG_DEAL» – новая заявка на сделку РЕПО,
  • «NEW_EXT_REPO_NEG_DEAL» — новая заявка на сделку модифицированного РЕПО (РЕПО-М),
  • «NEW_STOP_ORDER» — новая стоп-заявка,
  • «KILL_ORDER» — снять заявку,
  • «KILL_NEG_DEAL» — снять заявку на внебиржевую сделку или заявку на сделку РЕПО,
  • «KILL_STOP_ORDER» — снять стоп-заявку,
  • «KILL_ALL_ORDERS» – снять все заявки из торговой системы,
  • «KILL_ALL_STOP_ORDERS» – снять все стоп-заявки,
  • «KILL_ALL_NEG_DEALS» – снять все заявки на внебиржевые сделки и заявки на сделки РЕПО,
  • «KILL_ALL_FUTURES_ORDERS» — снять все заявки на рынке FORTS,
  • «MOVE_ORDERS» — переставить заявки на рынке FORTS,
  • «NEW_QUOTE» — новая безадресная заявка,
  • «KILL_QUOTE» — снять безадресную заявку,
  • «NEW_REPORT» — новый отчет о подтверждении транзакций,
  • «SET_FUT_LIMIT» — новое ограничение по фьючерсному счету.

ACCOUNT номер счета Трейдера, обязательный параметр

CLIENT_CODE 20-ти символьное составное поле, может содержать код клиента и текстовый комментарий с тем же разделителем, что и при вводе заявки вручную. Необязательный параметр.

TYPE Тип заявки, необязательный параметр. Значения: «L» – лимитированная, «M» – рыночная.

MARKET_MAKER_ORDER Признак того, является ли заявка заявкой Маркет-Мейкера. Возможные значения: «YES» или «NO». Значение по умолчанию (если параметр отсутствует): «NO».

OPERATION Направление заявки, обязательный параметр. Значения: «S» – продать, «B» – купить.

EXECUTION_CONDITION Условие исполнения заявки, необязательный параметр. Возможные значения:

  • «PUT_IN_QUEUE» – поставить в очередь (по умолчанию),
  • «FILL_OR_KILL» – немедленно или отклонить,
  • «KILL_BALANCE» – снять остаток.

QUANTITY Количество лотов в заявке, обязательный параметр

REPOVALUE Объем сделки РЕПО-М в рублях

START_DISCOUNT Начальное значение дисконта в заявке на сделку РЕПО-М

LOWER_DISCOUNT Нижнее предельное значение дисконта в заявке на сделку РЕПО-М

UPPER_DISCOUNT Верхнее предельное значение дисконта в заявке на сделку РЕПО-М

PRICE Цена заявки, за единицу инструмента. Обязательный параметр.

Если в региональных настройках Windows установлен разделитель «,», то разделителем целой и дробной части цены может быть указана и «.» и «,».

Если в региональных настройках Windows установлен разделитель «.», то разделителем в цене может быть только «.»

STOPPRICE Стоп-цена, за единицу инструмента. Используется только при «ACTION» = «NEW_STOP_ORDER»

STOP_ORDER_KIND Тип стоп-заявки. Возможные значения:

  • «SIMPLE_STOP_ORDER» – стоп-лимит,
  • «CONDITION_PRICE_BY_OTHER_SEC» – с условием по другой бумаге,
  • «WITH_LINKED_LIMIT_ORDER» – со связанной заявкой,
  • «TAKE_PROFIT_STOP_ORDER» – тэйк-профит,
  • «ACTIVATED_BY_ORDER_SIMPLE_STOP_ORDER» – стоп-лимит по исполнению заявки,
  • «ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER» – тэйк-профит по исполнению заявки.

Если параметр пропущен, то считается, что заявка имеет тип «стоп-лимит».

STOPPRICE_CLASSCODE Класс инструмента условия. Используется только при «STOP_ORDER_KIND» = «CONDITION_PRICE_BY_OTHER_SEC».

STOPPRICE_SECCODE Код инструмента условия. Используется только при «STOP_ORDER_KIND» = «CONDITION_PRICE_BY_OTHER_SEC».

STOPPRICE_CONDITION Направление предельного изменения стоп-цены. Используется только при «STOP_ORDER_KIND» = «CONDITION_PRICE_BY_OTHER_SEC».

Возможные значения:  «<=» или «>=».

LINKED_ORDER_PRICE Цена связанной лимитированной заявки. Используется только при «STOP_ORDER_KIND» = «WITH_LINKED_LIMIT_ORDER».

EXPIRY_DATE Срок действия стоп-заявки. Возможные значения:

  • «GTC» – до отмены.
  • Дата в формате «ггггммдд», где «гггг» – год, «мм» – месяц, «дд» – день.

PARTNER Код организации – партнера по внебиржевой сделке. Применяется при «ACTION» = «NEW_NEG_ORDER» или «ACTION» = «NEW_REPO_NEG_ORDER»

ORDER_KEY Номер заявки, снимаемой из торговой системы. Применяется при «ACTION» = «KILL_ORDER» или «ACTION» = «KILL_NEG_DEAL»  или «ACTION» = «KILL_QUOTE»

STOP_ORDER_KEY Номер стоп-заявки, снимаемой из торговой системы. Применяется только при «ACTION» = «KILL_STOP_ORDER»

TRANS_ID Уникальный идентификационный номер заявки

SETTLE_CODE Код расчетов при исполнении внебиржевых заявок

PRICE2 Цена второй части РЕПО

REPOTERM Срок РЕПО. Параметр сделок РЕПО-М.

REPORATE Ставка РЕПО, в процентах

BLOCK_SECURITIES Признак блокировки бумаг на время операции РЕПО («YES», «NO»)

REFUNDRATE Ставка фиксированного возмещения, выплачиваемого в случае неисполнения второй части РЕПО, в процентах

COMMENT Текстовый комментарий, указанный в заявке. Используется при снятии группы заявок.

LARGE_TRADE Признак крупной сделки (YES/NO). Параметр внебиржевой сделки.

CURR_CODE Код валюты расчетов по внебиржевой сделки, например «SUR» – рубли РФ, «USD» – доллары США. Параметр внебиржевой сделки.

FOR_ACCOUNT Лицо, от имени которого и за чей счет регистрируется сделка (параметр внебиржевой сделки). Возможные значения:

  • OWNOWN – от своего имени, за свой счет,
  • OWNCLI — от своего имени, за счет клиента,
  • OWNDUP — от своего имени, за счет доверительного управления,
  • CLICLI — от имени клиента, за счет клиента.

SETTLE_DATE Дата исполнения внебиржевой сделки

KILL_IF_LINKED_ORDER_ PARTLY_FILLED Признак снятия стоп-заявки при частичном исполнении связанной лимитированной заявки. Используется только при «STOP_ORDER_KIND» = «WITH_LINKED_LIMIT_ORDER». Возможные значения: «YES» или «NO».

OFFSET Величина отступа от максимума (минимума) цены последней сделки. Используется при «STOP_ORDER_KIND» = «TAKE_PROFIT_STOP_ORDER» или «ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER».

OFFSET_UNITS Единицы измерения отступа. Возможные значения:

  • «PERCENTS» – в процентах (шаг изменения – одна сотая процента),
  • «PRICE_UNITS» – в параметрах цены (шаг изменения равен шагу цены по данному инструменту). Используется при «STOP_ORDER_KIND» = «TAKE_PROFIT_STOP_ORDER» или «ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER».

SPREAD Величина защитного спрэда. Используется при «STOP_ORDER_KIND» = «TAKE_PROFIT_STOP_ORDER» или «ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER».

SPREAD_UNITS Единицы измерения защитного спрэда. Возможные значения:

  • «PERCENTS» – в процентах (шаг изменения – одна сотая процента),
  • «PRICE_UNITS» – в параметрах цены (шаг изменения равен шагу цены по данному инструменту).

Используется при «STOP_ORDER_KIND» = «TAKE_PROFIT_STOP_ORDER» или «ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER».

BASE_ORDER_KEY Регистрационный номер заявки-условия. Используется при «STOP_ORDER_KIND» = «ACTIVATED_BY_ORDER_SIMPLE_STOP_ORDER» или «ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER».

USE_BASE_ORDER_BALANCE Признак использования в качестве объема заявки «по исполнению» исполненного количества бумаг заявки-условия. Возможные значения: «YES» или «NO». Используется при «STOP_ORDER_KIND» = «ACTIVATED_BY_ORDER_SIMPLE_STOP_ORDER» или «ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER».

ACTIVATE_IF_BASE_ORDER_PARTLY_FILLED Признак активации заявки «по исполнению» при частичном исполнении заявки-условия. Возможные значения: «YES» или «NO». Используется при «STOP_ORDER_KIND» = «ACTIVATED_BY_ORDER_SIMPLE_STOP_ORDER» или «ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER».

BASE_CONTRACT Идентификатор базового контракта для фьючерсов или опционов. Обязательный параметр снятия заявок на рынке FORTS.

MODE Режим перестановки заявок на рынке FORTS. Параметр операции «ACTION» = «MOVE_ORDERS» Возможные значения:

0 – оставить количество в заявках без изменения,

1 — изменить количество в заявках на новые,

2 – при несовпадении новых количеств с текущим хотя бы в одной заявке, обе заявки снимаются. Дополнительные параметры функции перестановки:

  • FIRST_ORDER_NUMBER Номер первой заявки
  • FIRST_ORDER_NEW _QUANTITY Количество в первой заявке
  • FIRST_ORDER_NEW_PRICE Цена в первой заявке
  • SECOND_ORDER_NUMBER Номер второй заявки
  • SECOND_ORDER_NEW _QUANTITY Количество во второй заявке
  • SECOND_ORDER_NEW _PRICE Цена во второй заявке

KILL_ACTIVE_ORDERS Признак снятия активных заявок по данному инструменту. Используется только при «ACTION» = «NEW_QUOTE». Возможные значения: «YES» или «NO».

NEG_TRADE_OPERATION Направление операции в сделке, подтверждаемой отчетом

NEG_TRADE_NUMBER Номер подтверждаемой отчетом сделки для исполнения

VOLUMEMN Лимит открытых позиций, при «Тип лимита» = «Рубли» или «Всего»

VOLUMEPL Лимит открытых позиций, при «Тип лимита» = «Залоговые рубли»

KFL Коэффициент ликвидности

KGO Коэффициент клиентского гарантийного обеспечения

USE_KGO Параметр, который определяет, будет ли загружаться величина КГО при загрузке лимитов из файла:

  • при USE_KGO=Y – величина КГО загружает.
  • при USE_KGO=N – величина КГО не загружается

CHECK_LIMITS Признак проверки попадания цены заявки в диапазон допустимых цен, заданных параметрами «Максимально возможная цена» и «Минимально  возможная цена». Параметр Срочного рынка FORTS. Возможные значения: «Y» – выполнять проверку, «N» – не выполнять.

MATCH_REF Ссылка, которая связывает две сделки РЕПО или РПС подаваемые через файл. Параметр представляет собой набор произвольный набор количеством до 10 символов (допускаются цифры и буквы).

Вот примеры формирования транзакций:

Заявка на продажу Ростелеком, лимитированная, 3 лота по 43.21 руб.:

ACCOUNT=NL0080000043; CLIENT_CODE=467; TYPE=L; TRANS_ID=1; CLASSCODE=EQBR; SECCODE=RU0008943394; ACTION=NEW_ORDER; OPERATION=S; PRICE=43,21; QUANTITY=3;

Заявка на покупку ЛУКОЙЛ, лимитированная, 3 лота по 253.3 руб.:

ACCOUNT=NL0080000043; CLIENT_CODE=467; TYPE=L; TRANS_ID=2; CLASSCODE=EQBR; SECCODE=LKOH; ACTION=NEW_ORDER; OPERATION=B; PRICE=253,3; QUANTITY=3;

Внебиржевая заявка на покупку Ростелеком, лимитированная, 1 лот по 42.81 руб.:

ACCOUNT=NL0080000043; CLIENT_CODE=467; TYPE=L; TRANS_ID=3; CLASSCODE=PSEQ; SECCODE=RU0008943394; ACTION= NEW_NEG_DEAL; OPERATION=B; PRICE=42,81; QUANTITY=1; PARTNER=NC0080000000;

Внебиржевая заявка на продажу РАО ЕЭС-п, лимитированная, 3 лота по 1.113 руб.:

ACCOUNT=NL0080000043; CLIENT_CODE=467; TYPE=L; TRANS_ID=4; CLASSCODE=PSEQ; SECCODE=EESRP; ACTION=NEW_NEG_DEAL; OPERATION=S; PRICE=1,113; QUANTITY=3; PARTNER=NC0080100000;

Внебиржевая сделка РАО ЕЭС, продажа 30 лотов по 19.332 руб.:

CLIENT_CODE=2/3;TRANS_ID=8;CLASSCODE=SCVC;SECCODE=EESR;ACTION=NEW_NEG_DEAL; OPERATION=B; PRICE=19.332; QUANTITY=30; SETTLE_CODE=UPTO5; LARGE_TRADE=YES; CURR_CODE=SUR; FOR_ACCOUNT=OWNCLI; SETTLE_DATE=20070620;

Стоп-лимит РАО ЕЭС, 100 лотов на продажу по цене 7,000, стоп-цена – 7,300, срок до 19 мая 2003 г.:

ACTION=NEW_STOP_ORDER; ACCOUNT= NL0080000043; TRANS_ID=17; CLASSCODE=EQBR; SECCODE=EESR; OPERATION=S; QUANTITY=100; CLIENT_CODE=467; STOPPRICE=7.3; PRICE=7.0; EXPIRY_DATE=20030519;

Стоп-заявка с условием по другой бумаге РАО ЕЭС, продажа 15 лотов по цене 7,000, условие по РАО ЕЭС-п, условие стоп-цены <= 8,000:

ACTION=NEW_STOP_ORDER; STOP_ORDER_KIND=CONDITION_PRICE_BY_OTHER_SEC; ACCOUNT= NL0080000043; QUANTITY=15; TRANS_ID=15; CLASSCODE=EQBR; SECCODE=EESR; STOPPRICE_CLASSCODE=EQBR; STOPPRICE_SECCODE=EESRP; STOPPRICE_CONDITION=<=; OPERATION=S; CLIENT_CODE=1001; STOPPRICE=8.0; PRICE=7.0;

Стоп-заявка со связанной заявкой РАО ЕЭС, покупка 15 лотов по цене 8,500, стоп-цена >= 8,000, и лимитированная заявка по 6,000:

ACTION=NEW_STOP_ORDER; STOP_ORDER_KIND=WITH_LINKED_LIMIT_ORDER; ACCOUNT= NL0080000043; TRANS_ID=16; CLASSCODE=EQBR; SECCODE=EESR; OPERATION=B; QUANTITY=15; CLIENT_CODE=1001; STOPPRICE=8.0; PRICE=8.5; LINKED_ORDER_PRICE=6.0; STOPPRICE_CONDITION=>=; KILL_IF_LINKED_ORDER_ PARTLY_FILLED=NO;

Тэйк-профит Лукойл, покупка 1 лота, активация при достижении цены 265 с отступом в 5% и защитным интервалом в 5 пипсов, срок исполнения до 06.07.2004:

ACTION=NEW_STOP_ORDER; TRANS_ID=8; STOP_ORDER_KIND=TAKE_PROFIT_STOP_ORDER; STOPPRICE=265; CLIENT_CODE=Q5; OPERATION=B; SECCODE=LKOH; CLASSCODE=EQBR; ACCOUNT=L01-00000F00; QUANTITY=1; EXPIRY_DATE=20040706; OFFSET=5; OFFSET_UNITS=PERCENTS; SPREAD=5; SPREAD_UNITS=PRICE_UNITS;

Тэйк-профит по исполнению заявки по частичному исполнению заявки с номером 81874488 выставить тэйк-профит на покупку Лукойла в объеме исполненной части заявки-условия, при достижении цены 265 с отступом 10 пипсов и защитным интервалом 10 пипсов:

ACTION=NEW_STOP_ORDER; TRANS_ID=11; STOP_ORDER_KIND=ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER; BASE_ORDER_KEY=81874488; USE_BASE_ORDER_BALANCE=yes; ACTIVATE_IF_BASE_ORDER_PARTLY_FILLED=yes; SPREAD=10; OFFSET=10; OFFSET_UNITS=PRICE_UNITS; SPREAD_UNITS=PRICE_UNITS; STOPPRICE=265; CLIENT_CODE=Q5; OPERATION=B; SECCODE=LKOH; CLASSCODE=EQBR; ACCOUNT=L01-00000F00;

Стоп-лимит по исполнению заявки по частичному исполнению заявки с номером 81874488 выставить стоп-лимит на покупку  Лукойла в объеме исполненной части заявки-условия, со стоп-ценой 271 и ценой заявки 270:

ACTION=NEW_STOP_ORDER; TRANS_ID=12; STOP_ORDER_KIND=ACTIVATED_BY_ORDER_SIMPLE_STOP_ORDER; BASE_ORDER_KEY=81874488; USE_BASE_ORDER_BALANCE=yes; ACTIVATE_IF_BASE_ORDER_PARTLY_FILLED=yes; PRICE=270; STOPPRICE=271; CLASSCODE=EQBR; SECCODE=LKOH; ACCOUNT=L01-00000F00; OPERATION=B; CLIENT_CODE=Q5;

Снятие заявки с номером 503983:

CLASSCODE=EQBR; SECCODE=RU0009024277; TRANS_ID=5; ACTION=KILL_ORDER; ORDER_KEY=503983;

Снятие внебиржевой заявки с номером 503984:

CLASSCODE=EQBR; TRANS_ID=6; ACTION=KILL_NEG_DEAL; ORDER_KEY=503984;

Отмена внебиржевой сделки с номером 3:

ACTION=KILL_NEG_DEAL; TRANS_ID=25; CLASSCODE=SCVC; SECCODE=EESR; ORDER_KEY=3; OPERATION=S; FIRM_ID=NC0038900000;

Снятие всех заявок клиента с кодом Q6:

TRANS_ID=1; CLASSCODE=EQBR; ACTION=KILL_ALL_ORDERS; CLIENT_CODE=Q6;

Снятие всех стоп-заявок с направлением «на покупку»:

TRANS_ID=2; CLASSCODE=EQBR; ACTION=KILL_ALL_STOP_ORDERS; OPERATION=B;

Снятие всех адресных заявок  по классу «РПС: Акции 1-го уровня»:

TRANS_ID=3; CLASSCODE=PSEQ; ACTION=KILL_ALL_NEG_DEALS;

Снятие всех заявок на срочном рынке FORTS на покупку контрактов на курс акций РАО ЕЭС:

TRANS_ID=50; ACCOUNT=SPBFUT00001; ACTION=KILL_ALL_FUTURES_ORDERS; OPERATION=B; CLASSCODE=SPBFUT; BASE_CONTRACT=EESI;

Перестановка заявок на срочном рынке FORTS:

ACTION=MOVE_ORDERS; TRANS_ID=333; CLASSCODE=SPBFUT; SECCODE=EBM6; MODE=1; FIRST_ORDER_NUMBER=21445064;  FIRST_ORDER_NEW_PRICE=10004; FIRST_ORDER_NEW_QUANTITY=4; SECOND_ORDER_NUMBER=21445065; SECOND_ORDER_NEW_PRICE=10004; SECOND_ORDER_NEW_QUANTITY=;

(Перестановка заявок на рынке FORTS выполняется по следующим правилам:

Если MODE=0, то заявки с номерами, указанными после ключей FIRST_ORDER_NUMBER и SECOND_ORDER_NUMBER, снимаются. В торговую систему отправляются две новые заявки, при этом изменяется только цена заявок, количество остается прежним;

Если MODE=1, то заявки с номерами, указанными после ключей FIRST_ORDER_NUMBER и SECOND_ORDER_NUMBER, снимаются. В торговую систему отправляются две новые заявки, при этом изменится как цена заявки, так и количество;

Если MODE=2, то заявки с номерами, указанными после ключей FIRST_ORDER_NUMBER и SECOND_ORDER_NUMBER, снимаются.

Если количество бумаг в каждой из снятых заявок совпадает со значениями, указанными после FIRST_ORDER_NEW_QUANTITY и SECOND_ORDER_NEW_QUANTITY, то в торговую систему отправляются две новые заявки с соответствующими параметрами.)Безадресная заявка на покупку РАО ЕЭС, 1 лот по 15.0 руб., коду расчетов T0, с признаком снятия активных безадресных заявок «НЕТ»:

ACTION=NEW_QUOTE; TRANS_ID=779; CLASSCODE=PSEQ; SECCODE=EESR; OPERATION=B; QUANTITY=1; PRICE=15.0; SETTLE_CODE=T0; KILL_ACTIVE_ORDERS=NO;

Снятие безадресной заявки с номером 15919:

ACTION=KILL_QUOTE; TRANS_ID=781; CLASSCODE=PSEQ; SECCODE=EESR; ORDER_KEY=15919;

Импорт ограничений по фьючерсным счетам по счету Трейдера 389_011, где лимит открытых позиций «Всего» составляет 20 млн. рублей и лимит открытых позиций «Залоговые рубли» ограничен 10 млн. рублей:

ACTION=SET_FUT_LIMIT; TRANS_ID=22; CLASSCODE=SPBFUT; ACCOUNT=389_011; VOLUMEMN=20000000,00; VOLUMEPL=10000000,00; KFL=0,00; KGO=0,00; USE_KGO=Y; FIRM_ID=SPBFUT389;

Подтверждение отчетом сделок для исполнения с номером 179205900:

ACTION=NEW_REPORT; TRANS_ID=15; CLASSCODE=RPMA; NEG_TRADE_OPERATION=B; NEG_TRADE_NUMBER=179205900;

Данные взяты из руководства пользователя QUIK.

Евгений Торговый робот , ,

  1. Сергей
    10 Апрель 2009 в 12:12 | #1

    хотел уточнить по поводу kill all orders, начитавшись квиковского форума, я понял, что эта функция не работает? а как на самом деле?

  2. Евгений
    10 Апрель 2009 в 20:25 | #2

    На самом деле ее лучше не использовать, правильно удалять заявки это делать цикл по таблице заявок, отфильтровывать их по статусу «активна», определять их номер и затем по номеру удалять.

    Дмитрий Reply:

    А нельзя ли написать и выложить здесь эту функцию, «правильный» аналог kill all orders?

    Евгений Reply:

    Можно, на выходных выложу, где-то валялась такая...

    Евгений Reply:

    www.hirobot.ru/2009/05/fu...kill-all-orders/

  3. Dr. Livsey
    15 Май 2009 в 17:19 | #3

    ДОбРый день. написал робота, начал отлаживать и использовал вашу функцию выставления заявки. так вот, я передою данные в функцию

    ORDER (PRICE, LOTS, «SELL», LIMIT, TrID )

    А квик пишет неправильно указана оерация «sell»

    в чем может быть проблема? спасибо

    Евгений Reply:

    Думаю надо указывать не «Sell» a «S». прочитайте внимательно эту статью.

    coole Reply:

    Просто-просто, у вас в примере, при вызове функции в первой строке стоит значение «BUY» :) может надо «B»???

    Евгений Reply:

    Да. Поправил.

  4. Pulsar
    19 Май 2009 в 14:21 | #4

    «EXECUTION_CONDITION» — «KILL_BALANCE»

    А как это работает ? Неисполненная часть заявки снимается спустя какое-то время ? Или ?

    Евгений Reply:

    Ни разу не сталкивался, но могу предположить что сразу снимается неисполненный остаток, иначе теряется смысл этой функции.

  5. pocemon
    25 Ноябрь 2009 в 18:45 | #5

    Евгений подскажите, какой лучше тип заявок использовать для тейкпрофита и с какими параметрами сделки. Имеется открытая позиция по фортс при достижении уровня тейкпрофит ее надо закрыть, как лучше?

    Евгений Reply:

    Рекомендую использовать стопзаявки. Поищите на сайте торговый робот «Дефендер».

    pocemon Reply:

    Стоп-заявка сразу исполняется и рожает обычную заявку, которая отображается как активная в таблице заявок, и когда я удаляю, например активные стоп-заявки или закрывается позиция по стопу то чтоб ее снять, нужна дополнительная операция KILL_ORDERS помимо KILL_SPOTORDERS.

    Возможно ли их удалять на фортс одной командой?

    Евгений Reply:

    Можно.

    Как таковой готовой функции в импорте транзакций нет, но делайте два блока (килл ордерс и килл стопордерс) и запускаете их друг за другом.

    pocemon Reply:

    Спасибо. я думаю объеденить их в одну функцию,все равно после каждой сделки надо подчищать как заявки так и стопы.

  6. Александр
    26 Январь 2010 в 00:36 | #6

    Функция GET_VALUE (trans_result, «ORDER_NUMBER») выдает значение такого рода: 81874488.00000000000

    И если какой-либо переменной присвоить этот GET_VALUE, и влепить его в тип заявки KILL_ORDER — то выдает ошибку «Неправильно указан номер заявки: „81874488.00000000000“»

    Как можно привести 81874488.00000000000 к простому виду 81874488 ?

    Евгений Reply:

    GET_VALUE (trans_result, «ORDER_NUMBER»)+0 это получаем число. А в функции отправки транзакции наоборот, делаем из числа текст: GET_VALUE (trans_result, «ORDER_NUMBER»)&""

    Почитайте статью о типах переменных

Необходимо войти на сайт, чтобы написать комментарий.