Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Мая 20, 2019, 01:55:09 pm
Начало Помощь Поиск Войти Регистрация
Новости:

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: как сделать цикл по инструментам? « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: как сделать цикл по инструментам?  (Прочитано 334 раз)
Bruno_an
Newbie
*
Сообщений: 4


Просмотр профиля Email
« : Декабря 11, 2018, 08:58:52 am »

Работал в КВИКЕ
Цикл по бумагам выглядел так:
SECS="AFLT,CHMF,FEES,GAZP,GMKN,HYDR,IRAO,LKOH,MAGN,MFON,MGNT,MOEX,MTSS, NLMK,NVTK,ROSN,RSTI,SBER,SBERP,SNGS,SNGSP,TATN, TATNP,TRNFP,VTBR,URKA"

FOR SEC IN SECS

END FOR

А как в транзаке?
« Последнее редактирование: Декабря 11, 2018, 09:06:55 am от Bruno_an » Записан
osle
Newbie
*
Сообщений: 25


Просмотр профиля Email
« Ответ #1 : Февраля 04, 2019, 01:11:59 am »


Решился вопрос?

Как вариант: этот ваш «SECS» представить в виде хэша или массива, и в цикле его опросить.

Пример кода по запросу, если что, могу привести (не уверен просто, что ещё актуально).

...
Записан
Bruno_an
Newbie
*
Сообщений: 4


Просмотр профиля Email
« Ответ #2 : Февраля 25, 2019, 07:56:01 am »

Если не сложно, скиньте пример пожалуйста
Записан
osle
Newbie
*
Сообщений: 25


Просмотр профиля Email
« Ответ #3 : Марта 15, 2019, 03:06:33 pm »

Пример скрипта про опрос инструментов «из одного окна».
Его можно разместить в любом окне (у меня он работал под USDRUB_TOM).
Скрипт ничего не делает, активируется комбинацией клавиш: L.Shift + "PP".
Производится опрос ваших (из вашего списка) инструментов и результат
выводится в «окно вывода ATF».

Результат выглядит так:

----------------------------------------------------------
AFLT   99.54   50   14:33:43
CHMF   1023   1   14:33:48
FEES   0.16704   27   14:33:19
GAZP   152.9   30   14:33:18
GMKN   14172   10   14:33:50
HYDR   0.5039   52   14:33:39
IRAO   false   false   03:00:00
LKOH   5619   2   14:33:38
MAGN   false   false   03:00:00
MFON   false   false   03:00:00
MGNT   3727.5   8   14:33:27
MOEX   91.27   2   14:33:49
MTSS   false   false   03:00:00
NLMK   false   false   03:00:00
NVTK   false   false   03:00:00
ROSN   398.4   1   14:32:52
RSTI   0.9702   1   14:33:43
SBER   204.27   2   14:33:39
SBERP   179.19   1   14:33:48
SNGS   24.375   43   14:33:49
SNGSP   39.645   1   14:33:05
TATN   732.8   16   14:33:23
TATNP   534.1   6   14:33:37
TRNFP   167250   1   14:31:12
VTBR   0.03641   10   14:33:35
URKA   false   false   03:00:00


Здесь в запросе: цена, объём и время последней сделки.
Там где «false   false   03:00:00» - значит этого инструмента нет
в вашей таблице «Финансовые инструменты», соответственно
их надо в неё просто запросить/добавить.


Собственно скрипт:

// ========================================================

#line 0 solid blue

static SECSx;
static vr_prevKey;

static SEC_last;
static SEC_quant;
static SEC_time;

static st_STL;
static sArray;

                              function init()   {

st_STL   = new_object( "statline" );
SECSx   = new_object( "array" ); SECSx.resize( 26 );


SECSx [  0 ] = "AFLT";
SECSx [  1 ] = "CHMF";
SECSx [  2 ] = "FEES";
SECSx [  3 ] = "GAZP";
SECSx [  4 ] = "GMKN";
SECSx [  5 ] = "HYDR";
SECSx [  6 ] = "IRAO";
SECSx [  7 ] = "LKOH";
SECSx [  8 ] = "MAGN";
SECSx [  9 ] = "MFON";
SECSx [ 10 ] = "MGNT";
SECSx [ 11 ] = "MOEX";
SECSx [ 12 ] = "MTSS";
SECSx [ 13 ] = "NLMK";
SECSx [ 14 ] = "NVTK";
SECSx [ 15 ] = "ROSN";
SECSx [ 16 ] = "RSTI";
SECSx [ 17 ] = "SBER";
SECSx [ 18 ] = "SBERP";
SECSx [ 19 ] = "SNGS";
SECSx [ 20 ] = "SNGSP";
SECSx [ 21 ] = "TATN";
SECSx [ 22 ] = "TATNP";
SECSx [ 23 ] = "TRNFP";
SECSx [ 24 ] = "VTBR";
SECSx [ 25 ] = "URKA";

sArray = SECSx.size();

                                          }


                              function PrintParam()   {

signal::outputMultiple   ( "\n" + "---------------------------------------------------------- " );

var k = -1; while ( k < sArray - 1 )   { k += 1;

   SEC_last   = st_STL.getparam( SECSx[ k ], 1, param_last );
   SEC_quant   = st_STL.getparam( SECSx[ k ], 1, param_quantity );
   SEC_time   = st_STL.getparam( SECSx[ k ], 1, param_time );


      signal::outputMultiple   (

         SECSx[ k ]   + "\t" +
         SEC_last   + "\t" +
         SEC_quant   + "\t" +
         getFormattedTime( SEC_time )

                        );
                              }
                                                }




                              function onKeyDown( var key )   {

if ( isKeyPressed( KEY_LSHIFT ) )   {

   if ( vr_prevKey == chr2num( "P" ) and key == chr2num( "P" ) ) { PrintParam(); }

   vr_prevKey = key;

                           }

                                                      }



                              function calc()      {

line[0]   =  0;      
                                             }

// ========================================================


ЗЫ. можно и через «хэш», но компактнее он, скорее всего, не станет ...
« Последнее редактирование: Марта 19, 2019, 12:47:23 pm от osle » Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: как сделать цикл по инструментам? « предыдущая тема следующая тема »
Перейти в:  


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.6 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!