<?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>Sun, 03 May 2026 03:24:15 +0300</pubDate>
		<item>
			<title>Алгоритм скрипта по разному отрабатывает в режиме отладчика и автономно</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum9/message29332/topic3389/">Алгоритм скрипта по разному отрабатывает в режиме отладчика и автономно</a></b> в форуме <a href="http://forum.quik.ru/forum9/">Программирование на языке QPILE</a>. <br />
			попробую правильно расставить скобки, и все-таки прошу уточнить правильно ли я понимаю, что при коде &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CHETCHIKCIKLOV = CHETCHIKCIKLOV + 1 <br />CHETCHIKCIKLOV должен в течении работы программы постоянно увеличиваться и после некоторого времени работы скрипта, он должен быть не равен 0, с учетом, того, что CHETCHIKCIKLOV глобальная переменная, и я должен буду увидеть это в отладчике &nbsp; <br />
			<i>21.02.2018 18:15:58, Артем.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum9/message29332/topic3389/</link>
			<guid>http://forum.quik.ru/messages/forum9/message29332/topic3389/</guid>
			<pubDate>Wed, 21 Feb 2018 18:15:58 +0300</pubDate>
			<category>Программирование на языке QPILE</category>
		</item>
		<item>
			<title>Алгоритм скрипта по разному отрабатывает в режиме отладчика и автономно</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum9/message29286/topic3389/">Алгоритм скрипта по разному отрабатывает в режиме отладчика и автономно</a></b> в форуме <a href="http://forum.quik.ru/forum9/">Программирование на языке QPILE</a>. <br />
			<a class="blog-p-user-name" id="bp_ol3CmAV3" href="/user/5979/" bx-tooltip-user-id="5979">Артем</a>, <br /><br />Простите, но в приведенном коде нет тех функций о которых Вы говорили.<br />Например, где в приведенном коде вот это:<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_uDrZWG0O" href="/user/5979/" bx-tooltip-user-id="5979">Артем</a> написал:<br />IF (USL1=1 AND (FLAGCDELOK +0 )= 0 AND CHETCHIKCIKLOV &gt; 2)' USL1 принимает значение 1 когда имеются 2 подряд бычьи свечи<br />алгоритм входа в позицию<br />FLAGCDELOK = 1<br />END IF<br /><br />=============<br /><br />В результате, мы не можем связать приведенный код с тем описанием которое Вы привели. А значит и анализировать его нет смысла.<br /><br /><br />К слову, возможно что проблема в некорректно расставленных скобках.<br />Приведите все скобки во всех условиях IF к нормальному виду.<br />например, вместо <br /><br />====quote====<br />IF SDEL= 1 AND USL1=1 AND (FLAGCDELOK +0 ) = 0<br />=============<br />правильно писать так:<br /><br />====quote====<br />IF (SDEL= 1) AND (USL1=1) AND (FLAGCDELOK +0 = 0) <br />=============<br />И аналогично во всех остальных условиях IF<br />как бы это ни было смешно, но в QPILE, правильное выставление скобок может иметь решающее значение. <br />
			<i>20.02.2018 05:51:48, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum9/message29286/topic3389/</link>
			<guid>http://forum.quik.ru/messages/forum9/message29286/topic3389/</guid>
			<pubDate>Tue, 20 Feb 2018 05:51:48 +0300</pubDate>
			<category>Программирование на языке QPILE</category>
		</item>
		<item>
			<title>Алгоритм скрипта по разному отрабатывает в режиме отладчика и автономно</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum9/message29279/topic3389/">Алгоритм скрипта по разному отрабатывает в режиме отладчика и автономно</a></b> в форуме <a href="http://forum.quik.ru/forum9/">Программирование на языке QPILE</a>. <br />
			PORTFOLIO_EX client_value;<br />DESCRIPTION клиентский объём;<br />CLIENTS_LIST ALL_CLIENTS;<br />FIRMS_LIST ALL_FIRMS;<br />USE_CASE_SENSITIVE_CONSTANTS<br />PROGRAM<br /> &nbsp; <br /> <br />' =========ПОЛЬЗОВАТЕЛЬСКИЕ НАСТРОЙКИ=============<br /> &nbsp; &nbsp;INSTRUMENT=&quot;BRH8&quot; ' код инструмента<br /> &nbsp; &nbsp;CLASSCODE=&quot;SPBFUT&quot; ' код группы<br /> &nbsp; &nbsp;NUMBER=2 ' количество забираемых баров с графика<br /> &nbsp; &nbsp;INTERVAL=15 ' таймфрейм на открытом графике в минутах (0 &lt; INTERVAL &lt; 60)<br /> &nbsp; &nbsp;LOT=1 ' лот в сделке<br /> &nbsp; &nbsp;SEC=10 ' бумаг в лоте<br /> &nbsp; &nbsp;ACCOUNT=&quot;SPBFUT00494&quot; ' здесь вводится номер Вашего счёта на ММВБ<br /> &nbsp; &nbsp;CLIENTCODE=&quot;&quot; ' здесь вводится Ваш код клиента<br /><br /> &nbsp; ' &quot;SPBFUT007EQ&quot;10222<br />' ====================ПЕРЕМЕННЫЕ==================<br /> &nbsp; &nbsp;ACTION=&quot;&quot; ' стираем тип транзакции<br /> &nbsp; &nbsp;HH = 0 ' обнуляем максимум за<br /> &nbsp; &nbsp;LL = 10000000 ' &nbsp;обнуляем минимум за<br /> &nbsp; &nbsp;<br /> &nbsp; &nbsp;' ===============ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ===============<br />NEW_GLOBAL(&quot;LPRICEB&quot;,0) &nbsp; &nbsp;<br />NEW_GLOBAL(&quot;LPRICEL&quot;,0)<br /> <br />NEW_GLOBAL(&quot;LPRICE&quot;,0) ' последняя (текущая) цена<br /> &nbsp; &nbsp;NEW_GLOBAL(&quot;BARCOUNT&quot;,0) ' счётчик баров<br /> &nbsp; &nbsp;NEW_GLOBAL(&quot;ORDERCOUNT&quot;,0) ' счётчик используется для формирования ID заявок<br /> &nbsp; &nbsp;NEW_GLOBAL (&quot;L_POSA&quot;,0) ' флаг наличия длинной позиции<br /> &nbsp; &nbsp;NEW_GLOBAL (&quot;S_POSA&quot;,0) ' флаг наличия короткой позиции<br /> &nbsp; &nbsp;NEW_GLOBAL (&quot;L_POSASTOP&quot;,0) ' флаг наличия длинной STOPпозиции<br /> &nbsp; &nbsp;NEW_GLOBAL (&quot;S_POSASTOP&quot;,0) ' флаг наличия короткой STOPпозиции<br /> &nbsp; &nbsp;NEW_GLOBAL (&quot;PRICESTOPORDER&quot;,0) 'Цена последней заявки –базовая цена для расчета стоп-ордера<br /> &nbsp; &nbsp;NEW_GLOBAL (&quot;POSITION&quot;,0)' счетчик позиций<br /> &nbsp; &nbsp;NEW_GLOBAL (&quot;FLAGSTOPORDER&quot;,0) ' Флаг стоп-ордера &nbsp; &nbsp;<br /> &nbsp; &nbsp;NEW_GLOBAL (&quot;TRANS_ID&quot;,0) 'Идентификатор транзакции<br /> &nbsp; &nbsp;NEW_GLOBAL (&quot;NEW_ORDER&quot;,0) 'СЧЕТЧИК ОРДЕРОВ<br />NEW_GLOBAL (&quot;NEW_ORDER&quot;,0) 'СЧЕТЧИК ОРДЕРОВ<br />NEW_GLOBAL (&quot;QUANTITY&quot;,0)<br />NEW_GLOBAL (&quot;STOPNUMBER&quot;,0)<br />NEW_GLOBAL (&quot;CHIST&quot;,0)<br />NEW_GLOBAL (&quot;KOLSTOP&quot;,0)<br />NEW_GLOBAL (&quot;STATUS&quot;,0)<br />NEW_GLOBAL (&quot;SECCODE&quot;,0)<br /> <br />NEW_GLOBAL (&quot;FLAGSDELMAP1&quot;,0)<br />NEW_GLOBAL (&quot;FLAGSDELMAP2&quot;,0)<br />NEW_GLOBAL (&quot;PREDFLAGSDELMAP1&quot;,0)<br />NEW_GLOBAL (&quot;PREDFLAGSDELMAP2&quot;,0)<br /><br /><br />NEW_GLOBAL (&quot;PREDFLAGSDEL&quot;,0)<br />NEW_GLOBAL (&quot;FLAGSDEL&quot;,0) <br />NEW_GLOBAL (&quot;FLAGSDELOBCH&quot;,0)<br />' NEW_GLOBAL (&quot;TRID&quot;,0)<br /><br />NEW_GLOBAL (&quot;CHETCHIKCIKLOV&quot;,0)<br /><br />NEW_GLOBAL (&quot;CHETCHIKCIKLOVMAP&quot;,0)<br />NEW_GLOBAL (&quot;FLAGCDELOK&quot;,0)<br />NEW_GLOBAL (&quot;CHETCHIKCIKLOVMAP1&quot;,0)<br />NEW_GLOBAL (&quot;CHETCHIKCIKLOVMAP2&quot;,0)<br /><br />' ===============СЕРВЕРНЫЕ ДАТА И ВРЕМЯ===============<br /> &nbsp; &nbsp;SERVERDATE=GET_INFO_PARAM(&quot;TRADEDATE&quot;) &nbsp;' дата сервера в формате DD.MM.YYYY<br /> &nbsp; &nbsp;SERVERTIME=GET_INFO_PARAM(&quot;SERVERTIME&quot;) ' время сервера в формате HH:MM:S<br /> &nbsp; &nbsp;DATETIME (SERVERDATE,SERVERTIME) ' вызов функции даты-времени<br /><br /><br />' ===============ФУНКЦИИ ТРАНЗАКЦИЙ===============<br />FOR NRRC FROM 0 TO GET_NUMBER_OF(&quot;ORDERS&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />TABC = GET_ITEM (&quot;TRADES&quot;, NRRC)<br />OPERDEL = GET_VALUE(GET_ITEM (&quot;TRADES&quot;, NRRC), &quot;OPERATION&quot;)<br />PRICEDEL = GET_VALUE(GET_ITEM (&quot;TRADES&quot;, NRRC), &quot;PRICE&quot;) + 0<br />IF OPERDEL = &quot;SELL&quot;<br />LPRICEL = PRICEDEL + 0.10<br />END IF<br />IF OPERDEL = &quot;BUY&quot;<br />LPRICEB = PRICEDEL - 0.10<br />END IF<br />END FOR<br /><br />' ФУНКЦИЯ ОТПРАВКИ ТРАНЗАКЦИЙ<br /> FUNC ORDER(PRICE,LOT,DIRECTION,TYPE,TRANS_ID)<br /> &nbsp; &nbsp; &nbsp; &nbsp;NEW_GLOBAL(&quot;TRANS_PARAMS&quot;, &quot;&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp;NEW_GLOBAL(&quot;TRANS_RESULT&quot;, &quot;&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_ID = TRANS_ID + 1<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;ACCOUNT&quot;, ACCOUNT) ' наш счёт на ММВБ<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;CLIENT_CODE&quot;, CLIENTCODE) ' клиентский код<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;CLASSCODE&quot;, &quot;SPBFUT&quot;) ' код класса<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;SECCODE&quot;, INSTRUMENT) ' инструмент<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;ACTION&quot;, ACTION) ' вид заявки (обычная, стоп, условная)<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;PRICE&quot;, LPRICE) ' цена<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;QUANTITY&quot;, LOT) ' лот<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;OPERATION&quot;, DIRECTION) ' направление &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;TYPE&quot;, &quot;M&quot;) ' тип заявки (лимитированная или &quot;по рынку&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;TRANS_ID&quot;, TRID) ' ID транзакции<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_RESULT = SEND_TRANSACTION (3000, TRANS_PARAMS) ' отправляем заявку в систему<br /> &nbsp; &nbsp; &nbsp; &nbsp;ORDERCOUNT=ORDERCOUNT+1 ' увеличили счётчик заявок на единицу<br /> &nbsp; &nbsp;END FUNC<br /><br /><br /><br /><br /><br /><br />' ФУНКЦИЯ ОТПРАВКИ СТОП ТРАНЗАКЦИЙ<br />FUNC STOPORDERS(PRICE,STOPPRICE, LOT,DIRECTION,TYPE,TRANS_ID)<br /> &nbsp; &nbsp; &nbsp; &nbsp;NEW_GLOBAL(&quot;TRANS_PARAMS&quot;, &quot;&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp;NEW_GLOBAL(&quot;TRANS_RESULT&quot;, &quot;&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_ID = TRANS_ID + 1<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;ACCOUNT&quot;, ACCOUNT) ' наш счёт на ММВБ<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;CLIENT_CODE&quot;, CLIENTCODE) ' клиентский код<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;CLASSCODE&quot;, &quot;SPBFUT&quot;) ' код класса<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;SECCODE&quot;, INSTRUMENT) ' инструмент<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;ACTION&quot;, ACTION) ' вид заявки (обычная, стоп, условная)<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;STOPORDER_KIND&quot;, &nbsp;&quot;SIMPLE_STOPORDER&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;EXPIRY_DATE&quot;, &nbsp;&quot;GTC&quot;) &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;STOPPRICE&quot;, &nbsp;LPRICEB) 'ЦЕНА УСЛОВИЯ ЗАЯВКИ<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;PRICE&quot;,LPRICEB &nbsp;) ' цена ИСПОЛНЕНИЯ ЗАЯВКИ<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;QUANTITY&quot;, LOT) ' лот<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;OPERATION&quot;, DIRECTION) ' направление &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;TYPE&quot;, &quot;L&quot;) ' тип заявки (лимитированная или &quot;по рынку&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;TRANS_ID&quot;, TRID) ' ID транзакции<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_RESULT = SEND_TRANSACTION (30, TRANS_PARAMS) ' отправляем заявку в систему<br /> &nbsp; &nbsp; &nbsp; &nbsp;ORDERCOUNT=ORDERCOUNT+1 ' увеличили счётчик заявок на единицу<br />END FUNC<br /><br /><br /><br /><br />FUNC STOPORDERL(PRICE,STOPPRICE, LOT,DIRECTION,TYPE,TRANS_ID)<br /> &nbsp; &nbsp; &nbsp; &nbsp;NEW_GLOBAL(&quot;TRANS_PARAMS&quot;, &quot;&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp;NEW_GLOBAL(&quot;TRANS_RESULT&quot;, &quot;&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_ID = TRANS_ID + 1<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;ACCOUNT&quot;, ACCOUNT) ' наш счёт на ММВБ<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;CLIENT_CODE&quot;, CLIENTCODE) ' клиентский код<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;CLASSCODE&quot;, &quot;SPBFUT&quot;) ' код класса<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;SECCODE&quot;, INSTRUMENT) ' инструмент<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;ACTION&quot;, ACTION) ' вид заявки (обычная, стоп, условная)<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;STOPORDER_KIND&quot;, &nbsp;&quot;SIMPLE_STOPORDER&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;EXPIRY_DATE&quot;, &nbsp;&quot;GTC&quot;) &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;STOPPRICE&quot;, &nbsp;LPRICEL) 'ЦЕНА УСЛОВИЯ ЗАЯВКИ<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;PRICE&quot;, LPRICEL ) ' цена ИСПОЛНЕНИЯ ЗАЯВКИ<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;QUANTITY&quot;, LOT) ' лот<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;OPERATION&quot;, DIRECTION) ' направление &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;TYPE&quot;, &quot;L&quot;) ' тип заявки (лимитированная или &quot;по рынку&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;TRANS_ID&quot;, TRID) ' ID транзакции<br /> &nbsp; &nbsp; &nbsp; &nbsp;TRANS_RESULT = SEND_TRANSACTION (30, TRANS_PARAMS) ' отправляем заявку в систему<br /> &nbsp; &nbsp; &nbsp; &nbsp;ORDERCOUNT=ORDERCOUNT+1 ' увеличили счётчик заявок на единицу<br />END FUNC<br /><br /><br /><br /><br /><br /><br /><br />' ФУНКЦИЯ СНЯТИЯ СТОП ТРАНЗАКЦИЙ<br />FUNC KILL_STOPORDER(STOP_ORDER_KEY, CLASSCODE, SECCODE)<br />	TRANS_PARAMS = CREATE_MAP()<br /> &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;TRANS_ID&quot;, TRID)<br /> &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;CLASSCODE&quot;, &quot;SPBFUT&quot;)<br /> &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;SECCODE&quot;, INSTRUMENT)<br /> &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;ACTION&quot;, &quot;KILL_STOP_ORDER&quot;)<br /> &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;ACCOUNT&quot;, ACCOUNT)<br /> &nbsp; &nbsp;TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, &quot;STOP_ORDER_KEY&quot;, STOPNUMBER)<br /> &nbsp; &nbsp;TRANS_RESULT = SEND_TRANSACTION (30, TRANS_PARAMS)<br />END FUNC<br /><br /><br />LOSs =CREATE_COLLECTION()<br />' ФУНКЦИЯ СТОП <br />FUNC STOP_LOS(&quot;SPBFUT&quot;, INSTRUMENT)<br />	<br />FOR P FROM 1 TO GET_NUMBER_OF(&quot;STOP_ORDERS&quot;) <br />KOLSTOP = GET_VALUE (GET_ITEM (&quot;STOP_ORDERS&quot;,P), QUANTITY) +0<br /><br />IF KOLSTOP = 0<br /> 'STOPNUMBER = GET_VALUE (GET_ITEM (&quot;STOP_ORDERS&quot;,P), NUMBER) +0<br /> &nbsp;'STATUS=GET_VALUE(GET_ITEM(&quot;STOP_ORDERS&quot;,P), STATUS)<br />MASSTATUS=GET_ITEM(&quot;STOP_ORDERS&quot;,P)<br />STATUSS=GET_VALUE(MASSTATUS, &quot;STATUS&quot;)<br />STOPNUMBER=GET_VALUE(MASSTATUS, &quot;NUMBER&quot;) +0<br /> &nbsp; &nbsp; &nbsp; &nbsp;IF &nbsp;KOLSTOP = 0 &nbsp;AND STATUSS = &quot;ACTIVE&quot;<br /> &nbsp; &nbsp; &nbsp; &nbsp; <br />SERVERDATE=GET_INFO_PARAM(&quot;TRADEDATE&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SERVERTIME=GET_INFO_PARAM(&quot;SERVERTIME&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DATETIME (SERVERDATE,SERVERTIME)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TRID = CURTIME &amp; ORDERCOUNT<br /><br /><br />KILL_STOPORDER(STOPNUMBER, CLASSCODE, SECCODE)<br /> &nbsp; &nbsp; &nbsp; &nbsp;<br /><br />END IF<br /><br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /><br />END IF<br /><br /><br /><br /><br />END FOR<br />END FUNC<br /><br /><br /><br /><br /><br /><br />' ===============СЕРВЕРНЫЕ ДАТА И ВРЕМЯ===============<br /> &nbsp; SERVERDATE=GET_INFO_PARAM(&quot;TRADEDATE&quot;) &nbsp;' датасерверавформатеDD.MM.YYYY<br /> &nbsp; SERVERTIME=GET_INFO_PARAM(&quot;SERVERTIME&quot;) ' времясерверавформатеHH:MM:SS<br /> &nbsp; <br />DATETIME (SERVERDATE,SERVERTIME) ' вызовфункциидаты-времени<br /> &nbsp;<br /> &nbsp; CURTIME=0+CURTIME ' перевод времени в число<br /> &nbsp;<br /> &nbsp; 'IF (CURTIME &gt; 100001 AND CURTIME &lt; 190000) OR (CURTIME &gt; 191501 AND CURTIME &lt; 235959) &nbsp;' времявнутриТС<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OHLC(NUMBER) ' получаем коллекцию BARLIST с барами<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BARCOUNT=GET_COLLECTION_COUNT(BARLIST) 'считаемколичествобароввколлекцииBARLIST &nbsp;<br /> <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;' ===============ДАННЫЕВТАБЛИЦУ===============<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DELETE_ALL_ITEMS()<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OUTPUT=CREATE_MAP()<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OUTPUT=SET_VALUE(OUTPUT,&quot;SERVERDATE&quot; , SERVERDATE)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OUTPUT=SET_VALUE(OUTPUT,&quot;SERVERTIME&quot; , SERVERTIME)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OUTPUT=SET_VALUE(OUTPUT,&quot;INSTRUMENT&quot; , INSTRUMENT)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OUTPUT=SET_VALUE(OUTPUT,&quot;BARCOUNT&quot; , BARCOUNT)<br />OUTPUT=SET_VALUE(OUTPUT,&quot;BARLIST&quot; , BARLIST)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ADD_ITEM(1,OUTPUT)<br /> &nbsp;<br /> &nbsp;' END IF<br /><br /> &nbsp; ' ===============ФУНКЦИИ===============<br /> &nbsp; ' ФУНКЦИЯ СЕРВЕРНЫХ ДАТЫ И ВРЕМЕНИ<br /> &nbsp; FUNC DATETIME(FSERVERDATE,FSERVERTIME)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURYEAR=SUBSTR(FSERVERDATE,6,4) ' текущийгодвтекстовомформате<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURMONTH=SUBSTR(FSERVERDATE,3,2) ' текущий месяц в текстовом формате<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURDAY=SUBSTR(FSERVERDATE,0,2) ' текущий день в текстовом формате<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURDATE(CURYEAR,CURMONTH,CURDAY) ' вызов функции перевода даты в текстовой формат<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURHOUR=SUBSTR(FSERVERTIME,0,2) ' текущие часы в текстовом формате<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURMIN=SUBSTR(FSERVERTIME,3,2) ' текущие минуты в текстовом формате<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />CURSEC=SUBSTR(FSERVERTIME,6,2) ' текущие секунды в текстовом формате<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURTIME(CURHOUR,CURMIN,CURSEC) ' вызов функции перевода времени в текстовой формат<br /> &nbsp; END FUNC<br /><br /> &nbsp; ' ФУНКЦИЯ ПЕРЕВОДА ДАТЫ В ТЕКСТОВОЙ ФОРМАТ<br /> &nbsp; FUNC CURDATE (FCURYEAR,FCURMONTH,FCURDAY)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF (LEN(FCURMONTH) &lt; 2)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURMONTH = &quot;0&quot; &amp; FCURMONTH<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF (LEN(FCURDAY) &lt; 2)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURDAY = &quot;0&quot; &amp; FCURDAY<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURDATE = CURYEAR &amp; CURMONTH &amp; CURDAY<br /> &nbsp; END FUNC<br /><br /> &nbsp; ' ФУНКЦИЯ ПЕРЕВОДА ВРЕМЕНИ В ТЕКСТОВОЙ ФОРМАТ<br /> &nbsp; FUNC CURTIME(FCURHOUR,FCURMIN,FCURSEC)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF (LEN(FCURHOUR) &lt; 2)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURHOUR = &quot;0&quot; &amp; FCURHOUR<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF (LEN(FCURMIN) &lt; 2)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURMIN = &quot;0&quot; &amp; FCURMIN<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURTIME = CURHOUR &amp; CURMIN &amp; &quot;00&quot;<br /> &nbsp; END FUNC<br /> &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;' ФУНКЦИЯ OHLC (забора N последних баров)<br /> &nbsp; FUNC OHLC(NUMBER)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF INTERVAL&lt;0 or INTERVAL&gt;60<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MESSAGE(&quot;INTERVAL вне допустимого диапазона&quot;,1)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RETURN<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SERVERDATE=GET_INFO_PARAM(&quot;TRADEDATE&quot;) &nbsp;' датасерверавформатеDD.MM.YYYY<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SERVERTIME=GET_INFO_PARAM(&quot;SERVERTIME&quot;) ' времясерверавформатеHH:MM:SS<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DATETIME (SERVERDATE, SERVERTIME) ' вызовфункциидаты-времени<br /> <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURMIN = INTERVAL*FLOOR(CURMIN/INTERVAL) ' округляемостатокдоINTERVAL`а<br /><br /><br />PREDFLAGSDELMAP=CREATE_COLLECTION()<br />FLAGSDELMAP=CREATE_COLLECTION()<br />OPENMAP=CREATE_COLLECTION()<br /><br />CLOSEMAP=CREATE_COLLECTION()<br /> &nbsp; &nbsp; <br />BARLIST=CREATE_COLLECTION() ' создаёмсписокбаровввидеMAP-массива<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FOR I FROM 0 TO NUMBER - 1<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURMIN=CURMIN-INTERVAL ' откатнаинтервалназад<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IF CURMIN&lt;0<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURMIN=60+CURMIN<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURHOUR=CURHOUR-1<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IF CURHOUR&lt;0<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURHOUR=23<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURDAY=CURDAY-1<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF CURDAY&lt;1<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURMONTH=CURMONTH-1<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IF CURMONTH=1 OR 3 OR 5 OR 7 OR 8 OR 10 OR<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURDAY=31<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IF CURMONTH=4 OR 6 OR 9 OR 11<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURDAY=30<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IF CURMONTH=2 ' еслимесяц- февраль<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MOD(CURYEAR,4) ' вызов функции остатка от деления<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF RESULT = 0<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURDAY=29 ' еслигодвисокосный<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ELSE<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURDAY=28 ' если год не високосный<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END IF &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IF CURMONTH&lt;1<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURDAY=31<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURMONTH=12<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CURYEAR=CURYEAR-1<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF CURYEAR&lt;0<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MESSAGE (&quot;NO DATA&quot;,1)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BREAK<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />		 &nbsp; &nbsp; END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURDATE(CURYEAR,CURMONTH,CURDAY) ' переводдатывтекстовойформат<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURTIME(CURHOUR,CURMIN,0) ' перевод времени в текстовой формат<br /><br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CANDLE=GET_CANDLE(CLASSCODE,INSTRUMENT, &quot;&quot;, INTERVAL &amp; &quot;&quot;, &quot;PRICE&quot;, CURDATE, CURTIME) ' получаемOHLC поCURDATE, CURTIME<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' округление OPEN до второго знака после запятой и добавление в MAP-массив CANDLE<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OPEN=0+GET_VALUE (CANDLE, &quot;OPEN&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'ROUND(OPEN,2)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'OPEN=0+RESULT<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CANDLE=SET_VALUE(CANDLE,&quot;OPEN&quot;,OPEN)<br />OPEN=0+OPEN<br />OPENMAP=INSERT_COLLECTION_ITEM(OPENMAP,I , OPEN)<br /><br /> <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IF 0+OPEN&gt;0' свеча существует<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' округление остальных цен до второго знака после запятой и добавление в MAP-массив CANDLE<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; HIGH=0+GET_VALUE (CANDLE, &quot;HIGH&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'ROUND(HIGH,2)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'HIGH=0+RESULT ' округлили HIGH до второго знака после запятой<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CANDLE=SET_VALUE(CANDLE,&quot;HIGH&quot;,HIGH) ' добавилиHIGH вMAP-массив<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LOW=0+GET_VALUE (CANDLE, &quot;LOW&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'ROUND(LOW,2)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'LOW=0+RESULT ' округлили LOW до второго знака после запятой<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CANDLE=SET_VALUE(CANDLE,&quot;LOW&quot;,LOW) ' добавилиLOW вMAP-массив &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CLOSE=0+GET_VALUE (CANDLE, &quot;CLOSE&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'ROUND(CLOSE,2)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'CLOSE=0+RESULT ' округлили CLOSE до второго знака после запятой<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CLOSE=0+CLOSE<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CANDLE=SET_VALUE(CANDLE,&quot;CLOSE&quot;,CLOSE) ' добавилиCLOSE вMAP-массив<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CLOSEMAP=INSERT_COLLECTION_ITEM(CLOSEMAP,I , CLOSE)<br /> <br /> &nbsp;CANDLE=SET_VALUE(CANDLE,&quot;FLAGSDEL&quot;,FLAGSDEL)<br />CANDLE=SET_VALUE(CANDLE,&quot;PREDFLAGSDEL&quot;,PREDFLAGSDEL)<br /> &nbsp; &nbsp; &nbsp;BARLIST=INSERT_COLLECTION_ITEM(BARLIST,0,CANDLE)' Поместилитекущийбарвколлекцию<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /><br />ELSE<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BREAK<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RETURN<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END IF<br /><br /><br /><br /><br /><br /><br /><br />END FOR<br /><br />PREDFLAGSDELTAB = GET_COLLECTION_COUNT (PREDFLAGSDELMAP)<br />PREDFLAGSDELMAP1 = GET_COLLECTION_ITEM(PREDFLAGSDELMAP,0) +0<br />PREDFLAGSDELMAP2 = GET_COLLECTION_ITEM(PREDFLAGSDELMAP,1)+0<br /><br />FLAGSDELTAB = GET_COLLECTION_COUNT (FLAGSDELMAP)<br />FLAGSDELMAP1 = GET_COLLECTION_ITEM(FLAGSDELMAP,0) +0<br />FLAGSDELMAP2 = GET_COLLECTION_ITEM(FLAGSDELMAP,1)+0<br /><br />CLOSEMAPTAB = GET_COLLECTION_COUNT (CLOSEMAP)<br />CLOSEMAP1 = GET_COLLECTION_ITEM(CLOSEMAP,0) +0<br />CLOSEMAP2 = GET_COLLECTION_ITEM(CLOSEMAP,1)+0<br /><br /><br />OPENMAPTAB = GET_COLLECTION_COUNT (OPENMAP)<br />OPENMAP1 = GET_COLLECTION_ITEM(OPENMAP,0) + 0<br />OPENMAP2 = GET_COLLECTION_ITEM(OPENMAP,1) + 0<br /><br /><br />GREENNOW = 0+0<br />IF CLOSEMAP1 &gt; OPENMAP1<br />GREENNOW = 1+0<br />END IF<br /><br />GREENPRED = 0+0<br />IF CLOSEMAP2 &gt; OPENMAP2<br />GREENPRED = 1+0<br />END IF<br /><br /><br />REDNOW = 0+0<br />IF CLOSEMAP1 &lt; OPENMAP1<br />REDNOW = 1+0<br />END IF<br /><br />REDPRED = 0+0<br />IF CLOSEMAP2 &lt; OPENMAP2<br />REDPRED = 1+0<br />END IF<br /><br />USL1=0<br />IF GREENNOW = 1 AND GREENPRED = 1<br />USL1=1<br />END IF<br /><br /><br />IF REDNOW = 1 AND REDPRED = 1<br />USL1=2<br />END IF <br /><br />IF REDNOW = 1 AND GREENPRED = 1 <br />USL1=3<br />END IF<br /><br />IF GREENNOW = 1 AND REDPRED = 1<br />USL1=4<br />END IF<br />'PRICEB = 0<br />'PRICEL = 0<br />'LPRICEB = OPENMAP1 +0<br />'LPRICEL = OPENMAP1 +0<br />' =============БЛОК УСЛОВИЯ ВЫСТАВЛЕНИЯ ЗАЯВОК==========<br />FOR NR FROM 0 TO GET_NUMBER_OF(&quot;FUTURES_CLIENT_HOLDINGS&quot;) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />TAB = GET_ITEM (&quot;FUTURES_CLIENT_HOLDINGS&quot;, NR)<br />CHIST = GET_VALUE(GET_ITEM (&quot;FUTURES_CLIENT_HOLDINGS&quot;, NR), &quot;TOTAL_NET&quot;) + 0<br />INST = GET_VALUE(GET_ITEM (&quot;FUTURES_CLIENT_HOLDINGS&quot;, NR), &quot;SECCODE&quot;)<br />SDEL= 0<br />IF ((CHIST = 0) AND ((INST = INSTRUMENT) OR (INST+0 = INSTRUMENT +0)))<br />SDEL= 1<br />END IF<br /><br />END FOR<br /><br />LPRICE = GET_PARAM (&quot;SPBFUT&quot;, INSTRUMENT, &quot;LAST&quot;)+0<br /><br />IF SDEL= 1 AND USL1=1 AND (FLAGCDELOK +0 ) = 0 ' если нет открытой длинной позиции <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;' выставление длинной заявки<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SERVERDATE=GET_INFO_PARAM(&quot;TRADEDATE&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SERVERTIME=GET_INFO_PARAM(&quot;SERVERTIME&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DATETIME (SERVERDATE,SERVERTIME)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TRID = CURTIME &amp; ORDERCOUNT<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ACTION=&quot;NEW_ORDER&quot;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ORDER(0, LOT, &quot;B&quot;, &quot;M&quot;, TRID)<br /><br />FLAGCDELOK = 1<br />PREDFLAGSDELMAP1 = PREDFLAGSDELMAP1 +1<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ORDERCOUNT=ORDERCOUNT+1<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /><br /><br />END IF<br />FOR NR FROM 0 TO GET_NUMBER_OF(&quot;FUTURES_CLIENT_HOLDINGS&quot;) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />TAB = GET_ITEM (&quot;FUTURES_CLIENT_HOLDINGS&quot;, NR)<br />CHIST = GET_VALUE(GET_ITEM (&quot;FUTURES_CLIENT_HOLDINGS&quot;, NR), &quot;TOTAL_NET&quot;) + 0<br /> &nbsp; <br /> IF CHIST &gt; 0<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /><br />SERVERDATE=GET_INFO_PARAM(&quot;TRADEDATE&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SERVERTIME=GET_INFO_PARAM(&quot;SERVERTIME&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DATETIME (SERVERDATE,SERVERTIME)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TRID = CURTIME &amp; ORDERCOUNT<br /> &nbsp; FOR NRR FROM 0 TO GET_NUMBER_OF(&quot;STOP_ORDERS&quot;) &nbsp; &nbsp; &nbsp; &nbsp; <br /><br /> &nbsp; STATA = GET_VALUE(GET_ITEM (&quot;STOP_ORDERS&quot;, NRR), &quot;STATUS&quot;) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; END FOR<br /> &nbsp;IF STATA != &quot;ACTIVE&quot;<br /> &nbsp; &nbsp; <br /> &nbsp; ACTION=&quot;NEW_STOP_ORDER&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; STOPORDERS(LPRICE, LPRICEB, LOT, &quot;S&quot;, &quot;L&quot;, TRID)<br /><br />ELSE &nbsp;BREAK &nbsp; &nbsp; &nbsp; &nbsp;<br /><br /> <br /> &nbsp;END IF<br /><br /><br /><br /> END IF &nbsp; &nbsp; &nbsp; <br />END FOR &nbsp; <br />' =============БЛОК УСЛОВИЯ ВЫСТАВЛЕНИЯ ЗАЯВОК==========<br />IF SDEL= 1 &nbsp;AND USL1=2 AND (FLAGCDELOK +0) = 0' если нет открытой короткой позиции <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;' выставление короткой заявки<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SERVERDATE=GET_INFO_PARAM(&quot;TRADEDATE&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SERVERTIME=GET_INFO_PARAM(&quot;SERVERTIME&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DATETIME (SERVERDATE,SERVERTIME)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TRID = CURTIME &amp; ORDERCOUNT<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />ACTION=&quot;NEW_ORDER&quot;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /><br />ORDER(0, LOT, &quot;S&quot;, &quot;M&quot;, TRID)<br />FLAGCDELOK = 1<br />PREDFLAGSDELMAP1 = PREDFLAGSDELMAP1 +1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; ORDERCOUNT=ORDERCOUNT+1<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /><br /><br /><br /><br /><br /><br />END IF<br />FOR NR FROM 0 TO GET_NUMBER_OF(&quot;FUTURES_CLIENT_HOLDINGS&quot;) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />TAB = GET_ITEM (&quot;FUTURES_CLIENT_HOLDINGS&quot;, NR)<br />CHIST = GET_VALUE(GET_ITEM (&quot;FUTURES_CLIENT_HOLDINGS&quot;, NR), &quot;TOTAL_NET&quot;) + 0<br /> &nbsp; <br />IF CHIST &lt; 0<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />SERVERDATE=GET_INFO_PARAM(&quot;TRADEDATE&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SERVERTIME=GET_INFO_PARAM(&quot;SERVERTIME&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DATETIME (SERVERDATE,SERVERTIME)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TRID = CURTIME &amp; ORDERCOUNT<br /><br /> &nbsp; FOR NRR FROM 0 TO GET_NUMBER_OF(&quot;STOP_ORDERS&quot;) &nbsp; &nbsp; &nbsp; &nbsp; <br /><br /> &nbsp; STATA = GET_VALUE(GET_ITEM (&quot;STOP_ORDERS&quot;, NRR), &quot;STATUS&quot;) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; END FOR<br /> &nbsp;IF STATA != &quot;ACTIVE&quot;<br /> &nbsp; &nbsp; ACTION=&quot;NEW_STOP_ORDER&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; STOPORDERL(LPRICE, LPRICEL, LOT, &quot;B&quot;, &quot;L&quot;, TRID) &nbsp;<br /> &nbsp; &nbsp; ELSE &nbsp;BREAK &nbsp; &nbsp; &nbsp; &nbsp; <br /> &nbsp;END IF<br /><br /><br /><br /> END IF &nbsp; &nbsp; &nbsp; <br />END FOR &nbsp; <br /><br /> &nbsp;END FUNC<br /> <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /> <br /> &nbsp; &nbsp;CURTIME=CURTIME+0 <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /><br />FOR NR FROM 0 TO GET_NUMBER_OF(&quot;FUTURES_CLIENT_HOLDINGS&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />TAB = GET_ITEM (&quot;FUTURES_CLIENT_HOLDINGS&quot;, NR)<br />CHIST = GET_VALUE(GET_ITEM (&quot;FUTURES_CLIENT_HOLDINGS&quot;, NR), &quot;TOTAL_NET&quot;) + 0<br />IF GET_VALUE(GET_ITEM (&quot;FUTURES_CLIENT_HOLDINGS&quot;, NR), &quot;TOTAL_NET&quot;) + 0 != 0<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF (GET_VALUE(GET_ITEM (&quot;FUTURES_CLIENT_HOLDINGS&quot;, NR), &quot;TOTAL_NET&quot;) + 0) &gt; 0 AND USL1 = 3 <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LOT = GET_VALUE(GET_ITEM (&quot;FUTURES_CLIENT_HOLDINGS&quot;, NR), &quot;TOTAL_NET&quot;) + 0 <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SERVERDATE=GET_INFO_PARAM(&quot;TRADEDATE&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SERVERTIME=GET_INFO_PARAM(&quot;SERVERTIME&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DATETIME (SERVERDATE,SERVERTIME)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TRID = CURTIME &amp; ORDERCOUNT<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ACTION=&quot;NEW_ORDER&quot;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ORDER(LPRICE, LOT, &quot;S&quot;, &quot;M&quot;, TRID) <br />ACTION=&quot;KILL_STOP_ORDER&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />STOP_LOS(&quot;SPBFUT&quot;, INSTRUMENT)<br /><br /><br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />ORDERCOUNT=ORDERCOUNT+1 <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LOT=1 <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /><br /><br /><br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF (GET_VALUE(GET_ITEM (&quot;FUTURES_CLIENT_HOLDINGS&quot;, NR), &quot;TOTAL_NET&quot;) + 0) &lt; 0 AND USL1 = 4<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LOT = ABS (GET_VALUE(GET_ITEM (&quot;FUTURES_CLIENT_HOLDINGS&quot;, NR), &quot;TOTAL_NET&quot;) + 0) + 0 <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SERVERDATE=GET_INFO_PARAM(&quot;TRADEDATE&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SERVERTIME=GET_INFO_PARAM(&quot;SERVERTIME&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DATETIME (SERVERDATE,SERVERTIME)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TRID = CURTIME &amp; ORDERCOUNT<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ACTION=&quot;NEW_ORDER&quot;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ORDER(LPRICE, LOT, &quot;B&quot;, &quot;M&quot;, TRID) <br />ACTION=&quot;KILL_STOP_ORDER&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />STOP_LOS(&quot;SPBFUT&quot;, INSTRUMENT) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />ORDERCOUNT=ORDERCOUNT+1 <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LOT=1 <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END IF &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /><br />BREAK ' прерываем цикл, т.к. все позиции уже закрыты<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp;END FOR <br /> <br /><br /><br /><br /><br /> &nbsp; FUNC MOD (NUM,DEN)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF (0 + DEN = 0)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RESULT = 0<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ELSE<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CEL= FLOOR((NUM/DEN)) ' вычисляем частное без учёта остатка<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RESULT = NUM — (DEN*CEL)' вычисляем остаток<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END IF<br /> &nbsp; END FUNC<br /> <br /> &nbsp; FUNC ROUND (V,SCALE)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;RESULT=APPLY_SCALE(V,SCALE)' передаём в функцию число для округления и разрядность округления<br /> &nbsp;END FUNC<br /><br />CHETCHIKCIKLOV= CHETCHIKCIKLOV+0<br /><br />IF CHETCHIKCIKLOV=0<br /><br />CHETCHIKCIKLOVMAP=CREATE_COLLECTION()<br />END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> CHETCHIKCIKLOVMAP=INSERT_COLLECTION_ITEM(CHETCHIKCIKLOVMAP,0 , OPENMAP1) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /><br /><br />CHETCHIKCIKLOVMAPTAB = GET_COLLECTION_COUNT (CHETCHIKCIKLOVMAP)<br />CHETCHIKCIKLOVMAP1 = GET_COLLECTION_ITEM(CHETCHIKCIKLOVMAP,0) +0<br />CHETCHIKCIKLOVMAP2 = GET_COLLECTION_ITEM(CHETCHIKCIKLOVMAP,(0 +1))+0<br /><br />IF CHETCHIKCIKLOVMAP1 != CHETCHIKCIKLOVMAP2<br />FLAGCDELOK = 0 <br />END IF<br /><br />CHETCHIKCIKLOV = CHETCHIKCIKLOV + 1<br /><br /><br /><br /><br />END_PROGRAM<br /><br /><br />PARAMETER SERVERDATE;<br />PARAMETER_TITLE Дата;<br />PARAMETER_DESCRIPTION Текущая дата;<br />PARAMETER_TYPE STRING(10);<br />END<br /> <br />PARAMETER SERVERTIME;<br />PARAMETER_TITLE Время;<br />PARAMETER_DESCRIPTION Текущее время;<br />PARAMETER_TYPE STRING(10);<br />END<br /> <br />PARAMETER INSTRUMENT;<br />PARAMETER_TITLE Инструмент;<br />PARAMETER_DESCRIPTION Торгуемый инструмент;<br />PARAMETER_TYPE STRING(4);<br />END<br /> &nbsp; <br />
			<i>19.02.2018 23:06:51, Артем.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum9/message29279/topic3389/</link>
			<guid>http://forum.quik.ru/messages/forum9/message29279/topic3389/</guid>
			<pubDate>Mon, 19 Feb 2018 23:06:51 +0300</pubDate>
			<category>Программирование на языке QPILE</category>
		</item>
		<item>
			<title>Алгоритм скрипта по разному отрабатывает в режиме отладчика и автономно</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum9/message29182/topic3389/">Алгоритм скрипта по разному отрабатывает в режиме отладчика и автономно</a></b> в форуме <a href="http://forum.quik.ru/forum9/">Программирование на языке QPILE</a>. <br />
			<a class="blog-p-user-name" id="bp_GVzxTnxc" href="/user/5979/" bx-tooltip-user-id="5979">Артем</a>, <br /><br />Под полным кодом понимается весь текст скрипта, а не его часть. <br />
			<i>15.02.2018 12:59:04, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum9/message29182/topic3389/</link>
			<guid>http://forum.quik.ru/messages/forum9/message29182/topic3389/</guid>
			<pubDate>Thu, 15 Feb 2018 12:59:04 +0300</pubDate>
			<category>Программирование на языке QPILE</category>
		</item>
		<item>
			<title>Алгоритм скрипта по разному отрабатывает в режиме отладчика и автономно</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum9/message29181/topic3389/">Алгоритм скрипта по разному отрабатывает в режиме отладчика и автономно</a></b> в форуме <a href="http://forum.quik.ru/forum9/">Программирование на языке QPILE</a>. <br />
			Добрый день, <noindex><a href="https://forum.quik.ru/user/17/" target="_blank" rel="nofollow">Sergey</a></noindex>. не совсем понял, что вы подразумеваете под полным кодом портфеля. Вы имеете в виду предоставить весь алгоритм скрипта? <br />
			<i>15.02.2018 12:41:17, Артем.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum9/message29181/topic3389/</link>
			<guid>http://forum.quik.ru/messages/forum9/message29181/topic3389/</guid>
			<pubDate>Thu, 15 Feb 2018 12:41:17 +0300</pubDate>
			<category>Программирование на языке QPILE</category>
		</item>
		<item>
			<title>Алгоритм скрипта по разному отрабатывает в режиме отладчика и автономно</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum9/message29142/topic3389/">Алгоритм скрипта по разному отрабатывает в режиме отладчика и автономно</a></b> в форуме <a href="http://forum.quik.ru/forum9/">Программирование на языке QPILE</a>. <br />
			<a class="blog-p-user-name" id="bp_2gV3inrp" href="/user/5979/" bx-tooltip-user-id="5979">Артем</a>, <br />Здравствуйте,<br />Для анализа нужен полный код портфеля.<br />QPILE признан нами устаревшим и мы уже давно его не развиваем. Так что если Вы только начинаете программировать в QUIK лучше сразу начинать с QLUA<br />Документация лежит в отдельном файле QLUA.chm в папке с терминалом. <br />
			<i>14.02.2018 05:07:51, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum9/message29142/topic3389/</link>
			<guid>http://forum.quik.ru/messages/forum9/message29142/topic3389/</guid>
			<pubDate>Wed, 14 Feb 2018 05:07:51 +0300</pubDate>
			<category>Программирование на языке QPILE</category>
		</item>
		<item>
			<title>Алгоритм скрипта по разному отрабатывает в режиме отладчика и автономно</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum9/message29129/topic3389/">Алгоритм скрипта по разному отрабатывает в режиме отладчика и автономно</a></b> в форуме <a href="http://forum.quik.ru/forum9/">Программирование на языке QPILE</a>. <br />
			Добрый день, прошу помочь разобраться в вопросе работы отладчика. В теме <noindex><a href="https://forum.quik.ru/forum9/topic3269/" target="_blank" rel="nofollow">https://forum.quik.ru/forum9/topic3269/</a></noindex> был поднят вопрос о том, как заставить алгоритм совершать только одну сделку на свечке и новую сделку совершать только при появлении новой свечи. Не уверен, что правильно понял вариант который был предложен в теме, но у меня получился примерно такой алгоритм <br /><br />NEW_GLOBAL (&quot;CHETCHIKCIKLOV&quot;,0)<br />NEW_GLOBAL (&quot;FLAGCDELOK&quot;,0)<br />NEW_GLOBAL (&quot;CHETCHIKCIKLOVMAP&quot;,0)<br />NEW_GLOBAL (&quot;CHETCHIKCIKLOVMAP1&quot;,0)<br />NEW_GLOBAL (&quot;CHETCHIKCIKLOVMAP2&quot;,0)<br /><br /><br />IF (USL1=1 AND (FLAGCDELOK +0 )= 0 AND CHETCHIKCIKLOV &gt; 2)' USL1 принимает значение 1 когда имеются 2 подряд бычьи свечи<br />алгоритм входа в позицию<br />FLAGCDELOK = 1<br />END IF<br /><br /><br />IF CHETCHIKCIKLOV=0' &nbsp; &nbsp;цикл нужен для того, чтобы данные в CHETCHIKCIKLOVMAP не обнулялись при каждом проходе программы<br /><br />CHETCHIKCIKLOVMAP=CREATE_COLLECTION()<br />END IF<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> CHETCHIKCIKLOVMAP=INSERT_COLLECTION_ITEM(CHETCHIKCIKLOVMAP,0 , OPENMAP1)' &nbsp; &nbsp; здесь &nbsp;OPENMAP1 это цена открытия предпоследней (последней завершенной) свечи &nbsp; &nbsp;<br /><br /><br />CHETCHIKCIKLOVMAPTAB = GET_COLLECTION_COUNT (CHETCHIKCIKLOVMAP) <br />CHETCHIKCIKLOVMAP1 = GET_COLLECTION_ITEM(CHETCHIKCIKLOVMAP,0) +0<br />CHETCHIKCIKLOVMAP2 = GET_COLLECTION_ITEM(CHETCHIKCIKLOVMAP,(0 +1))+0' здесь создается коллекция, куда по мере работы всего алгоритма записываются цены открытия последней завершенной свечи на момент времени исполнения данных команд, как правило алгоритм отрабатывается гораздо быстрее, чем время жизни одной 15-минутной свечки, и поэтому чаще всего будет, что CHETCHIKCIKLOVMAP1 =CHETCHIKCIKLOVMAP2. Но в момент появления новой свечи появляется новое значение OPENMAP1 и следовательно алгоритм может их сравнить и понять, что появилась новая свеча<br /><br />IF CHETCHIKCIKLOVMAP1 != CHETCHIKCIKLOVMAP2<br />FLAGCDELOK = 0 <br />END IF' собственно, здесь это проверятся, FLAGCDELOK = 0 давая возможность циклу IF совершать новую сделку<br /><br />CHETCHIKCIKLOV = CHETCHIKCIKLOV + 1' увеличивается счетчик количества проходов всей программы в течении дня, условие CHETCHIKCIKLOV &gt; 2 необходимо для того, чтобы в CHETCHIKCIKLOVMAP гарантировано попали минимум 2 значения для их сравнения<br /><br />И вот в CHETCHIKCIKLOV проблема. Дело в том, что при ручном отрабатывание всей программы в режиме отладчика все идет хорошо, CHETCHIKCIKLOV, как ему и положено увеличивается с каждым проходом на 1, достигая 3 исполняется условие входа. Но работая в автономном режиме ничего не происходит, CHETCHIKCIKLOV = 0 даже после 20 минут работы программы, хотя должен быть равен, например 50, включая снова режим отладчика все глобальные переменные равны 0, при этом если убрать условие CHETCHIKCIKLOV &gt; 2 все работает. Избавиться совсем от &nbsp;CHETCHIKCIKLOV не получиться, поскольку, если создавать CHETCHIKCIKLOVMAP=CREATE_COLLECTION() вне цикла IF CHETCHIKCIKLOV=0, при каждом проходе программы CHETCHIKCIKLOVMAP будет создаваться снова, удаляя свой пред. вариант, вместе с всего одним значением CHETCHIKCIKLOVMAP1, а CHETCHIKCIKLOVMAP2 вообще никогда не успеет заполняться, и, следовательно, IF CHETCHIKCIKLOVMAP1 != CHETCHIKCIKLOVMAP2 будет выполняться ВСЕГДА, в независимости от кол-во сделок на свече. Прошу помочь мне разобраться, почему так происходит, возможно я не правильно понимаю сам процессы отработки скрипта в qpile <br />
			<i>13.02.2018 15:02:10, Артем.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum9/message29129/topic3389/</link>
			<guid>http://forum.quik.ru/messages/forum9/message29129/topic3389/</guid>
			<pubDate>Tue, 13 Feb 2018 15:02:10 +0300</pubDate>
			<category>Программирование на языке QPILE</category>
		</item>
	</channel>
</rss>
