Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
19.02.2025, 00:58:20
Начало Помощь Поиск Войти Регистрация
Новости: ООО «Скрин маркет системз», правообладатель программы «Система брокерского обслуживания «TRANSAQ» официально заявляет, что не ведет никакой деятельности в мессенджерах или социальных сетях. 
Подробности на нашем сайте  WWW.TRANSAQ.RU.

Просмотр сообщений

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Чеширский

Pages: [1] 2
1
Ну тогда об этом должны знать ВСЕ http://smart-lab.ru/blog/217153.php

2
Может, как-то непонятно написал....
попробую по другому
Первая СТОП заявка с номером СТОП заявки 391632 ( клиент 7600ub7) исполнена последней (номер заявки на бирже 976288341).
А последняя СТОП заявка с номером СТОП заявки  391662 ( клиент 7600wx3) исполнена первой (номер заявки на бирже 976288334)

Попробую упростить вопрос

Номер стоп заявки                               Номер заявки на бирже
391632                                                    976288341
391642                                                    976288336
391662                                                    976288334


Почему в первой колонке номера увеличиваются, а во второй уменьшаются? По идее и во второй колонке номера должны быть тоже по возрастанию 

3
Были выставлены следующие стоп заяки
;Стоп-заявки - Исполненные Стоп-заявки
;Board, Security, Инструмент, Клиент, К/П, SL:Цена активации, SL:Цена заявки, SL:Кол-во, SL:Защ. время, SL:Примечание, TP:Цена активации, TP:Коррекция, TP:Спрэд, TP:Кол-во, TP:Защ. время, TP:Примечание, Период действия, Связ.заявка, Снять после, Идентификатор, Номер пакета, Время регистрации, Трейдер, Состояние, Номер сделки, Номер заявки, Время снятия, Локальный экстремум, Уровень коррекции, Площадка
FUT,EuZ4,Eu-12.14, 7600ub7, К, 59398, , 27, , , , , , , , , торг. день, , , 391632, , 11:00:01, FZTR3454A, SL исполнен, 976288315, 13795905440, , , ,
FUT,EuZ4,Eu-12.14, 7600wx2, К, 59399, , 20, , , , , , , , , торг. день, , , 391642, , 11:00:01, FZTR3454A, SL исполнен, 976288315, 13795905438, , , ,
FUT,EuZ4,Eu-12.14, 7600wx3, К, 59399, , 26, , , , , , , , , торг. день, , , 391662, , 11:00:01, FZTR3454A, SL исполнен, 976288315, 13795905437, , , ,

Они все исполнились, но исполнились совершенно не в той очередности, что выставлялись. Что можно посмотреть в колонке номер заявки.
Вопрос: По логике первая выставленная стоп заявка должна и первой исполняться, тем более что у нее цена активации меньше. Есть ли какая-то внятная логика в очередности исполнения стоп заявок?

4
А еще надо учитывать тот ужас, когда у нас связь пропадает, а потом снова восстанавливается.  Если за это время были сделки, а еще и стопы сработали, то с лавиной oncalc и onTrade замучаешься справляться

5
Получается так. что пока мы не убедились, что у нас есть актуальные позиции - никакой обработки дальнейших действий, и то, если пройдут сразу несколько сделок, может оказаться так, что между ними onCalc проскочит, и в у нас будут не актуальные данные. Так что придется еще и тек заявки анализировать, что бы понять, все ли количество по заявке мы в сделках получили, или еще сделок ожидать

6
Теперь о том, что с этим цирком делать


static FORTSPos;
static IsAsynhRequest;
static EpmtyPosConst;


function getFortsPostion()
{
   if(IsAsynhRequest == true)
  {
     return EpmtyPosConst;
  }
  if(FORTSPos == EpmtyPosConst)
 {
     IsAsynhRequest = true;
     requestFORTSPositions(getClient());
      return EpmtyPosConst;
 }
 return FORTSPos["totalnet"];
}

function onCalc()
{
       curPos= getFortsPostion();
       if(curPos == EpmtyPosConst)
      {return;}
}

function onEnvEvent(var eventname)
{
   
        if (eventname == "CLIENT_HOLDINGS")
        {
         var info=getSecInfo();
         FORTSPos=  getFORTSPosition(getClient(), info["secid"]);
         IsAsynhRequest = false;
         }
   
}

function init()
{
     EpmtyPosConst = "НИЧЕГОШЕНЬКИ НЕТ";
    IsAsynhRequest = true;
     requestFORTSPositions(getClient());

}

