nikolz (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 87 След.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
nikolz,  На мой взгляд это из одной области и все туда же к " Сивой кобыле ". Ну вышла и вышла, еще показать себя надо. Ну или падение на 1.2%? Даже комментировать не буду.

А вот что важно, не найти. На пример почему Шанхай дает премию по серебру ~ 30$ за унцию серебра? Куда реки текут? На наших глазах делаются состояния. А расскажут потом. Но я собственно ответы нашел и тема стала не интересна.
Вы это на шанхайской биржи видели сегодня? Новость об этом не только в США но и в Азии.
Тест быстродействия многопоточного бота
 
Тема для начинающих писателей роботов
-----------------------
Алгоритм теста:
---------------------
Скрипт на Lua в терминале  QUIK обрабатывает колбеки и выставляет заявки по требованию приложения.
---------------------------------
Полученные события,
кроме событий OnOrder, OnStopOrder, OnTransReply,
которые обрабатывает сам, скрипт рассылает приложениям.
-------------------------------------
Для каждого инструмента или класса работает отдельное приложение,
которое получает данные от скрипта ,
прогнозирует изменение позиции и отсылает требования на выставление или снятие заявок скрипту.
-----------------------------------  
Приложения можно реализовать в виде отдельного скрипта для терминала QUIK ,
либо отдельного приложения Windows.
--------------------------------------
Механизм обмена сообщениями реализован через файлы, поэтому он один и тот же как для скриптов так и для приложений.
-------------------------------------
Весь процесс обмена сообщений пишется в лог файлы.
Результаты теста такие:
это логи событий, от скрипта к приложениям для инструментов. Первое число - задержка получения события приложением.
В данном тесте задержка  равна кванту windows, который установлен 2ms.
В конце каждого события через символ "> " указано сколько всего событий в очереди.
Код
1024us, 19545940221.4:1,GAZP,126.22,126.22,126.31>4
2069us, 19547996621.9:1,VTBR,81.79,81.770,81.790>1
1761us, 19548976031.1:1,ALRS,40.96,40.94,40.96>1
2122us, 19548975763.9:1,AFKS,13.446,13.442,13.446>2
164us, 19548977786.8:1,GAZP,126.23,126.22,126.23>3
3020us, 19551013990.4:1,AFKS,13.445,13.442,13.446>3
2904us, 19552031852.1:1,GMKN,156.28,156.24,156.28>3
2961us, 19552031904.2:1,VTBR,81.79,81.790,81.815>1
2068us, 19553048370.0:1,AFLT,56.53,56.49,56.53>7
19550003064us, 6120562.3:1,HYDR,0.4386,0.4383,0.4386>2
2116us, 19557151989.5:1,AFLT,56.52,56.49,56.53>5
3100us, 19557154009.4:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=302.22,quantity=377},{price=302.33,quantity=81},{price=302.42,quantity=3},{price=302.55,quantity=304},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945}},offer={{price=303.50,quantity=22},{price=303.58,quantity=1},{price=303.70,quantity=5},{price=303.71,quantity=375},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.08,quantity=201},{price=304.10,quantity=97}}}>1
2946us, 19559169335.8:1,CHMF,974.4,974.0,975.2>3
3149us, 19559169199.5:1,AFLT,56.53,56.49,56.53>4
3024us, 19559187312.8:1,VTBR,81.815,81.790,81.815>1
718us, 19560195155.7:1,RUAL,37.495,37.480,37.495>2
2916us, 19560193051.8:1,GAZP,126.28,126.28,126.31>2
1975us, 19560197010.7:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=302.33,quantity=81},{price=302.42,quantity=3},{price=302.55,quantity=304},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945},{price=303.50,quantity=5}},offer={{price=303.58,quantity=1},{price=303.70,quantity=5},{price=303.71,quantity=375},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.08,quantity=201},{price=304.10,quantity=97},{price=304.23,quantity=407}}}>1
249us, 19561199970.8:1,SBER,303.5,303.50,303.58>1
3111us, 19562215668.5:1,AFKS,13.451,13.442,13.451>3
1527us, 19562226731.8:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=302.22,quantity=377},{price=302.33,quantity=81},{price=302.42,quantity=3},{price=302.55,quantity=304},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945}},offer={{price=303.50,quantity=35},{price=303.58,quantity=1},{price=303.70,quantity=5},{price=303.71,quantity=375},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.08,quantity=201},{price=304.10,quantity=97}}}>1
1699us, 19563239495.6:1,SBER,303.5,303.48,303.50>1
1073us, 19564257502.6:1,AFLT,56.54,56.49,56.54>3
1975us, 19564259571.1:1,RUAL,37.5,37.480,37.500>3
2916us, 19565367155.3:1,CHMF,974.6,974.6,975.2>1
966us, 19566538221.2:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=302.22,quantity=377},{price=302.33,quantity=81},{price=302.42,quantity=3},{price=302.55,quantity=304},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945}},offer={{price=303.56,quantity=25},{price=303.57,quantity=10},{price=303.58,quantity=1},{price=303.70,quantity=5},{price=303.71,quantity=375},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.08,quantity=201}}}>1
1117us, 19568731056.8:1,AFLT,56.55,56.49,56.55>6
1013us, 19571884419.5:1,AFKS,13.452,13.442,13.452>4
980us, 19571884533.0:1,GAZP,126.28,126.28,126.29>2
2909us, 19572876032.2:1,GAZP,126.29,126.28,126.29>1
995us, 19572878023.0:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=302.33,quantity=81},{price=302.42,quantity=3},{price=302.55,quantity=304},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945},{price=303.59,quantity=5}},offer={{price=303.70,quantity=5},{price=303.71,quantity=375},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.05,quantity=309},{price=304.08,quantity=201},{price=304.10,quantity=97},{price=304.23,quantity=407}}}>1
1817us, 19573893073.2:1,SBER,303.59,303.59,303.70>2
2998us, 19576946543.6:1,SBER,303.6,303.59,303.70>1
3060us, 19577952638.5:1,GAZP,126.31,126.28,126.31>7
1116us, 19577954709.5:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=302.42,quantity=3},{price=302.55,quantity=304},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945},{price=303.59,quantity=5},{price=303.64,quantity=16}},offer={{price=303.70,quantity=5},{price=303.71,quantity=375},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.05,quantity=309},{price=304.08,quantity=201},{price=304.10,quantity=97},{price=304.23,quantity=407}}}>1
2844us, 19578998223.5:1,SBER,303.64,303.64,303.70>1
2096us, 19579996246.4:1,CHMF,975.2,974.6,975.2>6
3024us, 19580058598.2:1,VTBR,81.85,81.790,81.850>1
1032us, 19581000600.7:1,RTKM,65.62,65.53,65.62>3
3160us, 19580998565.3:1,AFLT,56.57,56.49,56.57>2
2599us, 19582061555.8:1,RUAL,37.505,37.480,37.505>1
1168us, 19582063123.7:1,SBER,303.66,303.64,303.66>3
1721us, 19583137903.4:1,GMKN,156.32,156.24,156.34>3
19584266007us, 705.9:1,MTSS,227.35,227.00,227.35>2
779us, 19585436100.9:1,ALRS,40.97,40.94,40.97>3
3031us, 19585451977.5:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=302.42,quantity=3},{price=302.55,quantity=304},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945},{price=303.59,quantity=5},{price=303.64,quantity=127}},offer={{price=303.66,quantity=40},{price=303.70,quantity=5},{price=303.71,quantity=375},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.05,quantity=309},{price=304.08,quantity=201},{price=304.10,quantity=97}}}>1
880us, 19586562910.9:1,RUAL,37.525,37.480,37.525>2
1081us, 19586562802.1:1,AFKS,13.457,13.442,13.457>3
988us, 19586562976.9:1,SBER,303.64,303.64,303.66>1
1998us, 19586564896.4:1,VTBR,81.84,81.790,81.850>2
1994us, 19586564971.2:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=302.42,quantity=3},{price=302.55,quantity=304},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945},{price=303.59,quantity=5},{price=303.64,quantity=40}},offer={{price=303.66,quantity=40},{price=303.70,quantity=5},{price=303.71,quantity=375},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.05,quantity=309},{price=304.08,quantity=201},{price=304.10,quantity=97}}}>1
2879us, 19587645272.0:1,VTBR,81.85,81.790,81.850>1
2058us, 19587661250.3:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=302.55,quantity=304},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945},{price=303.59,quantity=5},{price=303.64,quantity=33},{price=303.65,quantity=11}},offer={{price=303.66,quantity=40},{price=303.70,quantity=5},{price=303.71,quantity=375},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.05,quantity=309},{price=304.08,quantity=201},{price=304.10,quantity=97}}}>1
1914us, 19588755163.3:1,SBER,303.65,303.65,303.66>2
3076us, 19588757012.6:1,VTBR,81.85,81.850,81.855>2
2780us, 19592899311.6:1,RUAL,37.51,37.480,37.510>1
2002us, 19593894417.4:1,VTBR,81.855,81.850,81.855>1
2050us, 19594927136.5:1,AFKS,13.448,13.442,13.452>6
1978us, 19594927300.1:1,MTSS,227.2,227.00,227.20>4
1986us, 19595921782.1:1,AFKS,13.448,13.448,13.449>4
2013us, 19596942548.8:1,AFKS,13.449,13.449,13.452>3
1955us, 19596942729.0:1,SBER,303.66,303.65,303.66>1
2984us, 19596944644.8:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=302.55,quantity=304},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945},{price=303.59,quantity=5},{price=303.64,quantity=33},{price=303.65,quantity=24}},offer={{price=303.66,quantity=83},{price=303.70,quantity=5},{price=303.71,quantity=376},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.05,quantity=309},{price=304.08,quantity=201},{price=304.10,quantity=97}}}>1
1832us, 19598988870.0:1,GMKN,156.34,156.24,156.34>4
109us, 19598990711.0:1,SBER,303.71,303.65,303.71>4
2937us, 19598990816.2:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=302.58,quantity=177},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945},{price=303.59,quantity=5},{price=303.64,quantity=33},{price=303.65,quantity=24}},offer={{price=303.71,quantity=475},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.05,quantity=309},{price=304.08,quantity=201},{price=304.10,quantity=97},{price=304.23,quantity=407},{price=304.28,quantity=236}}}>1
2059us, 19599991800.5:1,MTSS,227.3,227.00,227.30>5
1369us, 19601010287.6:1,RUAL,37.53,37.480,37.530>1
1026us, 19602016692.1:1,AFKS,13.453,13.449,13.453>5
3040us, 19605200077.0:1,SBER,303.7,303.65,303.71>2
1963us, 19607223681.8:1,SBER,303.7,303.70,303.71>3
2109us, 19607241747.3:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945},{price=303.59,quantity=5},{price=303.64,quantity=33},{price=303.65,quantity=24},{price=303.70,quantity=4}},offer={{price=303.71,quantity=475},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.05,quantity=309},{price=304.08,quantity=201},{price=304.10,quantity=97},{price=304.23,quantity=407},{price=304.28,quantity=236}}}>1
246us, 19609261908.6:1,RUAL,37.525,37.480,37.525>2
1145us, 19609261165.6:1,AFLT,56.57,56.56,56.57>9
2001us, 19612320640.0:1,AFKS,13.45,13.449,13.453>2
3017us, 19613357085.7:1,VTBR,81.85,81.850,81.855>1
873us, 19618420864.4:1,RUAL,37.525,37.525,37.530>1
1070us, 19618420750.7:1,ALRS,40.95,40.94,40.95>3
2965us, 19620569675.3:1,SBER,303.69,303.65,303.69>2
3029us, 19621672486.3:1,AFKS,13.45,13.449,13.450>3
2871us, 19622754415.3:1,SBER,303.7,303.65,303.70>1
1814us, 19624963547.9:1,GMKN,156.36,156.24,156.36>2
1005us, 19629285145.6:1,ALRS,40.95,40.94,40.97>2
2974us, 19631443340.0:1,ALRS,40.95,40.94,40.95>2
839us, 19632517491.0:1,MTSS,227.15,227.00,227.30>1
2017us, 19633576478.9:1,ALRS,40.95,40.95,40.97>2
1028us, 19636788872.1:1,AFKS,13.452,13.449,13.452>3
936us, 19636789059.0:1,SBER,303.68,303.65,303.70>1
3004us, 19638830536.8:1,GAZP,126.31,126.30,126.31>7
2884us, 19638830746.4:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=300.71,quantity=1},{price=302.55,quantity=304},{price=302.58,quantity=177},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945},{price=303.57,quantity=60}},offer={{price=303.70,quantity=6},{price=303.71,quantity=475},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.05,quantity=309},{price=304.08,quantity=201},{price=304.10,quantity=97},{price=304.23,quantity=407}}}>1
1002us, 19639893190.4:1,ALRS,40.94,40.94,40.97>5
2987us, 19640857405.7:1,ALRS,40.93,40.93,40.97>3
2990us, 19640857505.9:1,SBER,303.57,303.57,303.70>1
1862us, 19641904165.2:1,SBER,303.58,303.58,303.70>1
3021us, 19641905963.7:1,VTBR,81.855,81.850,81.855>1
1046us, 19641920092.7:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=302.55,quantity=304},{price=302.58,quantity=177},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945},{price=303.57,quantity=60},{price=303.58,quantity=5}},offer={{price=303.70,quantity=6},{price=303.71,quantity=475},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.05,quantity=309},{price=304.08,quantity=201},{price=304.10,quantity=97},{price=304.23,quantity=407}}}>1
1792us, 19642903655.9:1,RUAL,37.53,37.525,37.530>2
2965us, 19643911832.3:1,SBER,303.6,303.60,303.70>1
1027us, 19644926434.1:1,ALRS,40.97,40.93,40.97>5
877us, 19647965299.3:1,MTSS,227.3,227.00,227.30>2
2038us, 19648980013.8:1,RTKM,65.63,65.53,65.63>4
1998us, 19650118906.3:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945},{price=303.57,quantity=60},{price=303.58,quantity=5},{price=303.60,quantity=9},{price=303.63,quantity=1}},offer={{price=303.70,quantity=6},{price=303.71,quantity=475},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.05,quantity=309},{price=304.08,quantity=201},{price=304.10,quantity=97},{price=304.23,quantity=407}}}>1
910us, 19651219492.2:1,SBER,303.63,303.63,303.70>1
1023us, 19653450111.0:1,GAZP,126.3,126.30,126.31>1
1034us, 19656678685.6:1,ALRS,40.94,40.93,40.97>3
2986us, 19657784199.8:1,ALRS,40.94,40.93,40.94>3
849us, 19658870958.0:1,RUAL,37.525,37.525,37.530>3
1072us, 19658870804.0:1,ALRS,40.94,40.93,40.97>7
2018us, 19658872904.9:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=302.58,quantity=177},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945},{price=303.57,quantity=60},{price=303.58,quantity=5},{price=303.60,quantity=9}},offer={{price=303.62,quantity=3},{price=303.70,quantity=6},{price=303.71,quantity=475},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.05,quantity=309},{price=304.08,quantity=201},{price=304.10,quantity=97}}}>1
3016us, 19659998924.8:1,ALRS,40.97,40.93,40.97>6
966us, 19661037394.8:1,VTBR,81.855,81.855,81.860>2
997us, 19661037448.6:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=300.04,quantity=59},{price=302.55,quantity=304},{price=302.58,quantity=177},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945},{price=303.57,quantity=60}},offer={{price=303.58,quantity=12},{price=303.62,quantity=3},{price=303.70,quantity=6},{price=303.71,quantity=475},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.05,quantity=309},{price=304.08,quantity=201}}}>1
2812us, 19661996560.1:1,GMKN,156.34,156.34,156.36>4
3136us, 19661996364.4:1,CHMF,974.8,974.6,974.8>6
3024us, 19662056764.5:1,VTBR,81.86,81.855,81.860>1
2011us, 19666067757.2:1,GMKN,156.32,156.32,156.36>2
2051us, 19668088665.3:1,GMKN,156.36,156.32,156.36>2
2085us, 19668143011.9:1,VTBR,81.855,81.855,81.860>2
2083us, 19669133655.1:1,GAZP,126.31,126.30,126.31>4
865us, 19673197714.8:1,RUAL,37.505,37.505,37.530>1
3028us, 19675273824.7:1,VTBR,81.825,81.825,81.860>1
911us, 19676266770.5:1,VTBR,81.855,81.855,81.860>1
3046us, 19678333887.3:1,HYDR,0.4388,0.4383,0.4388>2
955us, 19680341257.4:1,SBER,303.58,303.57,303.58>1
2114us, 19680343236.1:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=300.04,quantity=59},{price=302.55,quantity=304},{price=302.58,quantity=177},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945},{price=303.57,quantity=60}},offer={{price=303.58,quantity=10},{price=303.59,quantity=2},{price=303.62,quantity=3},{price=303.70,quantity=6},{price=303.71,quantity=475},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.05,quantity=309}}}>1
3046us, 19681356411.9:1,GAZP,126.3,126.30,126.31>2
841us, 19682375223.5:1,SBER,303.59,303.58,303.59>1
1955us, 19682377113.8:2,SBER,{bid_count=10.000000,offer_count=10.000000,bid={{price=302.55,quantity=304},{price=302.58,quantity=177},{price=302.74,quantity=226},{price=302.83,quantity=118},{price=302.86,quantity=1},{price=303.04,quantity=6},{price=303.19,quantity=52},{price=303.48,quantity=945},{price=303.57,quantity=60},{price=303.58,quantity=3}},offer={{price=303.59,quantity=12},{price=303.62,quantity=3},{price=303.70,quantity=6},{price=303.71,quantity=475},{price=303.76,quantity=162},{price=303.78,quantity=1},{price=303.82,quantity=90},{price=303.96,quantity=45},{price=304.05,quantity=309},{price=304.08,quantity=201}}}>1
980us, 19685485494.8:1,VTBR,81.82,81.820,81.860>1
2043us, 19687552516.3:1,VTBR,81.855,81.820,81.860>1
1887us, 19689492369.4:1,VTBR,81.855,81.820,81.855>1
это сообщения от приложений.  Сообщение отсылается на каждое событие по данному инструменту:
В сообщении первым указано время задержки приема его скриптом.  
Если сообщения от приложения скрипт получил одновременно,
т е они были все записаны до того момента как скрипт их прочитал,
то в таблице у них одно время и они отделены пустой строкой от следующих сообщений.
 
