Добрый день, -------------- Вопрос к знатокам: ----------------------------- Вычисляю функцией CalcBuySell сколько акций можно купить.
фрагмент кода: local qty1,comis1=CalcBuySell(clas, sec,"1737","NL0011100043",price, true,false); ------------------------- Поясняю, что ожидаю: ------------------ На учебном сервере денежных средств 300 тысяч рублей. ---------------- Данная функция должна считать комиссию и число лотов для покупки по указанной цене. Полагаю, что коммиссия должна быть примерно одинаковой (сумма денег одна) А число акций умноженное на цену одной и на количество их в лоте должна составлять примерно 300 тыс рублей ------------------- Для проверки, считаю количество и комиссию по формуле. -------------------------- В результате обозначено: ------------------- qt1,comis1 - расчет функции qt,comis - расчет формулы m - сумма денег исходная m1- расчет суммы денег по результатам функции ----------------------- результат вычисления: ============= акции, для которых результат функции и по формуле примерно одинаковый: ------------------ TATNP,m=299983, lotsize=1., qty1=937, m1=299881, qty=935, comis1=229.26, comis=749, price=319.8 ROSN,m=299983, lotsize=1., qty1=844, m1=299887, qty=842, comis1=225.54, comis=749, price=355.05 ------------- "чудеса в решете": -------------------- CHMF,m=299983, lotsize=1., qty1=1530, m1=1759940, qty=260, comis1=746.54, comis=749, price=1149.8 ---------- при цене 1150 рублей по формуле можно купить 260 акций, что вполне похоже на правду. ----------------------------- функция считает, что можно купить 1530 акций, при этом комиссия примерно одинаковая, что указывает что затрачено примено 300 тыс рубг ---------------------- следующее чудо: SBER,m=299983, lotsize=10., qty1=1349, m1=1759982, qty=229, comis1=751.81, comis=749, price=130.41 ----------- Сбербанк акция 130 рублей по формуле можно купить 229 лотов или 2290 акций, что правда. функция считает, что можно купить 1349 лотов, на сумму 1млн759 тыс 982 рублей Величина комиссии указывает что ее считали с суммы 300 тысяч. --------------------- еще один прикол: AFLT,m=299983, lotsize=10., qty1=6567, m1=1760716, qty=1116, comis1=760.2, comis=749, price=26.8 ================== Кто сие может объяснить? Спасибо
1. Про функцию CalcBuySell первый раз слышу. Может, где и попадалась, но глаз проскальзывал мимо, ибо само название говорит, что это чистейший БСК.
2. Глянул в Гугл: "Функция предназначена для расчета максимально возможного количества лотов в заявке". ЧАВО???!!! Во-первых, за каким хреном мне нужно МАКСИМАЛЬНО возможное количество лотов в заявке? Во-вторых, откуда какая-то внешняя хреновина может знать, сколько МНЕ нужно лотов в МОЕЙ заявке?!
3. Смотрю формат вызова: CalcBuySell(class_code, sec_code, client_code, account, price, is_buy, is_market). Что за бред?! А деньги-то где?! Да вы что, СОВСЕМ ОХРЕНЕЛИ?! Эта падла что, самостоятельно лезет в мой кошелёк, штоле? Да какое её собачье дело сколько чего там лежит?! И что, она думает, что я угроблю все свои деньги на одну-единственную сделку одного-единственного тикера?! Блин, да НАСРАТЬ, что и как она там считает, правильно или неправильно! Пользоваться этим дерьмом может только КЛИНИЧЕСКИЙ дебил!
Господа, вы ХОТЬ ЧТО-НИБУДЬ способны САМИ посчитать, СВОИМ СОБСТВЕННЫМ кодом, БЕЗ этих идиотских библиотек? Неужто не только программисты, но и быдлокодеры уже все повымерли?
Дмитрий написал: Во-первых, за каким хреном мне нужно МАКСИМАЛЬНО возможное количество лотов в заявке? Во-вторых, откуда какая-то внешняя хреновина может знать, сколько МНЕ нужно лотов в МОЕЙ заявке?!
При выставлении брокером вашей заявки, его программа всегда проверяет вашу состоятельность (ваши лимиты). Формулу лимитов вы можете посмотреть у брокера, но, как правило, она может зависеть от параметров, которые могут брокером определяться динамически. Более того, ваши лимиты могут изменяться при выполнении ваших заявок (например, продажи ваших бумаг). Ваша заявка может быть отвергнута, если при ее выставлении будут исчерпаны ваши лимиты. Перед выставлением заявки следует либо проверять возможность ее выполнения (в заявленном объеме) используя функцию CalcBuySell, либо не проверять, но в любом случае обрабатывать ситуацию отказа выставления заявки. Функция CalcBuySell действительно лезет в ваш кошелек (а как можно понять что вы состоятельны), но она не выставляет заявок, а позволяет понять будет ли выставлена ваша заявка с указанными вами параметрами. Вы, конечно, можете сами считать свои лимиты, используя формулу брокера, но там присутствуют параметры, которые потенциально могут изменяться брокером. Поэтому, скорее всего ваши расчеты окажутся приблизительными.
TGB, Мне АБСОЛЮТНО плевать, что там "его программа проверяет" - это ЕЁ проблемы. Мой же скрипт САМ проверяет свою состоятельность, и он при этом НЕ лезет в мой кошелёк - он имеет ту сумму в своём распоряжении, которую Я ей дал, и эта сумма может довольно заметно отличаться от содержимого моего кошелька, причём как в ту, так и в другую сторону (при маржинальной торговле). Мне НАСРАТЬ на "лимиты брокера" - в крайнем случае, он просто не пропустит мои заявки. Разумеется, "мои лимиты могут изменяться при выполнении заявок" - МОЙ скрипт это прекрасно учитывает при срабатывании OnTrade. И в гробу я видел эту идиотскую CalcBuySell, равно как и "обработку ситуации отказа выставления заявки" - просто OnTrade не сработает, И ВСЁ!
Владимир написал: И в гробу я видел эту идиотскую CalcBuySell, равно как и "обработку ситуации отказа выставления заявки" - просто OnTrade не сработает, И ВСЁ!
Я сам не использую CalcBuySell (моя стратегия торгов учитывает ограниченность средств), но QUIK написан не только под нас с вами и возможно кто-то эту функцию использует. Ну и пусть. Что вы так горячитесь ?
Дмитрий написал: nikolz,а что не так? Бумаги маржинальные, соответственно, и покупка больше, чем на 300 тыс. Откройте таблицу Купить/Продать и сравните
На учебном сервере плечо 2. Т е максимум 600 тысяч, но не 1 млн.759тыс982. Даже, если предположить, что плечо максимальное (для квалифицированных инвесторов, которым я являюсь, плечо 5 ) , то все равно не выходит каменная чаша.
nikolz написал: На учебном сервере плечо 2. Т е максимум 600 тысяч, но не 1 млн.759тыс982. Даже, если предположить, что плечо максимальное (для квалифицированных инвесторов, которым я являюсь, плечо 5 ) , то все равно не выходит каменная чаша.
Квалифицированный инвестор, смотрите "Тип клиента" - признак используемого типа ведения позиций. У вас на учебном сервере, скорее всего, используется схема ведения позиции по дисконтам.
Надо делать так, как надо. А как не надо - делать не надо.
TGB, Я горячился очень давно и очень недолго - когда думал, что техподдержка заинтересована в качестве ПО QUIK. А у них задачи совсем другие: засрать софт любым говном, которое под руку попадётся, желательно глючным, и хорошенько это дело палкой перемешать. И я давно уже использую лишь АБСОЛЮТНО необходимые для торговли утилиты: OnTrade (тоже с дебильной, позорнейшей реализацией с колодой прерываний на одно событие), getParamEx, sendTransaction и ещё что-то. И я утверждаю, что пользоваться CalcBuySell и тому подобным говном может только полный идиот, ничего не понимающий в программировании. Приговор окончательный, обжалованию не подлежит.
nikolz,число 2 в столбце Плечо уже давно не является значением плеча, как в старые добрые времена :) Как выше написал Старатель Тип клиента в Клиентском портфеле МД, сами значения дисконтов в Купить/Продать И откуда у вас взялась комиссия в 749 руб для покупок на 300 тыс? Можете поиграться с объемом в заявках и посмотреть, что сам квик рассчитывает
Для тех,кто не понял либо не знает, но что-то советует. -------------------- Показываю, что считает QUIK ---------------- Квик считает именно так, как посчитал Я. --------------------------- Сумма 300 тысяч.
Дисконты вообще не из той оперы. ---------------------------------- Удивляюсь, как Вы вообще торгуете, если ничего не понимаете, но даете советы.
nikolz написал: Для тех,кто не понял либо не знает
Дисконты применяются только при маржинальной торговле.
nikolz, как обычно, сел в лужу
как обычно, это вы из нее вылезли ,чтобы прокукарекать чушь. ------------------ Вы прочитайте внимательно. речь идет о функции, которая при расчетах дает не то, что дает терминал КВИК. А он считает без учета плечей, ---------------------- Про заемные средства Вы тоже не в теме. ---------------------- Если У вас нет никаких бумаг то нахрен Вам дисконты. ---------------------- Заемные средства считаются лишь с учетом плеча. --------------------------- Торгую с маржинальными сделками давно. ================= но в данной теме никакие плечи не учитываются, а дисконты вообще применять можно лишь к тупой голове, так как акций для залога в данном расчете нет. --------------------------- Тему уже засрали все, кому не лень, аА объяснить на числах, почему формула и КВИК дает разные результаты никто не может. =================== Хотелось бы услышать автора этой формулы. Просьба разработчиков рассказать , что эта формула считает и почему такое расхождение в результатах расчета КВИКа и этой формулы.
nikolz написал: почему формула и КВИК дает разные результаты
Специально для тупой головы картинки сделал и обвёл красненьким нужные настройки. nikolz, потыкайте галочки в настройках и посмотрите внимательно, что даёт функция и что даёт квик в каждом случае.
Цитата
nikolz написал: Торгую с маржинальными сделками давно
Хвалиться нечем, если честно
Цитата
nikolz написал: Удивляюсь, как Вы вообще торгуете, если ничего не понимаете
Надо делать так, как надо. А как не надо - делать не надо.