function onTrade(var tradeID)
{
    IsAsynhRequest = true;
     requestFORTSPositions(getClient());

}

7
Попробую подробно писать что и как происходит с позициями на фортсе:
Это асинхронные методы,  и "обычный" подход получения позиций тут не прокатит
Допустим есть у нас такой код

static FORTSPos;

function onCalc()
{
       requestFORTSPositions(getClient());
       curPos=FORTSPos["totalnet"];
}

function onEnvEvent(var eventname)
{
   
        if (eventname == "CLIENT_HOLDINGS")
        {
         var info=getSecInfo();
         FORTSPos=  getFORTSPosition(getClient(), info["secid"]);
         }
   
}

Вот табличка того, что содержит переменная FORTSPos в различные моменты времени

Момент времени             Содержание переменной  FORTSPos

Первый вызов onCalc       ничего - переменная вообще еще не инициализирована, но отправлен запрос на сервер
Второй вызов onCalc       ничего - пока не пришел ответ от сервера - в этой переменной ничегошеньки нет
Третий....
Четвертый...
Пятый....
onEnvEvent                      Текущие позиции клиента - вот только сейчас пришел ответ от сервера от первого вызова в onCalc
onEnvEvent                      Текущие позиции клиента - второй вызов  onCalc
onEnvEvent                      Текущие позиции клиента - третий вызов  onCalc
onEnvEvent                      Текущие позиции клиента - четвертый вызов  onCalc
onEnvEvent                      Текущие позиции клиента - пятый вызов  onCalc
Шестой вызов onCalc       Текущие позиции клиента
Седьмой...
Восьмой...
Произошла сделка           Старые позиции клиента, без учета последней сделки
Девятый вызов onCalc       Старые позиции клиента, без учета последней сделки, но отправлен запрос на сервер
Десятый вызов onCalc       Старые позиции клиенты, пока не пришел ответ от сервера
Одиннадцатый...
Двенадцатый...
Тринадцатый...
Произошла еще сделка           Старые позиции клиента, без учета последних ДВУХ !!! сделок
onEnvEvent                      Старые позиции клиента, с учетом первой сделки, но без учета второй

8
извините. я предполагал, что у вас все 3 графика по одному инструменту. А так, естественно фильтр по инструментам есть, и он логичен.
Да не за что извиняться :)
Переделал экспорт в  в текст файлы по таймеру.
Просто про фильтр по инструментам в документации ничего не написано. Вот я и решил уточнить.

9
Перечитайте раздел справки про позиции на фортсе, еще рахоче, то что вы делаете  - не верно

как ПОЛУМЕРА добавьте

function onTrade(var tradeID)
{
requestFORTSPositions(getClient());
}

10
onOrder и onTrade точно будут вызываться на всех трех графиках
Только что проверил:
На график SI кидаю экспорт сделок, заявок и стопов.
Руками ввожу стоп на ртс - события на SI не происходит
Руками ввожу заяку на ртс - события на SI не происходит

убираю экспорт c SI и навешиваю его на RTS
Руками ввожу стоп на ртс - событие генерится
Руками ввожу заяку на ртс - события генерится


11
Хочется устранить дублирование кода. Есть разные торговые системы, разные сигналы, но функции выставления заявок, контроль стоп ордеров - везде одинаковые. Есть желание вынести их в отдельный файл и просто "прикреплять" его к торговым скриптам

12
var timeframe=getPeriodInfo();
period=timeframe["seconds"]/60;
var bar_time = getCandleTime()-n*period;

где n - индекс свечи.
а что будет, когда доберемся до любой "вчерашней" свечи, особенно, если сегодня понедельник, а "вчера" - пятница?

13
Пример.
Есть три графика, На первых двух "висят" торгующие роботы, на третьем - скрипт, который сохраняет сделки, заявки и стоп ордера в текстовые файлы. На сколько я понял, события onOrder, onStopOrder, OnTrade запускаются только на тех графиках (скриптах), которые выставляли заявки, а вот на третьем (который должен сохранять в текст файлы) эти события не возникают.
Вопрос - я все правильно понял?
Как обойти я знаю, буду в этих "торгующих" скриптах при обработке торговых события запускать postEnvEvent

14
когда у меня было 16-32 я тоже особо не парился

15
В главном окне, внизу, выводится инфа о времени ожидания ответа от сервера. На этой неделе стал замечать, что там уж больно большие цифры. 10000 - 18000. Со всеми вытекающими отсюда прелестями. Подскажите плиз, чью тех-поддержку в первую очередь "долбить", провайдера или брокера

Pages: [1] 2


Войти

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