<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[QUIK -> DDE &mdash; Помогите найти цену последнего стоп ордера]]></title>
	<link rel="self" href="https://quik2dde.ru/extern.php?action=feed&amp;tid=444&amp;type=atom" />
	<updated>2023-12-01T08:57:44Z</updated>
	<generator>PunBB</generator>
	<id>https://quik2dde.ru/viewtopic.php?id=444</id>
		<entry>
			<title type="html"><![CDATA[Re: Помогите найти цену последнего стоп ордера]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=4311#p4311" />
			<content type="html"><![CDATA[<p>Всем привет! Отдельный привет swerg!<br />Оказывается написать логику торгового робота очень не просто! Две недели ломаю голову, как не активную заявку на покупку привязать к активной заявке на продажу, что бы когда активная заявка на продажу станет не активной робот не выставил снова заявку на продажу. <br />Прошу помощи, я не нахожу решения!</p>]]></content>
			<author>
				<name><![CDATA[Серёга]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3423</uri>
			</author>
			<updated>2023-12-01T08:57:44Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=4311#p4311</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Помогите найти цену последнего стоп ордера]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=4309#p4309" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Серёга пишет:</cite><blockquote><p>как у Вас получается вставлять код в отдельное окно?</p></blockquote></div><p>Добрый день!</p><p>Для этого надо выделить текст программы в сообщении и нажать кнопку вставки соответствующего BBCode.<br />Ну либо руками вписать этот BBCode в текст.</p><p><span class="postimg"><img src="https://quik2dde.ru/static-img/444/code-1.png" alt="https://quik2dde.ru/static-img/444/code-1.png" /></span></p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://quik2dde.ru/profile.php?id=2</uri>
			</author>
			<updated>2023-11-23T16:21:54Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=4309#p4309</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Помогите найти цену последнего стоп ордера]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=4308#p4308" />
			<content type="html"><![CDATA[<p>ОГРОМНОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!!!!!!!!!!<br />нашёл свою ошибку! В моём случае (n_order.flags &amp; 1) == 1</p>]]></content>
			<author>
				<name><![CDATA[Серёга]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3423</uri>
			</author>
			<updated>2023-11-22T09:11:42Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=4308#p4308</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Помогите найти цену последнего стоп ордера]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=4307#p4307" />
			<content type="html"><![CDATA[<p>Что то я не так пишу! ошибка: attempt to index a nil value (global &#039;order&#039;)<br /></p><div class="codebox"><pre><code>function last_order()
  local last_order = {}
  local n = getNumberOf(&quot;orders&quot;)

  while n &gt; 0 do
    local n_order = getItem(&quot;orders&quot;, n-1)
    if n_order.sec_code == n_seccode 
        and n_order.trans_id == n_id
        and  (order.flags &amp; 1) == 1 --&lt;&lt;&lt;
    then
      last_order = n_order
      break
    end
    n = n - 1
  end

  return last_order
end

function main()
  nash_order = last_order()
  cena_order = nash_order.price

  message(&quot;&quot;..tostring(cena_order))
  sleep(3000)
 
end</code></pre></div><p>как у Вас получается вставлять код в отдельное окно?</p>]]></content>
			<author>
				<name><![CDATA[Серёга]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3423</uri>
			</author>
			<updated>2023-11-22T08:53:03Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=4307#p4307</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Помогите найти цену последнего стоп ордера]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=4306#p4306" />
			<content type="html"><![CDATA[<p>getItem возвращает таблицу Orders<br />В которой есть поле flags с &quot;битовыми флагами&quot;<br />В этом поле:<br />бит 0 (0x1) &nbsp; &nbsp; - &nbsp; &nbsp; Заявка активна, иначе – не активна</p><p>т.е.</p><div class="codebox"><pre><code>local order = getItem(&quot;orders&quot;, n-1)
...
if (order.flags &amp; 1) == 1 then
   ... заявка активна
else
   ... заявка не активна
end</code></pre></div><p>PS<br />Код только для Lua 5.3 и 5.4 ! т.к. используется встроенная битовая операция</p>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2023-11-22T07:38:32Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=4306#p4306</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Помогите найти цену последнего стоп ордера]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=4305#p4305" />
			<content type="html"><![CDATA[<p>В таблице заявок каждой заявке присвоин десяти значный порядковый номер. Функция getNumberOf считает общее колличество заявок: активные, не активные. А вот с помощью функции getItem ищем заявку с нужным клиент кодом и названию бумаги ( для точности можно добавить trans_id). Отсчет заявок начинается с &quot; 0 &quot;. Вот эта &quot;нулевая&quot; первая заявка в таблице заявок с самым большим порядковым номером является ПОСЛЕДНЕЙ заявкой. Мне надо найти ПОСЛЕДЮЮ АКТИВНУЮ заявку!<br />Или получить &quot;nil&quot; если такой нет. Теперь пытаюсь понять как с помощью функции SearchItems и fn можно найти последнюю активную заявку, конечно отсортировав по клиент коду и названию бумаги.<br />Странно то, что в таблице заявок есть столбец &quot; Состояние &quot;, где отображается активная / не активная, а функция getItem не использует его! По крайней мере в руководстве пользователя я не сумел разобрать.</p>]]></content>
			<author>
				<name><![CDATA[Серёга]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3423</uri>
			</author>
			<updated>2023-11-22T07:28:49Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=4305#p4305</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Помогите найти цену последнего стоп ордера]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=4304#p4304" />
			<content type="html"><![CDATA[<p>Всё же, какая у вас задача?<br />Среди всех заявок найти самую последнюю по времени активную? или задача какая-то другая?<br />Или может вам надо найти последнюю активную по определенному инструменту?</p><p>Сформулируйте, пожалуйста.</p>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2023-11-22T05:35:43Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=4304#p4304</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Помогите найти цену последнего стоп ордера]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=4303#p4303" />
			<content type="html"><![CDATA[<p>Не могу разобраться как правильно писать функцию SearchItems и&nbsp; fn к ней прилагающейся.<br />В итоге надо найти последнюю активную заявку.</p>]]></content>
			<author>
				<name><![CDATA[Серёга]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3423</uri>
			</author>
			<updated>2023-11-21T21:21:35Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=4303#p4303</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Помогите найти цену последнего стоп ордера]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=4302#p4302" />
			<content type="html"><![CDATA[<p>Спасибо огромное за отклик! <br />Я только начал грызть гранит lua. <br />Теперь другая проблема, эта функция не различает активную заявку от не активной.<br />Надо разбираться как писать функцию SearchItems. <br />Есть вопро! Робот выставляет заявку, но в комментарии нет комментария который я задавал, отображается только счёт клиента? Я планировал различать заявки активные от не активных по комментарию. Это я где-то здесь вычитал.</p>]]></content>
			<author>
				<name><![CDATA[Серёга]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3423</uri>
			</author>
			<updated>2023-11-21T16:05:17Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=4302#p4302</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Помогите найти цену последнего стоп ордера]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=4301#p4301" />
			<content type="html"><![CDATA[<p>Вы залогируйте значения order.sec_code и order.trans_id внутри цикла.<br />Может вы ищите и сравниваете совсем не то, что есть в таблице.<br />Логирование хотя бы даст информацию для анализа, а так сейчас не понятно как искать проблему.</p>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2023-11-21T02:27:27Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=4301#p4301</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Помогите найти цену последнего стоп ордера]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=4300#p4300" />
			<content type="html"><![CDATA[<p>помогите найти цену нужного ордера<br />данная функция не находит нужный ордер и находится в постоянном поиске</p>]]></content>
			<author>
				<name><![CDATA[Серёга]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3423</uri>
			</author>
			<updated>2023-11-20T12:40:38Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=4300#p4300</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Помогите найти цену последнего стоп ордера]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=4299#p4299" />
			<content type="html"><![CDATA[<p>помогите найти цену нужного ордера<br />данная функция не находит нужный ордер и находится в постоянном поиске</p><div class="codebox"><pre><code>function last_order()
  local last_order = {}
  local n = getNumberOf(&quot;orders&quot;)

  while n &gt; 0 do
    local order = getItem(&quot;orders&quot;, n-1)
    if order.sec_code == n_seccode
         and order.trans_id == n_id
    then
      last_order = order
      break
      n = n - 1
    end

  end

  return last_order
end</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Серёга]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3423</uri>
			</author>
			<updated>2023-11-20T12:37:32Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=4299#p4299</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Помогите найти цену последнего стоп ордера]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=4297#p4297" />
			<content type="html"><![CDATA[<p>помогите найти цену нужного ордера<br />данная функция не находит нужный ордер и находится в постоянном поиске</p><div class="codebox"><pre><code>function last_order()
  local last_order = {}
  local n = getNumberOf(&quot;orders&quot;)

  while n &gt; 0 do
    local order = getItem(&quot;orders&quot;, n-1)
    if order.sec_code == n_seccode
         and order.trans_id == n_id 
    then
       last_order = order
       break
       n = n - 1
    end

  end

  return last_order
end</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Серёга]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3423</uri>
			</author>
			<updated>2023-11-17T09:14:50Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=4297#p4297</id>
		</entry>
</feed>
