<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: не записывает больше одной сделки в файлик]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме не записывает больше одной сделки в файлик форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Mon, 13 Apr 2026 22:12:04 +0300</pubDate>
		<item>
			<title>не записывает больше одной сделки в файлик</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message58883/topic6824/">не записывает больше одной сделки в файлик</a></b> <i>CSV файл </i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_O76Sykp2" href="/user/14299/" bx-tooltip-user-id="14299">Владимир</a> написал:<br /><noindex><a href="/user/15228/" target="_blank" rel="nofollow">Яна</a></noindex>, Главный совет вовсе не про OnTrade - работайте в ОЗУ! Передавать данные через файл - это источник вечных глюков.<br />=============<br />Слушайте, а ведь вы оказались правы полностью! У меня у робота есть признак - его название, который передается в систему при выставлении ордеров, и я в итоге из функции почти на 100 строк для проверки данных сделала на 40 строк, и все берется из системы. Не догнала сразу всю полноту вашего коммента. Спасибо! <br />
			<i>22.10.2021 16:22:17, Яна.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message58883/topic6824/</link>
			<guid>http://forum.quik.ru/messages/forum10/message58883/topic6824/</guid>
			<pubDate>Fri, 22 Oct 2021 16:22:17 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>не записывает больше одной сделки в файлик</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message58882/topic6824/">не записывает больше одной сделки в файлик</a></b> <i>CSV файл </i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_X2SLK1Kc" href="/user/15228/" bx-tooltip-user-id="15228">Яна</a>, Главный совет вовсе не про OnTrade - работайте в ОЗУ! Передавать данные через файл - это источник вечных глюков. <br />
			<i>22.10.2021 16:02:30, Владимир.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message58882/topic6824/</link>
			<guid>http://forum.quik.ru/messages/forum10/message58882/topic6824/</guid>
			<pubDate>Fri, 22 Oct 2021 16:02:30 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>не записывает больше одной сделки в файлик</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message58880/topic6824/">не записывает больше одной сделки в файлик</a></b> <i>CSV файл </i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_d6Z7fBVi" href="/user/14299/" bx-tooltip-user-id="14299">Владимир</a> написал:<br /><noindex><a href="/user/15228/" target="_blank" rel="nofollow">Яна</a></noindex>, Господи, какой ужас! Для новичка в программировании кода раз в пять больше, чем нужно. :: <br /><br />Пока не глядя на код:<br />1. Данные об отправленной транзакции Вам не нужны, уверен на 99.999%.<br />2. Скрипт ничего не должен видеть &quot;в файлике&quot; - работайте в ОЗУ!<br /><br />Теперь смотрим код:<br />1. OnTransReply - это информация о транзакции, но никак не о сделке. Лично я пользуюсь только OnTrade, что и другим советую. Кстати, учтите, что прерывания приходят пачками, обычно по три штуки на одно событие. Ага, Вы это вроде как учитываете, но ТАКОЙ учёт от ошибок не гарантирует: если проскочит прерывание с другой айдишкой (а оно проскочит - проверено!), а потом снова прилетит по этой же транзакции, то Вы уже перезапишете свой id_done, и посчитаете неверно.<br />=============<br />Владимир, за оценку я признательна, но из практического совета дан только замена на OnTrade, что вообще никак не соотносится с моим вопросом. <br />
			<i>22.10.2021 15:44:36, Яна.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message58880/topic6824/</link>
			<guid>http://forum.quik.ru/messages/forum10/message58880/topic6824/</guid>
			<pubDate>Fri, 22 Oct 2021 15:44:36 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>не записывает больше одной сделки в файлик</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message58877/topic6824/">не записывает больше одной сделки в файлик</a></b> <i>CSV файл </i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_rOp59gH9" href="/user/15228/" bx-tooltip-user-id="15228">Яна</a>, Господи, какой ужас! Для новичка в программировании кода раз в пять больше, чем нужно. <img src="http://forum.quik.ru/upload/main/smiles/5/icon_smile.png" border="0" data-code=":smile:" data-definition="SD" alt=":smile:" style="width:16px;height:16px;" title="С улыбкой" class="bx-smile" /> <br /><br />Пока не глядя на код:<br />1. Данные об отправленной транзакции Вам не нужны, уверен на 99.999%.<br />2. Скрипт ничего не должен видеть &quot;в файлике&quot; - работайте в ОЗУ!<br /><br />Теперь смотрим код:<br />1. OnTransReply - это информация о транзакции, но никак не о сделке. Лично я пользуюсь только OnTrade, что и другим советую. Кстати, учтите, что прерывания приходят пачками, обычно по три штуки на одно событие. Ага, Вы это вроде как учитываете, но ТАКОЙ учёт от ошибок не гарантирует: если проскочит прерывание с другой айдишкой (а оно проскочит - проверено!), а потом снова прилетит по этой же транзакции, то Вы уже перезапишете свой id_done, и посчитаете неверно. <br />
			<i>22.10.2021 14:41:13, Владимир.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message58877/topic6824/</link>
			<guid>http://forum.quik.ru/messages/forum10/message58877/topic6824/</guid>
			<pubDate>Fri, 22 Oct 2021 14:41:13 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>не записывает больше одной сделки в файлик</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message58871/topic6824/">не записывает больше одной сделки в файлик</a></b> <i>CSV файл </i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Коллеги, добрый день! Я новичок в программировании луа, и у меня возникла проблема. Есть скрипт, который записывает в файл csv данные об отправленной транзакции в систему, далее скрипт проверяет состояние стопа и фиксирует, если стоп выполнен. И вот после этого происходят чудеса: если появляется ещё одна сделка, то скрипт её открывает, но вот в файлик уже ничего не записывается, и в итоге ломается учёт, так как скрипт не видит записи о номере стопа в файлике. Подскажите, пожалуйста, как это можно починить?
