<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[QUIK -> DDE &mdash; Снятие заявки. И снятие всех заявок.]]></title>
		<link>https://quik2dde.ru/viewtopic.php?id=124</link>
		<atom:link href="https://quik2dde.ru/extern.php?action=feed&amp;tid=124&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Снятие заявки. И снятие всех заявок.».]]></description>
		<lastBuildDate>Fri, 06 Mar 2015 12:12:59 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Снятие заявки. И снятие всех заявок.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1098#p1098</link>
			<description><![CDATA[<div class="quotebox"><cite>ascerdfg пишет:</cite><blockquote><p>А почему тогда если не указывать [&quot;TRANS_ID&quot;], то &quot;KILL_ALL_FUTURES_ORDERS&quot; заявки не снимает?</p></blockquote></div><p>Потому что TRANS_ID - необходимый признак <strong>подаваемой транзакции</strong> (в данном случае транзакции на снятие заявок). И он никак не связан со снимаемыми заявками, например</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Fri, 06 Mar 2015 12:12:59 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1098#p1098</guid>
		</item>
		<item>
			<title><![CDATA[Re: Снятие заявки. И снятие всех заявок.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1096#p1096</link>
			<description><![CDATA[<div class="quotebox"><cite>swerg пишет:</cite><blockquote><p>Поэтому и снимаются они все.</p></blockquote></div><p>А почему тогда если не указывать [&quot;TRANS_ID&quot;], то &quot;KILL_ALL_FUTURES_ORDERS&quot; заявки не снимает?</p>]]></description>
			<author><![CDATA[null@example.com (ascerdfg)]]></author>
			<pubDate>Fri, 06 Mar 2015 11:46:41 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1096#p1096</guid>
		</item>
		<item>
			<title><![CDATA[Re: Снятие заявки. И снятие всех заявок.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1092#p1092</link>
			<description><![CDATA[<p>Кстати [&quot;ACTION&quot;]=&quot;KILL_ALL_FUTURES_ORDERS&quot; может сносить не всё, может только лишь Buy или только лишь Sell.</p>]]></description>
			<author><![CDATA[null@example.com (ascerdfg)]]></author>
			<pubDate>Thu, 05 Mar 2015 18:26:39 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1092#p1092</guid>
		</item>
		<item>
			<title><![CDATA[Re: Снятие заявки. И снятие всех заявок.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1091#p1091</link>
			<description><![CDATA[<p>Вы несколько путаете кто за что отвечает.<br />&quot;KILL_ALL_FUTURES_ORDERS&quot; - это транзакция, отправляемая на биржу. Исполняет ее биржа.<br />И биржа по этой транзакции снимает все активные заявки, поданные от указанного торгового счета.</p><p>А биржа - она не знает откуда взялись заявки: робот их поставил или через терминал или вообще менеджер брокера выставил заявку по вашему поручению от вашего лица.<br />С точки зрения биржи все заявки от торгового счета - абсолютно одинаковые.</p><p>Поэтому и снимаются они все.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Thu, 05 Mar 2015 18:11:31 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1091#p1091</guid>
		</item>
		<item>
			<title><![CDATA[Re: Снятие заявки. И снятие всех заявок.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1090#p1090</link>
			<description><![CDATA[<p>Кстати [&quot;ACTION&quot;]=&quot;KILL_ALL_FUTURES_ORDERS&quot;, сносит и ручные заявки тоже, не смотря на то что ставил [&quot;TRANS_ID&quot;] и &quot;22&quot; и &quot;1&quot; и &quot;2&quot;.<br />Получается что ручками поторговать, параллельно с роботом, не получится? OnOrder же хватает всё что под руку ему попадёт?</p>]]></description>
			<author><![CDATA[null@example.com (ascerdfg)]]></author>
			<pubDate>Thu, 05 Mar 2015 18:05:18 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1090#p1090</guid>
		</item>
		<item>
			<title><![CDATA[Re: Снятие заявки. И снятие всех заявок.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1070#p1070</link>
			<description><![CDATA[<p>[&quot;ACTION&quot;]=&quot;KILL_ALL_FUTURES_ORDERS&quot;,</p>]]></description>
			<author><![CDATA[null@example.com (ascerdfg)]]></author>
			<pubDate>Thu, 05 Mar 2015 06:44:09 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1070#p1070</guid>
		</item>
		<item>
			<title><![CDATA[Re: Снятие заявки. И снятие всех заявок.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1059#p1059</link>
			<description><![CDATA[<p>Спасибо большое.</p>]]></description>
			<author><![CDATA[null@example.com (slkumax)]]></author>
			<pubDate>Mon, 02 Mar 2015 12:42:29 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1059#p1059</guid>
		</item>
		<item>
			<title><![CDATA[Re: Снятие заявки. И снятие всех заявок.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=982#p982</link>
			<description><![CDATA[<div class="quotebox"><cite>slkumax пишет:</cite><blockquote><p>Сейчас мой привод умеет только выставлять заявки. С какой стороны подойти к вопросу снятия, я пока не понимаю. Если есть возможность, покажите пример кода например, как научить привод снимать нужную мне заявку или все заявки.</p></blockquote></div><div class="codebox"><pre><code>local is_run = true
function OnStop() is_run = false end
local table_remove = table.remove
local ccode = &quot;TQBR&quot;
local s_list = {&quot;SBER&quot;,&quot;GAZP&quot;,&quot;MTLR&quot;}
local account = --вставка
local clientcode = --вставка
local row = getNumberOf(&quot;orders&quot;)--№ строки Таблицы заявок
local trans_id = 1
local newOrder = {}--вид: {[order_num1] = row1,[order_num2] = row2,...[order_numN] = rowN}
local MSG = {[&quot;B&quot;] = &quot;выставлена заявка Купля:\n№ &quot;,[&quot;S&quot;] = &quot;выставлена заявка Продажа:\n№ &quot;}
--функции--
local bBand = bit.band
local orderstatus = function (flags)--статус заявки
    if bBand(flags,1)~=0 then return &quot;A&quot; 
    else
        if bBand(flags,2)~=0 then return &quot;K&quot;
        else return &quot;F&quot; end
    end
end
local orderBS = function (flags)--направление
    if bBand(flags, 4)~=0 then return &quot;S&quot; else return &quot;B&quot; end
end
local sendLimit = function (op, scode, ccode, pri, lot, tr_id)
    local send = {
    [&quot;ACTION&quot;] = &quot;NEW_ORDER&quot;,
    [&quot;TRANS_ID&quot;] = tostring(tr_id),
    [&quot;ACCOUNT&quot;] = account,
    [&quot;CLIENT_CODE&quot;] = clientcode,
    [&quot;TYPE&quot;] = &quot;L&quot;,
    [&quot;OPERATION&quot;] = op,
    [&quot;CLASSCODE&quot;] = ccode,
    [&quot;SECCODE&quot;] = scode,
    [&quot;PRICE&quot;] = tostring(pri),
    [&quot;QUANTITY&quot;] = tostring(lot)
    }
    local res = sendTransaction(send)
    if res ~= &quot;&quot; then message(&quot;sendLimit : &quot; .. res, 2) return nil else return tr_id end
end
local sendKill = function (onum, scode, ccode)
    local kill = {
    [&quot;ACTION&quot;] = &quot;KILL_ORDER&quot;,
    [&quot;CLASSCODE&quot;] = ccode,
    [&quot;SECCODE&quot;] = scode,
    [&quot;ORDER_KEY&quot;] = tostring(onum),
    [&quot;TRANS_ID&quot;] = &quot;666&quot;
    }
    local res = sendTransaction(kill)
    if res ~= &quot;&quot; then message(&quot;Kill : &quot; .. res, 2) return nil else return &quot;6666&quot; end
end
local killAll = function (tab, ccode)
    for order_num, row in pairs(tab) do
        local item = getItem(&quot;orders&quot;, row)
        local flag = item.flags
        if item.order_num == order_num and orderstatus(flag) == &quot;A&quot; then 
            _ = sendKill(order_num, item.sec_code, ccode)
        end
    end
end
local LENnewOrder = 0--кол-во элементов в newOrder
function OnOrder(order)
    local order_num = 0 + order.order_num
    if not newOrder[order_num] then--если нет данных о заявке
        newOrder[order_num] = row
        LENnewOrder = LENnewOrder + 1
        row = row + 1
        local op = orderBS(order.flags)
        message(MSG[op]..order_num, 2)
    end
end
for i=1,#s_list do
    local sec = s_list[i]
    local pricemin = 0 + getParamEx(ccode,sec,&quot;PRICEMIN&quot;).param_value
    _ = sendLimit(&quot;B&quot;, sec, ccode, pricemin, 1, trans_id)
    trans_id = trans_id + 1
end
function main()
    while is_run do
        if LENnewOrder == 3 and getNumberOf(&quot;orders&quot;) == row then
            killAll(newOrder, ccode)
            newOrder = {}
            LENnewOrder = 0
            is_run = false
        end
        sleep(1)
    end
end</code></pre></div><p>Приятного заработка</p>]]></description>
			<author><![CDATA[null@example.com (kalikazandr)]]></author>
			<pubDate>Fri, 06 Feb 2015 08:51:05 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=982#p982</guid>
		</item>
		<item>
			<title><![CDATA[Re: Снятие заявки. И снятие всех заявок.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=816#p816</link>
			<description><![CDATA[<p>Сейчас мой привод умеет только выставлять заявки. С какой стороны подойти к вопросу снятия, я пока не понимаю. Если есть возможность, покажите пример кода например, как научить привод снимать нужную мне заявку или все заявки.</p>]]></description>
			<author><![CDATA[null@example.com (slkumax)]]></author>
			<pubDate>Wed, 28 Jan 2015 10:48:43 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=816#p816</guid>
		</item>
		<item>
			<title><![CDATA[Re: Снятие заявки. И снятие всех заявок.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=812#p812</link>
			<description><![CDATA[<div class="quotebox"><cite>slkumax пишет:</cite><blockquote><p>Подскажите пожалуйста, как сделать адекватное снятие заявки теперь по номеру из скрипта на LUA написанном.</p></blockquote></div><p>По номеру чего? номеру заявки?<br />Так заявка и снимается по ее номеру.</p><div class="quotebox"><cite>slkumax пишет:</cite><blockquote><p>Как я понимаю, нужно брать таблицу заявок, искать среди них нужную не исполненную и её снимать.</p></blockquote></div><p>Если вы знаете номер - то искать не нужно, нужно сразу снимать по номеру.<br />Если номер не знаете - тогда да, искать нужную, только не понятны критерии нужности, но тут разработчику стратегии виднее.</p><div class="quotebox"><cite>slkumax пишет:</cite><blockquote><p>А снятие всех заявок- искать все неисполненные видимо.<br />Кстати какой ответ будет давать квик, если заявка не исполнена?</p></blockquote></div><p>Ответ где? не понятно.<br />С каждой заявкой сопоставлена таблица Lua.<br />В ней есть поле <strong>flags</strong>, в котором есть битовые флажки, по ним можно определить активна заявка, снята или исполнена. См. справку.</p><p>Или вам нужен пример кода и в этом собственно вопрос?</p><p>Было бы здорово, если бы вы как-то поконкретнее формулировали ваши вопросы, иначе не очень понятно что отвечать.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Wed, 28 Jan 2015 09:30:32 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=812#p812</guid>
		</item>
		<item>
			<title><![CDATA[Снятие заявки. И снятие всех заявок.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=811#p811</link>
			<description><![CDATA[<p>Подскажите пожалуйста, как сделать адекватное снятие заявки теперь по номеру из скрипта на LUA написанном.<br />Как я понимаю, нужно брать таблицу заявок, искать среди них нужную не исполненную и её снимать.<br />А снятие всех заявок- искать все неисполненные видимо.<br />Кстати какой ответ будет давать квик, если заявка не исполнена?</p>]]></description>
			<author><![CDATA[null@example.com (slkumax)]]></author>
			<pubDate>Wed, 28 Jan 2015 07:16:07 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=811#p811</guid>
		</item>
	</channel>
</rss>