Код
27us, 19524576309.1:RUAL,привет

241us, 19524576631.9:GMKN,привет
19524586256.6:ALRS,привет
19524586480.4:ROSN,привет
19524586636.8:CBOM,привет
19524586779.4:AFKS,привет
19524586918.3:MOEX,привет
19524587053:SNGS,привет
19524587195.6:GAZP,привет

320us, 19524587469.6:VTBR,привет
19524596990.6:UNAC,привет
19524597192:SIBN,привет

428us, 19524597336.9:RTKM,привет
19524606625.7:MTSS,привет
19524606946.3:SBER,привет
19524607100.8:CHMF,привет

509us, 19524607493.5:HYDR,привет
19524607741.9:AFLT,привет
19524607872.6:MAGN,привет

536us, 19525376511.4:AFLT,привет

563us, 19526375377.9:VTBR,привет

590us, 19528407463.3:VTBR,привет

617us, 19530430789.6:RUAL,привет

644us, 19531459927.5:GAZP,привет

671us, 19532483018.9:SBER,привет

725us, 19533490423.2:GAZP,привет
19533490522.8:SBER,привет

752us, 19534496366.8:AFKS,привет

777us, 19534499442:SBER,привет

804us, 19534502462.4:SBER,привет

858us, 19535508322.3:RUAL,привет
19535508436.1:VTBR,привет