====code====
<pre>-- Функция вызывается терминалом, когда с сервера приходит новая информация о транзакциях
function OnTransReply(trans_reply)
&nbsp;&nbsp; -- Если пришла информация по нашей транзакции
&nbsp;&nbsp; if trans_reply.trans_id == id_done then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Если данный статус уже был обработан, выходит из функции, иначе запоминает статус, чтобы не обрабатывать его повторно
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if trans_reply.status == LastStatus then return else LastStatus = trans_reply.status &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Выводит в сообщении статусы выполнения транзакции
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;trans_reply.status == 1&nbsp;&nbsp; then -- транзакция активна
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --message('OnTransReply(): По транзакции №'..trans_reply.trans_id..' УСПЕШНО ВЫСТАВЛЕНА заявка №'..trans_reply.order_num..' по цене '..trans_reply.price..' объемом '..trans_reply.quantity,3) 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;trans_reply.status ==3&nbsp;&nbsp; then -- транзакция выполнена, запись в журнал
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--message(trans_reply.result_msg,1)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--message('OnTransReply(): По транзакции №'..trans_reply.trans_id..' УСПЕШНО ВЫПОЛНЕНА заявка №'..trans_reply.order_num..' по цене '..trans_reply.price..' объемом '..trans_reply.quantity,3) 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OrderNum = trans_reply.order_num 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OrderTime=trans_reply.datetime 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OrderPrice=trans_reply.price 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OrderQuantity=trans_reply.quantity 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OrderCond=TP 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OrderInstr =trans_reply.sec_code
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ordcomment=trans_reply.brokerref
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local tradeline= os.date("%c", os.time(trans_reply.datetime))..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OrderInstr..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OrderQuantity ..";".. 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OrderCond..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OrderPrice..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OrderNum ..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Open_order"..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ACCOUNT..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ordcomment..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Created".."&#92;n"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CSV:seek("end",0)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CSV:write(tradeline); --записали значения в файлик
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CSV:flush(); --сохранили файлик
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp; end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Если пришла информация по нашей стоп-транзакции
&nbsp;&nbsp; if trans_reply.trans_id == id_take then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Если данный статус уже был обработан, выходит из функции, иначе запоминает статус, чтобы не обрабатывать его повторно
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if trans_reply.status == TakeStatus then return else TakeStatus = trans_reply.status end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Выводит в сообщении статусы выполнения транзакции
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;trans_reply.status == 3&nbsp;&nbsp; then -- транзакция активна
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stopnumb =trans_reply.order_num
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SlTpOrderTime=trans_reply.datetime 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SlTpOrderPrice=trans_reply.price 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SlTpOrderQuantity=trans_reply.quantity 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SlTpOrderCond=TP
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SlTpOrderInstr=trans_reply.sec_code
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SlComment=trans_reply.brokerref
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --message('OnTransReply(): По транзакции №'..trans_reply.trans_id..' ВЫПОЛНЕНА заявка №'..trans_reply.order_num..' по цене '..trans_reply.price..' объемом '..trans_reply.quantity,3) 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local Stopline= os.date("%c", os.time(trans_reply.datetime))..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SlTpOrderInstr..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SlTpOrderQuantity ..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SlTpOrderCond ..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SlTpOrderPrice ..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stopnumb ..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Take_Stop_order"..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ACCOUNT..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SlComment..";"..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Created".."&#92;n"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CSV:seek("end",0)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CSV:write(Stopline); --записали значения в файлик
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CSV:flush(); --сохранили файлик
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp; end
end
</pre>
============= <br />
			<i>22.10.2021 13:17:04, Яна.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message58871/topic6824/</link>
			<guid>http://forum.quik.ru/messages/forum10/message58871/topic6824/</guid>
			<pubDate>Fri, 22 Oct 2021 13:17:04 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