912us, 19536527079.2:VTBR,привет
19536527198.3:RTKM,привет

939us, 19539811762.2:VTBR,привет

966us, 19541928043.2:GAZP,привет

993us, 19544947679.6:GAZP,привет

1020us, 19545941246.3:GAZP,привет

1047us, 19547998691.4:VTBR,привет

1128us, 19548977792.9:ALRS,привет
19548977886.4:AFKS,привет
19548977951.4:GAZP,привет

1155us, 19551017010.9:AFKS,привет

1209us, 19552034756.9:GMKN,привет
19552034865.5:VTBR,привет

1236us, 19553050438.7:AFLT,привет

1263us, 19556123626.8:HYDR,привет

1288us, 19557154106:AFLT,привет

1315us, 19557157109.6:SBER,привет

1369us, 19559172282.7:CHMF,привет
19559172348.9:AFLT,привет

1396us, 19559190337.2:VTBR,привет

1450us, 19560195874.1:RUAL,привет
19560195968.7:GAZP,привет

1475us, 19560198986:SBER,привет

1502us, 19561200220.2:SBER,привет

1527us, 19562218780:AFKS,привет

1554us, 19562228258.9:SBER,привет

1581us, 19563241194.7:SBER,привет

1608us, 19564258575.8:AFLT,привет

1635us, 19564261546.6:RUAL,привет

1662us, 19565370071.7:CHMF,привет

1689us, 19566539187.4:SBER,привет

1716us, 19568732173.8:AFLT,привет

1770us, 19571885432.5:AFKS,привет
19571885513.6:GAZP,привет

1824us, 19572878941.2:GAZP,привет
19572879018.8:SBER,привет

1851us, 19573894890.5:SBER,привет

1878us, 19576949541.6:SBER,привет

1932us, 19577955698.6:GAZP,привет
19577955826.4:SBER,привет

1959us, 19579001067.5:SBER,привет

1986us, 19579998343.3:CHMF,привет

2013us, 19580061622.2:VTBR,привет

2067us, 19581001633.1:RTKM,привет
19581001725.4:AFLT,привет

2121us, 19582064155.5:RUAL,привет
19582064292.6:SBER,привет

2148us, 19583139625.1:GMKN,привет

2175us, 19584266713.8:MTSS,привет

2202us, 19585436880.6:ALRS,привет

2229us, 19585455008.9:SBER,привет

2310us, 19586563791.3:RUAL,привет
19586563883.2:AFKS,привет
19586563965.5:SBER,привет

2364us, 19586566895.3:VTBR,привет
19586566966.1:SBER,привет

2391us, 19587648151.3:VTBR,привет

2526us, 19593896419.5:VTBR,привет

2580us, 19594929186.9:AFKS,привет
19594929278.2:MTSS,привет

2607us, 19595923768.5:AFKS,привет

2661us, 19596944562.7:AFKS,привет
19596944684.5:SBER,привет

2688us, 19596947629.5:SBER,привет

2740us, 19598990702.8:GMKN,привет
19598990820:SBER,привет

2767us, 19598993753.3:SBER,привет
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
https://habr.com/ru/news/993402/
Quik 12.6.0 зависает Сбербанк 2026 год, зависает QUIK
 
Цитата
Anton написал:
Quik 12.6.0  сервер Сбербанка  зависает. 2026 год
Я торгую давно уже, лет 6 в сбере. Проблемы периодически возникают. Сервер у них один. Нагрузка большая и постоянно случаются проблемы.
Зависает в основном когда нагрузка повышается, т. е. при большой волотильности когда свечи летают туда сюда. ту все и зависает.
Подключится снова получается тоже не сразу. минут 5 теряется... а за это время можно много денег потерять...
Торговать практически невозможно стало.
Если раньше вылетало редко раз или 2.
То сейчас по 5 по 10 раз может выкинуть.
Ждать каких то нововведений и улучшений врят ли повезет....
За все время работы у этого брокера ... проблемы всегда бывают...
Вот я и спросить пришел.
Может какой брокер есть поудачнее???
Где и у кого работоспособность Quik лучше??
Подскажите свой опыт...
Какаие варианты есть???  но только что бы в QUIK работать... другие программы не хочу уже изучать...
Тоже работаю со сбером последние пять лет, но не потому что хорошо, а просто удобно переводить деньги.
--------------------
Хорошо работает финам, бкс - т е те кто, был сначала лишь брокером, а потом сделал свой банк.
---------------------
Вопрос к Разработчикам. Можете объяснить этот прикол?
 
Цитата
Pivaev Maxim написал:
Pivaev Maxim
Pivaev Maxim,
Вы внимательно читали, то что я написал?
------------------
Не хотел Вам проводить ликбез. Но приходится.
-------------------------
1) Это соединение TCP и он не разрывается целых 5 минут т е 300 секунд.
Таких задержек на современных каналах связи быть не может.  
------------------------------
2) Терминал каждые 30 секунд обменивается с сервером короткими сообщениями чтобы подтвердить связь.
И это полагаю у вас реально реализовано .
Т е никаких задержек между сервером и терминалом нет.
---------------------------------
3) Задержка от биржи до брокера в 5 минут - это уже ЧП.
--------------
Какие еще Вы можете придумать причины?
Все индикаторы на Lua
 
Если правильно понимаю,
то Встроенный индикатор Force Index  это фактически нормированный (относительно предыдущей close)классический индикатор  Force Index .
Так как этот индикатор отображается в отдельном окне, то для торговли используются не абсолютные значения , а относительное его изменение либо движения вокруг нулевой линии.
---------------
Стратегии
Некоторые стратегии торговли с использованием Force Index:
  • Стратегия на пересечении нулевой линии. Если Force Index пересекает нулевую линию снизу вверх, это может быть сигналом к покупке, так как рынок переходит от медвежьего к бычьему тренду. Если Force Index пересекает нулевую линию сверху вниз, это может быть сигналом к продаже, так как рынок переходит от бычьего к медвежьему тренду.
  • Стратегия на дивергенциях. Например, если цена делает новый минимум, но Force Index показывает более высокий минимум, это может быть сигналом к покупке, так как рынок может готовиться к развороту вверх.
Force Index часто используется в сочетании с другими техническими индикаторами для повышения точности торговых сигналов. Например, с скользящими средними (MA) — пересечение Force Index с MA может служить сигналом для входа в сделку, с индексом относительной силы (RSI) — совместное использование с RSI позволяет более точно определить перекупленность или перепроданность рынка.

В итоге  , для принятия решения, нет никакой разницы как он рассчитан.
Не приходит полная версия OnTrade
 
Цитата
User12501 написал:
Цитата
nikolz написал:
 User12501  ,
Два вопроса, которые могут дать ответ.
1) С какой задержкой у вас Sleep в main?
2) есть ли у Вас очередь событий?
1) 585 секунд.
2) Не знаю. А что это?

(Предыдущее сообщение отправилось по ошибке, не ту клавишу нажал).  
Тогда вероятнее всего Вы просто теряете сообщения, когда по заявке совершаются несколько сделок относительно быстро.
Если надо принять все то сделайте очередь сообщений.  один из примеров есть в документации на библиотеку QLUA
Другой есть в моей теме на форуме по универсальному обработчику событий
Тест ускорения скриптов
 
Тест обмена данными через файлы
терминал QUIK и приложение на Luajit.
Результат ну очень... очень....
Смотрите сами:  6us - это время в мкс (0.001 ms) передачи данных от терминала к приложению
Код
VTBR,6us, 33883231604.2:{sell=81.795,last=81.8,clas=QJSIM,buy=81.800,fun=Param}
ALRS,13us, 33884241621.9:{sell=41.60,last=41.6,clas=QJSIM,buy=41.63,fun=Param}
ALRS,14us, 33886284514.8:{sell=41.60,last=41.64,clas=QJSIM,buy=41.64,fun=Param}
VTBR,13us, 33886286381.4:{sell=81.790,last=81.79,clas=QJSIM,buy=81.800,fun=Param}
VTBR,13us, 33887291071.6:{sell=81.790,last=81.8,clas=QJSIM,buy=81.800,fun=Param}
VTBR,12us, 33888299695.2:{sell=81.790,last=81.79,clas=QJSIM,buy=81.800,fun=Param}
VTBR,5us, 33891508786.0:{sell=81.795,last=81.8,clas=QJSIM,buy=81.800,fun=Param}
VTBR,4us, 33892712584.6:{sell=81.795,last=81.795,clas=QJSIM,buy=81.800,fun=Param}
MAGN,6us, 33892710696.6:{sell=31.235,last=31.235,clas=QJSIM,buy=31.260,fun=Param}
VTBR,12us, 33893937854.4:{sell=81.795,last=81.8,clas=QJSIM,buy=81.800,fun=Param}
GAZP,12us, 33895059453.3:{sell=127.99,last=128.0,clas=QJSIM,buy=128.00,fun=Param}
VTBR,12us, 33896235900.9:{sell=81.795,last=81.795,clas=QJSIM,buy=81.800,fun=Param}
AFKS,13us, 33898580156.9:{sell=13.771,last=13.774,clas=QJSIM,buy=13.774,fun=Param}
GAZP,13us, 33898579936.4:{sell=127.99,last=127.99,clas=QJSIM,buy=128.00,fun=Param}
AFLT,14us, 33898579755.6:{sell=58.81,last=58.81,clas=QJSIM,buy=58.82,fun=Param}
VTBR,8us, 33898601763.6:{sell=81.795,last=81.8,clas=QJSIM,buy=81.800,fun=Param}
AFLT,14us, 33899848054.3:{sell=58.81,last=58.82,clas=QJSIM,buy=58.82,fun=Param}
AFKS,14us, 33902089101.2:{sell=13.771,last=13.778,clas=QJSIM,buy=13.778,fun=Param}
GAZP,15us, 33902104313.3:{sell=127.99,last=128.0,clas=QJSIM,buy=128.00,fun=Param}
GAZP,14us, 33906134355.5:{sell=127.92,last=127.99,clas=QJSIM,buy=127.99,fun=Param}
VTBR,14us, 33908235532.3:{sell=81.790,last=81.79,clas=QJSIM,buy=81.800,fun=Param}
GMKN,0us, 33909437234.7:{sell=163.08,last=163.16,clas=QJSIM,buy=163.16,fun=Param}
VTBR,0us, 33909437398.3:{sell=81.790,last=81.795,clas=QJSIM,buy=81.800,fun=Param}
VTBR,13us, 33913506428.7:{sell=81.790,last=81.8,clas=QJSIM,buy=81.800,fun=Param}
AFLT,15us, 33913504464.6:{sell=58.81,last=58.81,clas=QJSIM,buy=58.82,fun=Param}
MAGN,15us, 33913504629.1:{sell=31.255,last=31.26,clas=QJSIM,buy=31.260,fun=Param}
MAGN,15us, 33914500954.3:{sell=31.255,last=31.27,clas=QJSIM,buy=31.270,fun=Param}
AFLT,0us, 33915502384.0:{sell=58.81,last=58.82,clas=QJSIM,buy=58.82,fun=Param}
VTBR,14us, 33916563393.9:{sell=81.785,last=81.79,clas=QJSIM,buy=81.790,fun=Param}
Таким образом нет особого смысла писать все алгоритмы робота в скриптах терминала.
Достаточно одного скрипта, который раздает события по сторонним приложениям для каждого инструмента или класса инструментов
и отправляет транзакции на сделки  от приложений на сервер брокера.
------------------------
Приложения можно писать на любом языке программирования ,
размещать в облаках
или у соседа на смартфоне.
Отключать сборщик мусора при работе с колбеками. Вы прикалываетесь?
 
Тема для начинающих писателей роботов.
--------------------------
Рано и поздно у Вас возникнет желание, либо необходимость, ускорить работу вашего робота.
Да, это скорее всего, реально
Но существует много ненужных телодвижений там, где что-либо делать не имеет смысла.
-----------------------
Например, отключать сборщик мусора в колбеках , а потом его включать.
-------------------------
Поясняю, почему в этом нет смысла.
======================
Для этого напишем следующий тест:
Код
local t1=nkQt.count(); local x1=collectgarbage("count");
 print("занято память КБ= "..x1//1)
local e={}; for j=1,100000 do e[j]=j end --создаем таблицу
local t1=nkQt.count(); local x=collectgarbage("count")-x1;
e=nil; --удаляем таблицу в мусор
print("объем мусора КБ="..x//1)
local t1=nkQt.count(); local x=collectgarbage("collect")
 print("сборка мусора(ms)="..(0.1*(nkQt.count()-t1))/1000)
local x=collectgarbage("count")  print("занято память КБ= "..x//1)
а это результат его исполнения:
Код
>D:/lua53/lua53.exe -e "io.stdout:setvbuf 'no'" "QUIKman.lua" 
занято память КБ= 220.0
объем мусора КБ=2048.0
сборка мусора(ms)=0.0379
занято память КБ= 156.0
>Exit code: 0
В тесте создаем таблицу и заполняем ее.
Потом удаляем таблицу.
В результате у нас создается объем мусора в 2 Мбайта.
Сборщик мусора собирает его за 0.038 ms(0.000038  сек).
---------------------------
Как уже писал на форуме,
Скрипт на луа  из-за Sleep(1) в Main имеет задержу исполнения не менее 16 ms, равную кванту времени Windows.
--------------------------------------
Многие, по рекомендации разработчиков QUIK, ставят Sleep(1000)  т.е. задержку в 1000 ms
----------------------------------------
Таким образом, если до очередного срабатывания колбека включится сборщик, то он задержит колбек на 0.04 ms.
и сборщик мусора создаст дополнительную задержку не более, чем  в 0.25% от задержки от Sleep(1)
------------------------
Можно перепрограммировать системный таймер и получить задержку не менее 1 ms.  
------------------------------
Тогда задержка от сборщика составит не более 4% от задержки Sleep(1), но это всего 0.00004 секунды.
--------------------------------------------------
Полагаете, что с этим надо бороться. Вы серьезно?
========================================================
Для справки:
------------------
За  квант времени в 1-2 мс поток получает возможность выполнить многие миллионы инструкций процессора.
------------------
Не забывайте и тот факт, что информация с биржи, поступающая к Вам через интернет, приходит с задержкой десять и более ms.
Не приходит полная версия OnTrade
 
User12501,
Два вопроса, которые могут дать ответ.
1) С какой задержкой у вас Sleep в main?
2) есть ли у Вас очередь событий?
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
 
Йцукен,
Такой разработчик попался.
Делать ему очевидно нечего.
Вопрос к Разработчикам. Можете объяснить этот прикол?
 
Pivaev Maxim,
Все что Вы сказали, это очевидно.
--------------------
Если, по-вашему мнению, причин много, но назовите хотя бы три.
---------------------
Обращаю внимание на тот факт, что соединение ни сервер ни терминал не разорвали.
Это значит, что для сервера нормально не отсылать данные на терминал .
------------------------
Сервер 5 минут не отсылает никаких данных на терминал.
Хотя торговый день в полном разгаре и торги идут интенсивно.
-----------------------
Назовите  три причины такого поведения сервера.
------------------------
Да,. железо сбербанка, но софт ваш.  
Не приходит полная версия OnTrade
 
Цитата
User12501 написал:
Цитата
nikolz написал:
 
Цитата
User12501  написал:
В последнее время несколько раз наблюдал такое: приходит OnTrade, в котором trans_id=0. Я знаю, что это промежуточная версия, поэтому в мой алгоритм вписано игнорировать такие вызовы, ожидая более полных. И почти всегда они приходят. Но в среднем 1-2 раза за день случается так, что полный OnTrade с ненулевым trans_id так и не приходит. В чём может быть причина?
Я мог бы убрать эту дополнительную проверку из своего кода и обрабатывать такие вызовы, в принципе trans_id мне ни для чего не нужен, достаточно brokerref. Но ведь может не прийти что-то более важное. Например бывает, что приходит OnTrade с нулевой комиссией, и сразу после него ещё один OnTrade с заполненной комиссией. Здесь сбоев не было ни разу, но что если он тоже не придёт?
 А зачем Вам trans_id в сделке?
Конкретно trans_id мне не нужен. Но если по протоколу он должен прийти, и не приходит, значит что-то пошло не так. В другой раз не прийти может что-то более серьёзное, например комиссия. Или это другое?
Вопрос отчасти пересекается с моим предыдущим вопросом про повторные OnTrade (  https://forum.quik.ru/forum10/topic9419/  ). Т.е. по trans_id=0 я пытался фильтровать OnTrade, которые заведомо не последние.
Предположу, что он не приходит при выполнении заявки в нескольких сделках, либо в заявках, установленных до за пуска скрипта. Но это лишь предположение.
Не приходит полная версия OnTrade
 
Цитата
User12501 написал:
В последнее время несколько раз наблюдал такое: приходит OnTrade, в котором trans_id=0. Я знаю, что это промежуточная версия, поэтому в мой алгоритм вписано игнорировать такие вызовы, ожидая более полных. И почти всегда они приходят. Но в среднем 1-2 раза за день случается так, что полный OnTrade с ненулевым trans_id так и не приходит. В чём может быть причина?
Я мог бы убрать эту дополнительную проверку из своего кода и обрабатывать такие вызовы, в принципе trans_id мне ни для чего не нужен, достаточно brokerref. Но ведь может не прийти что-то более важное. Например бывает, что приходит OnTrade с нулевой комиссией, и сразу после него ещё один OnTrade с заполненной комиссией. Здесь сбоев не было ни разу, но что если он тоже не придёт?
А зачем Вам trans_id в сделке?
-------------------
Поясняю:
Сделка совершается по выставленной заявке. В сделке есть номер заявки,
Номер есть всегда и по нему можно найти эту заявку.
-----------------------------
trans_id - это номер транзакции, по которой уже выставлена заявка.
т е транзакция уже давно исполнена.
Вместо нее есть заявка.
В данном случае и заявка исполнена, вместо нее есть сделка.
Т е  даже заявку нет смысла искать, а уж  trans_id тем более...
Тест ускорения скриптов
 
нагрузка процессора не изменилась.
Тест ускорения скриптов
 
Ранее привел результаты теста обмена данными через файлы.
https://forum.quik.ru/messages/forum10/message81107/topic9441/#message81107
Основной вывод :
------------------------------
SLEEP в MAIN  приводит к задержке работы скриптов минимум
на  квант Windows. Его величина по умолчанию равна 16 ms.
-------------------------------
Прикольно то, что до Windows10 2004 года этот квант можно было сравнительно просто уменьшить до 0.5ms.
Теперь это сделать просто не получится.
--------------------------------
Для решения проблемы сделал другую функцию sleep, которая уменьшает этот интервал до 2 ms.
----------------------
Результаты теста:
Тест с функцией sleep(1) из библиотеки QLUA  Задержка 15985 мкс округляем 16 ms
Код
SBER,14923,2615122535.2:2615107611.7:{sell=307.75,buy=307.91,clas=QJSIM,fun=Param,last=307.91}
SBER,14855,2616143429.0:2616128573.2:{sell=307.90,buy=307.97,clas=QJSIM,fun=Param,last=307.97}
SBER,15854,2617162439.6:2617146585.0:{sell=307.90,buy=307.98,clas=QJSIM,fun=Param,last=307.98}
SBER,15922,2618184470.3:2618168548.0:{sell=307.90,buy=307.98,clas=QJSIM,fun=Param,last=307.9}
VTBR,15897,2625276507.6:2625260610.2:{sell=77.81,buy=77.82,clas=QJSIM,fun=Param,last=77.82}
GAZP,14832,2628324507.2:2628309674.9:{sell=128.61,buy=128.63,clas=QJSIM,fun=Param,last=128.61}
AFKS,15153,2628324659.2:2628309505.6:{sell=13.325,buy=13.349,clas=QJSIM,fun=Param,last=13.325}
RUAL,15143,2628324742.1:2628309599.0:{sell=41.050,buy=41.055,clas=QJSIM,fun=Param,last=41.05}
VTBR,15961,2629393498.9:2629377537.1:{sell=77.81,buy=77.82,clas=QJSIM,fun=Param,last=77.81}
AFKS,15997,2630432458.6:2630416461.3:{sell=13.318,buy=13.349,clas=QJSIM,fun=Param,last=13.318}
VTBR,15987,2630432563.9:2630416576.0:{sell=77.81,buy=77.82,clas=QJSIM,fun=Param,last=77.82}
MAGN,16069,2633485572.0:2633469502.1:{sell=30.730,buy=30.750,clas=QJSIM,fun=Param,last=30.73}
SNGS,15997,2636567534.9:2636551537.3:{sell=22.360,buy=22.365,clas=QJSIM,fun=Param,last=22.36}
MAGN,15985,2636567666.4:2636551681.0:{sell=30.730,buy=30.735,clas=QJSIM,fun=Param,last=30.735}

Тест с функцией sleep(1) из библиотеки nkQt.  Задержка 1939 мкс округляем 2 ms
Код
VTBR,995,2003181508.4:2003180513.4:{clas=QJSIM,buy=78.00,last=78.0,sell=77.98,fun=Param}
VTBR,1944,2004190515.0:2004188570.8:{clas=QJSIM,buy=77.99,last=77.99,sell=77.98,fun=Param}
VTBR,1993,2015413431.9:2015411438.4:{clas=QJSIM,buy=78.01,last=78.01,sell=77.98,fun=Param}
RUAL,1962,2017473422.7:2017471460.4:{clas=QJSIM,buy=41.055,last=41.055,sell=41.040,fun=Param}
RUAL,1885,2018447403.9:2018445518.0:{clas=QJSIM,buy=41.050,last=41.05,sell=41.040,fun=Param}
SBER,884,2019485502.1:2019484617.9:{clas=QJSIM,buy=308.13,last=308.09,sell=308.02,fun=Param}
RUAL,1961,2021516411.4:2021514449.6:{clas=QJSIM,buy=41.050,last=41.04,sell=41.040,fun=Param}
GAZP,1068,2026610497.9:2026609429.0:{clas=QJSIM,buy=128.68,last=128.68,sell=128.66,fun=Param}
GAZP,39,2028624499.9:2028624460.6:{clas=QJSIM,buy=128.68,last=128.67,sell=128.66,fun=Param}
VTBR,271,2031854788.0:2031854516.3:{clas=QJSIM,buy=78.00,last=78.0,sell=77.98,fun=Param}
RUAL,1974,2034058458.2:2034056483.4:{clas=QJSIM,buy=41.045,last=41.045,sell=41.040,fun=Param}
RUAL,1911,2039442407.5:2039440495.6:{clas=QJSIM,buy=41.050,last=41.05,sell=41.045,fun=Param}
GMKN,1986,2042668694.0:2042666707.6:{clas=QJSIM,buy=168.08,last=168.06,sell=168.00,fun=Param}
RUAL,1888,2043786654.7:2043784766.5:{clas=QJSIM,buy=41.050,last=41.045,sell=41.045,fun=Param}
VTBR,2030,2043786721.1:2043784690.7:{clas=QJSIM,buy=78.00,last=77.99,sell=77.99,fun=Param}
GMKN,1939,2043786768.3:2043784829.1:{clas=QJSIM,buy=168.02,last=168.02,sell=168.00,fun=Param}
Таким образом удалось уменьшить задержку в скриптах в 8 раз.
Проблемная работа программы с луа роботами, Проблемная работа программы с луа роботами
 
Цитата
Йцукен написал:
Цитата
nikolz написал:
измеряете время от входа в колбек до входа в функцию main.
Ясно, к вам вопросов больше нет.
Очевидно (но, видимо, не всем), что таким образом не возможно измерить время, затрачиваемое на  вызов  колбэка. Не путать со временем исполнения кода пользовательской функции колбэка.
Время на вызов колбека Вы можете измерить еще проще.
Вызовите колбек функцию из своей dll.  У меня получилось менее 1 мкс.
---------------
Без обид, но вы просто не умеете программировать .  
Задавать списки классов и кодов инструментов, для которых будут вызываться колбэки OnAllTrade, OnParam, OnQuote в Lua-скрипте
 
Цитата
Йцукен написал:
В Lua сделать возможным задавать списки классов и кодов инструментов, для которых будут вызываться колбэки OnAllTrade, OnParam, OnQuote в Lua-скрипте.

Пояснение:
Сейчас, если в Lua-скрипте, заданы функции обратного вызова, в частности OnAllTrade, OnParam, OnQuote, то они будут вызываться для всех инструментов, данные по которым поступают в терминал, что влечёт высокий оверхэд на вызов этих самых колбэков.
Под вызовом колбэков понимается именно их вызов терминалом. Не путать с исполнением Lua-кода пользовательской функции.
Ошибаетесь.
Использую фильтр. затраты: если это не торгуемый инструмент, то 1 мкс, если торгуемый, то 5 мкс.
Задержка доставки данных по интернету примерно в 10000 раз больше.
Передача данных из скрипта в скрипт QUIK или приложение
 
Как указал ранее, задержка в 15 мс при обмене через файлы связана с квантом времени OC
и возникает из-за наличия SLEEP в цикле функции main.  
------------------
Если sleep удалить то получаем задержка обмена составляет не более 0.2 мс:
Код
GAZP,105,57149552931.4:57149552826.0:{clas=QJSIM,fun=Param,buy=128.34,sell=128.33,last=128.34}
VTBR,56,57149554092.8:57149554036.7:{clas=QJSIM,fun=Param,buy=77.80,sell=77.79,last=77.79}
SBER,138,57151073500.0:57151073362.0:{clas=QJSIM,fun=Param,buy=306.81,sell=306.79,last=306.81}
VTBR,199,57151074195.8:57151073996.4:{clas=QJSIM,fun=Param,buy=77.80,sell=77.79,last=77.8}
VTBR,57,57152455520.3:57152455463.0:{clas=QJSIM,fun=Param,buy=77.79,sell=77.78,last=77.78}
HYDR,124,57153911679.6:57153911554.8:{clas=QJSIM,fun=Param,buy=0.4315,sell=0.4314,last=0.4315}
VTBR,94,57153912857.8:57153912763.8:{clas=QJSIM,fun=Param,buy=77.79,sell=77.78,last=77.79}
VTBR,71,57155297672.1:57155297600.4:{clas=QJSIM,fun=Param,buy=77.82,sell=77.80,last=77.82}
VTBR,66,57156653740.7:57156653674.4:{clas=QJSIM,fun=Param,buy=77.84,sell=77.80,last=77.84}
SBER,94,57159382893.5:57159382798.8:{clas=QJSIM,fun=Param,buy=306.83,sell=306.82,last=306.83}
RUAL,95,57160803449.5:57160803354.5:{clas=QJSIM,fun=Param,buy=40.040,sell=40.010,last=40.04}
SBER,160,57160803716.9:57160803556.6:{clas=QJSIM,fun=Param,buy=306.86,sell=306.84,last=306.84}
VTBR,166,57162174584.1:57162174417.5:{clas=QJSIM,fun=Param,buy=77.84,sell=77.80,last=77.82}
RUAL,100,57163604236.7:57163604136.6:{clas=QJSIM,fun=Param,buy=40.043,sell=40.010,last=40.043}
VTBR,130,57172533507.3:57172533377.2:{clas=QJSIM,fun=Param,buy=77.84,sell=77.80,last=77.84}
GAZP,77,57173902076.6:57173901999.1:{clas=QJSIM,fun=Param,buy=128.35,sell=128.33,last=128.35}
ROSN,110,57173903294.6:57173903184.5:{clas=QJSIM,fun=Param,buy=407.65,sell=407.50,last=407.65}
RTKM,99,57176686384.2:57176686285.2:{clas=QJSIM,fun=Param,buy=65.82,sell=65.66,last=65.66}
SBER,26,57176686529.9:57176686503.2:{clas=QJSIM,fun=Param,buy=306.85,sell=306.83,last=306.85}
GAZP,163,57178153117.1:57178152953.5:{clas=QJSIM,fun=Param,buy=128.36,sell=128.33,last=128.36}
MOEX,44,57178153647.0:57178153602.4:{clas=QJSIM,fun=Param,buy=184.88,sell=184.77,last=184.88}
RUAL,189,57179605642.4:57179605452.5:{clas=QJSIM,fun=Param,buy=40.045,sell=40.010,last=40.045}
GAZP,165,57185716199.5:57185716034.2:{clas=QJSIM,fun=Param,buy=128.35,sell=128.33,last=128.35}
RUAL,32,57188285333.0:57188285300.2:{clas=QJSIM,fun=Param,buy=40.045,sell=40.040,last=40.04}
VTBR,74,57188286119.0:57188286044.3:{clas=QJSIM,fun=Param,buy=77.83,sell=77.80,last=77.83}
SBER,152,57192108110.7:57192107958.5:{clas=QJSIM,fun=Param,buy=306.86,sell=306.83,last=306.86}
ROSN,244,57204920658.8:57204920414.5:{clas=QJSIM,fun=Param,buy=407.65,sell=407.50,last=407.6}
RUAL,188,57204920792.8:57204920604.2:{clas=QJSIM,fun=Param,buy=40.045,sell=40.040,last=40.045}
GAZP,181,57206336953.6:57206336772.4:{clas=QJSIM,fun=Param,buy=128.36,sell=128.33,last=128.36}
MOEX,216,57211753373.1:57211753156.5:{clas=QJSIM,fun=Param,buy=184.85,sell=184.77,last=184.85}
VTBR,324,57211753620.7:57211753296.0:{clas=QJSIM,fun=Param,buy=77.84,sell=77.80,last=77.84}
MOEX,91,57213097741.2:57213097649.3:{clas=QJSIM,fun=Param,buy=184.83,sell=184.82,last=184.82}
MOEX,1152,57221834944.0:57221833791.5:{clas=QJSIM,fun=Param,buy=184.85,sell=184.82,last=184.85}
AFKS,200,57223095019.4:57223094819.2:{clas=QJSIM,fun=Param,buy=13.451,sell=13.437,last=13.451}
GAZP,188,57224384388.9:57224384200.6:{clas=QJSIM,fun=Param,buy=128.37,sell=128.33,last=128.37}
AFKS,155,57234547298.5:57234547143.1:{clas=QJSIM,fun=Param,buy=13.453,sell=13.437,last=13.453}
GAZP,142,57238172378.6:57238172235.8:{clas=QJSIM,fun=Param,buy=128.38,sell=128.33,last=128.38}
SBER,149,57250574559.6:57250574409.9:{clas=QJSIM,fun=Param,buy=306.85,sell=306.80,last=306.8}
MTSS,77,57256067937.4:57256067859.9:{clas=QJSIM,fun=Param,buy=226.55,sell=226.50,last=226.5}
ROSN,63,57256068421.6:57256068357.8:{clas=QJSIM,fun=Param,buy=407.65,sell=407.50,last=407.65}
GAZP,119,57257458284.3:57257458164.5:{clas=QJSIM,fun=Param,buy=128.37,sell=128.33,last=128.37}
VTBR,65,57258935393.6:57258935328.3:{clas=QJSIM,fun=Param,buy=77.83,sell=77.80,last=77.83}
Таким образом, если Вы используете sleep, то при любом способе обмена получите задержку не менее кванта времени OC, по умолчанию это 15мс.  
Передача данных из скрипта в скрипт QUIK или приложение
 
21 инструмент,
Первый скрипт при работе занимает 197 Кбайт.
Постепенно объем занятой памяти растет до 279 Кбайт.
Далее включается сборщик мусора и объем снова 197.
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
 
Разобрался. Все работает нормально.
Память утекала от сторонней библиотеки cffi-lua.
 Пришлось написать свою
Проблемная работа программы с луа роботами, Проблемная работа программы с луа роботами
 
Цитата
Йцукен написал:
Цитата
nikolz написал:
На него затрачивается не более  5 мкс.
Интересно, как вы это измерили?  
таймером. Есть в ПК счетчик c тактом 0.1 мкс.  На основе него делаем таймер, который измеряет с погрешностью 0.1 мкс.
Потом берете мой скрипт универсального обработчика событий, который я выложил на форуме , и измеряете время от входа в колбек до входа в функцию main. Это и будет время задержки.
Передача данных из скрипта в скрипт QUIK или приложение
 
и еще...
Полученное время обмена через файлы  не является длительностью совершения записи чтения,
а равно установленному кванту Windows .
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
 
Цитата
Йцукен написал:
Нужно ли при завершении скрипта принудительно вызывать collectgarbage()?
нафига?  Это лишь тормозит работу скрипта.
Проблемная работа программы с луа роботами, Проблемная работа программы с луа роботами
 
Цитата
Йцукен написал:
Оверхед от вызова колбэков высокий, независимо от кода внутри колбэка.
Я вот думаю отказаться от OnAllTrade совсем.
Да и  от OnParam стоило бы отказаться, поскольку при включении "умного" заказа данных, терминал тянет данные почти по всем классам. Но в этом случае придётся постоянно в main опрашивать на наличие новых данных по инструментам, что отрицательно скажется на производительности.
У вас очевидно неправильно написаны колбеки.
-----------------------------
колбек OnAllTrade вызывается перед записью данных в таблицу обезличенных сделок.
На него затрачивается не более  5 мкс.  
Он ничего не тормозит как и колбек OnParam.
-----------------------
колбек OnParam нужен для управления стопами и позицией.  Никакие "умные "  заказы  это не решают.  
Передача данных из скрипта в скрипт QUIK или приложение
 
еще замечу...
Передача данных через файл позволяет использовать внешние приложения,
написанные на любом другом языке программирования, без знания Lua и С.
и необходимости писать костыли для приема данных.
Передача данных из скрипта в скрипт QUIK или приложение
 
Изменил алгоритм работы скриптов.
Увеличилась скорость обмена данными:
Алгоритм:
Задается список торгуемых классов и список торгуемых инструментов
----------------
Первый скрипт записывает  информацию из колбеков  для каждого инструмента в отдельный файл.
По колбеку OnParam   передается последняя цена и лучшие цены спроса и предложения.
---------------------
Второй скрипт перебирает торгуемые инструменты и читает из их файлов новые данные.
Полученные данные выводит в лог файл.
Результат:
Время передачи данных составляет 15 млсек (0.015 сек)  
Код
SBER,15,1769849062.0292:1769849062.014:{Quote={offer_count=10.000000,bid_count=10.000000,offer={{price=308.34,quantity=3},{price=308.36,quantity=28},{price=308.37,quantity=265},{price=308.40,quantity=11},{price=308.49,quantity=137},{price=308.50,quantity=24},{price=308.56,quantity=1},{price=308.57,quantity=1},{price=308.64,quantity=1},{price=308.67,quantity=1}},bid={{price=307.87,quantity=1},{price=307.97,quantity=1},{price=308.07,quantity=1},{price=308.17,quantity=3},{price=308.18,quantity=1},{price=308.20,quantity=2},{price=308.26,quantity=231},{price=308.27,quantity=1},{price=308.29,quantity=500},{price=308.30,quantity=572}}},fun=Quote}
RUAL,15,1769849063.083:1769849063.0677:{last=41.085,fun=Param,buy=41.085,sell=41.070,clas=QJSIM}
GAZP,15,1769849063.083:1769849063.0677:{last=128.85,fun=Param,buy=128.85,sell=128.82,clas=QJSIM}
VTBR,15,1769849063.083:1769849063.0677:{last=77.84,fun=Param,buy=77.85,sell=77.84,clas=QJSIM}
SBER,15,1769849063.083:1769849063.0677:{last=308.34,fun=Param,buy=308.34,sell=308.30,clas=QJSIM}
ALRS,15,1769849064.0812:1769849064.0658:{last=42.09,fun=Param,buy=42.11,sell=42.09,clas=QJSIM}
RUAL,15,1769849064.0812:1769849064.0658:{last=41.085,fun=Param,buy=41.085,sell=41.070,clas=QJSIM}
VTBR,15,1769849064.0812:1769849064.0658:{last=77.84,fun=Param,buy=77.85,sell=77.84,clas=QJSIM}
SBER,15,1769849064.0812:1769849064.0658:{last=308.34,fun=Param,buy=308.34,sell=308.30,clas=QJSIM}
RUAL,15,1769849065.094:1769849065.0782:{last=41.085,fun=Param,buy=41.085,sell=41.070,clas=QJSIM}
VTBR,15,1769849065.094:1769849065.0782:{last=77.84,fun=Param,buy=77.85,sell=77.84,clas=QJSIM}
SBER,15,1769849065.094:1769849065.0782:{last=308.34,fun=Param,buy=308.34,sell=308.30,clas=QJSIM}
Передача данных из скрипта в скрипт QUIK или приложение
 
Цитата
Nikolay написал:
А зачем записывать на диск, если mmap позволяет создавать отражение в памяти.
ранее уже про это писал:
https://forum.quik.ru/forum17/topic8452/
-------------
Поясняю.
Есть несколько способов обмена.
Самый быстрый это через общую память dll,  следующий  mapping file.   Они есть у меня.
Но они требуют создания dll на С for lua.
-------------------
Обмен через файлы не требует написания dll и может быть реализован на луа без знания C.
Передача данных из скрипта в скрипт QUIK или приложение
 
Алгоритм теста:
---------------
два скрипта.
------------------
Первый скрипт:
Содержит колбеки. Полученная в колбеке таблица преобразуется в строку и записывается в файл.
-------------------------
Второй скрипт:
В функции main читает новые строки из файла. Если строки есть, то выводит их в лог файл.
--------------------------
В результате получаем в лог файле вторго скрипта таблицы из колбеков первого.
Ниже приведено содержимое лог файла при купокупки и продажи  акции на демо сервере
----------------------------
В строке записана следующая информация
136, млсек --задержка приема данных вторым скриптом в ms  относительно колбека первого скрипта.
307620878521: --значение счетчика в мкс во втором скрипте
307620741599:  --значение счетчика в мкс в первом скрипте
6,  мксек-- время на передачу таблицы из колбека в функцию вывода в файл в первом скрипте,
Param={sec_code=RUAL,class_code=QJSIM},  -- таблица параметров колбека
14  мксек  -- время на преобразование таблицы в строку.
Код
136,307620878521:307620741599:6,Param={sec_code=RUAL,class_code=QJSIM},14
46,307632222474:307632175847:6,Param={sec_code=PLZL,class_code=QJSIM},15
47,307632223018:307632175847:6,Param={sec_code=PLZL,class_code=QJSIM},15
151,307644227744:307644075798:4,DepoLimit={openlimit=0.0,locked_buy_value=332.37,currentbal=0.0,wa_price_currency=SUR,sec_code=SBER,locked_buy=1.0,openbal=0.0,locked_sell_value=0.0,currentlimit=0.0,firmid=NC0011100000,limit_kind=-260202016,client_code=10057,trdaccid=NL0011100043,locked_sell=0.0,awg_position_price=0.0,wa_position_price=0.0},67
152,307644228721:307644075798:4,DepoLimit={openlimit=0.0,locked_buy_value=332.37,currentbal=0.0,wa_price_currency=SUR,sec_code=SBER,locked_buy=1.0,openbal=0.0,locked_sell_value=0.0,currentlimit=0.0,firmid=NC0011100000,limit_kind=-260202016,client_code=10057,trdaccid=NL0011100043,locked_sell=0.0,awg_position_price=0.0,wa_position_price=0.0},67
76,307656202404:307656125744:6,Param={sec_code=PLZL,class_code=QJSIM},14
156,307668145723:307667989434:6,Param={sec_code=GAZP,class_code=QJSIM},15
156,307668145886:307667989434:6,Param={sec_code=GAZP,class_code=QJSIM},15
74,307679654875:307679580857:6,Param={sec_code=AFKS,class_code=QJSIM},15
74,307679655479:307679580857:6,Param={sec_code=AFKS,class_code=QJSIM},15
150,307692504242:307692353605:6,Param={sec_code=PLZL,class_code=QJSIM},14
151,307692504717:307692353605:6,Param={sec_code=PLZL,class_code=QJSIM},14
74,307705089868:307705015404:6,Param={sec_code=AFLT,class_code=QJSIM},23
72,307718039330:307717966568:6,Param={sec_code=AFLT,class_code=QJSIM},17
75,307730093355:307730017462:6,Param={sec_code=GAZP,class_code=QJSIM},15
64,307742024710:307741960032:6,Param={sec_code=GMKN,class_code=QJSIM},15
64,307742024919:307741960032:6,Param={sec_code=GMKN,class_code=QJSIM},15
4,307743459241:307743454534:5,DepoLimit={openlimit=0.0,locked_buy_value=0.0,currentbal=1.0,wa_price_currency=SUR,sec_code=SBER,locked_buy=0.0,openbal=0.0,locked_sell_value=304.88,currentlimit=0.0,firmid=NC0011100000,limit_kind=20260202,client_code=10057,trdaccid=NL0011100043,locked_sell=1.0,awg_position_price=304.92,wa_position_price=304.92},57
152,307743606854:307743454534:5,DepoLimit={openlimit=0.0,locked_buy_value=0.0,currentbal=1.0,wa_price_currency=SUR,sec_code=SBER,locked_buy=0.0,openbal=0.0,locked_sell_value=304.88,currentlimit=0.0,firmid=NC0011100000,limit_kind=20260202,client_code=10057,trdaccid=NL0011100043,locked_sell=1.0,awg_position_price=304.92,wa_position_price=304.92},57
152,307754399207:307754246493:7,Param={sec_code=GAZP,class_code=QJSIM},16
153,307754399652:307754246493:7,Param={sec_code=GAZP,class_code=QJSIM},16
151,307754554695:307754402703:2,Order={revision_number=0,side_qualifier=0,price=0.0,qty2=0.0,firmid=NC0011100000,account=NL0011100043,external_qty=0.0,uid=0,repoterm=0,operation_type=0,linkedorder=0,bank_acc_id=,passive_only_order=0,client_short_code=0,reject_reason=,filled_value=0.0,ext_order_flags=0,datetime={week_day=5,hour=13,min=34,day=30,ms=0,sec=46,year=2026,mcs=0,month=1},order_num=10210576492,accruedint=0.0,price_currency=,visibility_factor=0.0,expiry=-1,exec_type=0,exchange_code=,visible=0.0,price2=0.0,yield=0.0,value_entry_type=0,userid=NC0011100000,lseccode=,on_behalf_of_uid=0,executing_trader_qualifier=0,executing_trader_short_code=0,ordernum=10210576492,awg_price=0.0,accepted_uid=0,start_discount=0,visible_repo_value=0.0,expiry_time=-1,trans_id=0,canceled_uid=0,settlecode=,price_entry_type=0,benchmark=,flags=20,seccode=SBER,trading_session=0,repovalue=0.0,acnt_type=0,start_date=0,withdraw_datetime={week_day=1,hour=0,min=0,day=1,ms=0,sec=0,year=1601,mcs=0,month=1},client_code=10057,sec_code=SBER,settle_date=0,value=0.0,repo2value=0.0,brokerref=10057//,investment_decision_maker_short_code=0,investment_decision_maker_qualifier=0,settle_currency=,ext_order_status=0,class_code=QJSIM,repo_value_balance=0.0,activation_time=0,client_qualifier=0,qty=1.0,extref=,value2=0.0,settle_date2=0,balance=0.0,capacity=0,min_qty=0.0},169
150,307766405391:307766254827:6,Param={sec_code=NVTK,class_code=QJSIM},16
150,307766405474:307766254827:6,Param={sec_code=NVTK,class_code=QJSIM},16
59,307777503003:307777443230:6,Param={sec_code=PLZL,class_code=QJSIM},15
143,307790104848:307789961057:6,Param={sec_code=HYDR,class_code=QJSIM},15
146,307802247682:307802101258:5,Param={sec_code=GAZP,class_code=QJSIM},14
146,307802247877:307802101258:5,Param={sec_code=GAZP,class_code=QJSIM},14
Возможный источник утечки памяти в скриптах.
 
Гонял тест на версии 12.8.3.4 и обнаружил такое :
---------------------
Если принудительно не удалять таблицы параметров в колбеках, то сборщик мусора их не собирает.
-----------------------------
В итоге растет объем используемой памяти.
---------------------
Предлагаю заинтересованным проверить это.
Подтвердить или опровергнуть.
Вопрос к Разработчикам. Можете объяснить этот прикол?
 
Pivaev Maxim,
Вы можете объяснить каким образом Ваш сервер ,сохраняя соединение по TCP,
прекращает полностью передачу данных. это же даже придумать сложно, но у Вас это получилось.
-----------------------
И самое прикольное, что терминал Ваш это не обнаруживает.
----------------------
Вы же это чудо сделали.
Проблемная работа программы с луа роботами, Проблемная работа программы с луа роботами
 
Добавлю ложку ... в  бочку...
---------------
Несколько раз пытался установить обновления версии 12
Но после наблюдения тормозов  откатывался на 8. 7  что и Вам советую.
не вижу смысла быть бесплатным тестировщикам сырых версий.
Вопрос к Разработчикам. Можете объяснить этот прикол?
 
Прикол от Сбербанка.
Торги сегодня акции сбербанка
Соединение есть, но данные не приходят уже 5 минут.
Потом данные поступают
----------------------
Такой прикол наблюдается эпизодически уже не первый день.
-------------------
Можете объяснить:
Универсальный обработчик событий - это просто
 
Эта тема для начинающих писателей роботов на Lua в QUIK.
Cкрипт, на основе которого можно строить различных роботов.
В нем реализована очередь , что обеспечивает обработку всех событий
Код
 TQ={}; jQr,jQw=0,0; --очередь
----------------------------
function main()
   while run==1 do wait_connect()
   while run==2 do
     while jQw>jQr do local n=jQr+1;local t=TQ[n];TQ[n]=nil;jQr=n;t.fun(t);end
     sleep(10)
      end
   end
end 
-----------------------------
local function wQ(t,fun) --функция записи обработчика в очередь 
   if fun then
   t.fun=fun; local n=jQw;if jQr==jQw then jQw=0;jQr=0;end n=jQw+1;TQ[n]=t; jQw=n;
   end
end
-----функции обратного вызова QLua------------------------
function OnDepoLimit(t) wQ(t,setPos);  end
----------------------------
function OnFuturesClientHolding(t) wQ(t,setPos);  end
-----------------------------
function OnOrder(t) wQ(t,Order);  end
----------------------------
function OnStopOrder(t) wQ(t,StopOrder);  end
-----------------------
function OnTransReply(t) wQ(t,TransReply);  end
----------------------------
function OnParam(c, s) wQ({sec_code=s,class_code=c},Param); end  
----------------------------
function OnQuote(c, s) wQ({sec_code=s,class_code=c},Quote); end 
------------------------
function OnDisconnected() run=1 end
-------------------------
function OnConnected(flag) Trans,Tsec,Tclas,Tclient,pos={},{},{},{},{} run=1 end  
---------------------------
function CloseTH() if td_id then DestroyTable(td_id); end run =0 if f then f:close() end end
------------------------------
function OnStop(s) CloseTH();return 1000 end 
---------------------------
function OnClose()  CloseTH() end 
---------------------------
function OnCleanUp() run=1; end
---------------
function OnInit(path) OnConnected(true); end
Функции обратного вызова записываются одинаково.
В них мы помещаем в очередь TQ  полученные параметры и имя функции, которая обрабатывает данное событие.
Функция обработки событий реализуется отдельно.
Если функция обработки события отсутствует, то событие не будет записываться во очередь.  
Изменение параметров встроенных индикаторов из скрипта
 
Добрый день,
---------------------
Сейчас в QLUA есть возможность перезапустить скрипт индикатора при изменении параметров в окне настройки индикатора.
-----------------------
Предлагаю реализовать возможность изменения параметров встроенного индикатора из скрипта.
==================
Поясняю:
--------------------
Да, можно написать копию встроенного индикатора на луа и таким образом решить задачу изменения параметров индикатора.
-----------------
Но такое решение работает раз в 100 медленнее, чем встроенное.
--------------------
Кроме того, в терминале QUIK много встроенных индикаторов и нет смысла  делать их в виде копии на луа,
либо использовать Вашу библиотеку скриптов на луа и изучать алгоритмы индикаторов.

 
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Прикольно читать Вашу тему.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:

Ответ на Ваш вопрос очевиден, "Промышленный" - это то чем пользуются хэдж - фонды, или закрытые отделы в банках под управлением у которых находятся собственные средства, а не клиентов. И такие торговые платформы отвечают не которым стандартом, где то выше уже какие то стандарты приводил.
Если правильно понял Ваш ответ, то термин "промышленная архитектура"  это Вы придумали вв детском саду.
------------------------
Если  я не прав, то дайте ссылку, где этот термин определен.
Назовите хоть один хедш-фонд  или банк,   который использует этот термин.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
объясняю популярно, для тех, кто изобретает велосипед.
-------------------
Если Вы пользуете встроенные графики , то проще и быстрее не читать их в скрипте и потом выковыривать название индикатора из легенды,
а записать из значения либо параметры, включая код индикатора , интервал в файл.
В скрипте прочитать эти параметры при их смене на графике (если это график с якорем).
либо писать индикаторы в файлы с именем инструмента и читать в скрипте соответствующий файл.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Концептуально, такую архитектуру можно свести к последовательным шагам взросления системы, в стиле боевого QUIK-safe.
Важных, самостоятельных 4 - логических слоя, как в профессиональных торговых платформах:

2.2. Использование данных от индикатора (и это уже по взрослому).
Код
 
И ни какой магии, типа машинного обучения или нейросетей!  А главное безопасное изменение и замена модулей. Хочется думать так, а жизнь покажет, что опять не учитываю.  ::  
Прикольно, что вы написали. И это не по взрослому, а по дилетанскому.
-----------------------
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
nikolz,  "У нас" - это те кто пользуется  инфраструктурой Квика, и я рассуждаю о разворачивании на ее основе торговой платформы на луа, а не вообще. Не нужны, тут ни какие драйвера, кроме того что предоставляет квик. Разворачивая торговую систему, приводя в порядок архитектуру  и дописывая модули, мне это напомнило порядок ОС (как пример DOS). Зная это, можно изначально закладывать архитектуру как промышленную. Сложно но можно!
а что такое "промышленная архитектура"? Откуда вы взяли этот термин? если сами придумали, то дайте определение.  
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Цитата
nikolz написал:
А если серьезно, то попробуйте написать на луа какой-нибудь драйвер устройства, что является обязательным элементом OC.
Не я тоже возмущен почему, у "Условного Маркет Мейкера"  скорость 10 мк.сек. а унас 200 мл.сек., а кому повезет, ну хорошо кто следит, 100 мл.сек.
И это ни сколько не отменяет тот  факт что код может отвечать принципам и требованиям ОС?
Вы заблуждаетесь относительно "у нас"  
На бирже торгует брокер, а не его клиенты. QUIK - это программа подачи заявок брокеру, а не для прямой торговли на бирже.
--------------------  
относительно мксек ММ и mkсек QUIK.  млсек - это время прохождение данных от Вашего ПК до брокера по интернету.  Разместите свой ПК в дата центре на M9 и у вас тоже будут мкс.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
А если серьезно,
то попробуйте написать на луа какой-нибудь драйвер устройства,
что является обязательным элементом OC.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
VPM,
Вы еще больше удивитесь, когда узнаете,
что из кирпичей можно построить стены дома и,
даже сложить печку в доме том.
--------------
А самое прикольное,
Вы никогда бы не догадались,
земля -круглая, а не плоская.  
--------------
В мире еще много удивительного и не познанного.
Рыночная заявка для торговли фьючерсами
 
если очень надо, пишите в личку.
Рыночная заявка для торговли фьючерсами
 
Цитата
Сергей Че написал:
Цитата
nikolz написал:
Спасибо, конечно, за примеры транзакций, но ты так и не ответил на мой вопрос про запрос данных из стакана.
Не припомню, что я обязался отвечать на все вопросы на форуме.
Рыночная заявка для торговли фьючерсами
 
Снятие всех заявок на срочном рынке FORTS
на покупку  контрактов на курс акций Ростелеком -ао
TRANS_ID=50; ACCOUNT=SPBFUT00001;  ACTION=KILL_ALL_FUTURES_ORDERS; OPERATION=B; CLASSCODE=SPBFUT;  BASE_CONTRACT=RTKM;
Рыночная заявка для торговли фьючерсами
 
Перестановка заявок на срочном рынке FORTSACTION=MOVE_ORDERS; TRANS_ID=333; CLASSCODE=SPBFUT;  SECCODE=EBM6; FIRM_ID=SPBFUT389; MODE=1; FIRST_ORDER_NUMBER=21445064;  FIRST_ORDER_NEW_PRICE=10004; FIRST_ORDER_NEW_QUANTITY=4;  SECOND_ORDER_NUMBER=21445065; SECOND_ORDER_NEW_PRICE=10004;  SECOND_ORDER_NEW_QUANTITY=4;
Рыночная заявка для торговли фьючерсами
 
см. док:
Заявка на продажу
Фьючерс LKOH-3.10, рыночная, 15  контрактов
ACCOUNT=SPBFUT00009; CLIENT_CODE= SPBFUT00009; TYPE=M;  TRANS_ID=8; CLASSCODE=SPBFUT; SECCODE=LKH0; ACTION=NEW_ORDER; OPERATION=S;  PRICE=16231; QUANTITY=15;
Странная задача) помогите
 
для какого приложения пишите?
После обновления на версию 12.8.3.4 появился глюк в таблице "купить-продать", Глюк с фильром инструментов в таблице
 
Цитата
Ivan Smirnov написал:
Цитата
nikolz написал:
Проверьте подписку.  часто при обновлении обновляется подписка и в результате принимаются  новые инструменты.
Не совсем понимаю что такое подписка и где ее проверять. В настройках получения котировок стоит получать "умным заказом".

Дело в том что если даже несколько раз заходить в меню "редактировать таблицу" (таблицы купить-продать) и сохранять настройки, то на несколько секунд после этого отображается правильный набор инструментов а потом туда добавляется целая гора других инструментов. И так можно повторять несколько раз, результат будет всегда такой.

Поэтому полагаю что все же речь идет о глюке.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 87 След.
Наверх