Задача про вероятность длины очереди заявок - страница 23

[Удален]  
Реter Konow #:
Короче, это варианты производных фин.инструментов. Таких можно придумать бесконечное разнообразие. Это не реальный рынок с реальным клирингом. Всё производное, фиктивное и липовое. 

Да, но можно сделать нормально, если контора большая, сводя участников внутри своей кухни.

 
Реter Konow #:
Получается, "сделки" трейдеров ДЦ идут в обход рынка?

Косвенно, сделки клиентов форекс-дилеров влияют на потребность хэджировать свои риски форекс-дилером, в результате чего он осуществляет сделки с другими контрагентами. Но, может это делать не всегда или не делать вовсе.

Есть разного вида пулы, в которые может входить форекс-диелер и там искать себе выгодный вариант хэджирования среди предложений других форекс-дилеров и иных контрагентов. Таких пулов может быть много, для участия в них нужен договор и некий взнос. Вероятно он берёт ещё вознаграждение за свои услуги. Не читал их договора.

Вероятно, есть схемы, где происходит выход в этот пул напрямую без форекс-дилера, или через брокера - я не знаю, в настоящий момент, законодательство какой страны это позволяет и под каким соусом.

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

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

Реter Konow #:
ДЦ решает вопрос с клирингом полностью избавляясь от этой проблемы за счёт юридической эквилибристики и выдумывания специального договора?

Если нет поставки актива и торговли договорами (переуступки прав), то клиринг не нужен - стороны известны сразу в момент заключения договора.

А вот как происходит взаимозачёт между участниками пула, я не знаю - это уже договор надо смотреть между оператором пула и форекс-дилером/иным участником конкретного пула. Не думаю, что клиентам форекс-дилера нужна эта информация.

Реter Konow #:
То есть, ДЦ делает СЕБЯ ПРОИЗВОДНЫМ ФИНАНСОВЫМ ИНСТРУМЕНТОМ?!

Ну, тут уже я не могу понять, как такая идея могла прийти. Форекс-дилер создаёт производные финансовые инструменты - как линейку продуктов, ну как разновидность вкладов или кредитов в банке.

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

 
Aleksey Vyazmikin #:

Косвенно, сделки клиентов форекс-дилеров влияют на потребность хэджировать свои риски форекс-дилером, в результате чего он осуществляет сделки с другими контрагентами. Но, может это делать не всегда или не делать вовсе.

Есть разного вида пулы, в которые может входить форекс-диелер и там искать себе выгодный вариант хэджирования среди предложений других форекс-дилеров и иных контрагентов. Таких пулов может быть много, для участия в них нужен договор и некий взнос. Вероятно он берёт ещё вознаграждение за свои услуги. Не читал их договора.

Вероятно, есть схемы, где происходит выход в этот пул напрямую без форекс-дилера, или через брокера - я не знаю, в настоящий момент, законодательство какой страны это позволяет и под каким соусом.

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

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

Если нет поставки актива и торговли договорами (переуступки прав), то клиринг не нужен - стороны известны сразу в момент заключения договора.

А вот как происходит взаимозачёт между участниками пула, я не знаю - это уже договор надо смотреть между оператором пула и форекс-дилером/иным участником конкретного пула. Не думаю, что клиентам форекс-дилера нужна эта информация.

Ну, тут уже я не могу понять, как такая идея могла прийти. Форекс-дилер создаёт производные финансовые инструменты - как линейку продуктов, ну как разновидность вкладов или кредитов в банке.

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

Короче, я понял. Форекс-дилеры придумали "междусобойчик" в обход реального форекса. Создали его и не парятся. Юридическую базу подготовили, рекламу дали, клиентов собрали и... стрегут бабло... Ну ладно, флаг им в руки... Только в следующий раз вы мне так и обьясните, чтобы я не заблуждался.)
 
Реter Konow #:
Короче, я понял. Форекс-дилеры придумали "междусобойчик" в обход реального форекса. Создали его и не парятся. Юридическую базу подготовили, рекламу дали, клиентов собрали и... стрегут бабло...

В целом - да.

Рад, что не зря потратил своё время.

Реter Konow #:
Только в следующий раз вы мне так и обьясните, чтобы я не заблуждался.)

Так не поверили бы ;)

 

мыши кололись, плакали, но продолжали жрать кактус

 

Искал одно, а нашёл очень интересные сообщения - хорошо, что MQ всё понимают и глубоко познали все нюансы.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Как MetaTrader 5 считает прибыль?

Renat Fatkhullin, 2012.03.19 12:26

...

Идите и перечитывайте мои ответы, а заодно зарубите себе на носу "спред платится оператору всегда".


Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Как MetaTrader 5 считает прибыль?

Renat Fatkhullin, 2012.03.19 16:42

Не надо обвинять меня в незнании систем учета. Все многообразие решений передо мной прошло.

Технические решения являются компромиссом между разнонаправленными запросами. Это новички могут не считаться с несходимостями и играться в "взять лучшее отсюда + взять лучшее отсюда и не забыть все обернуть в свою пользу наперекор бизнесу брокеров" - им это простительно.

"Совершенно логичные старые схемы рынка" видятся тем, кто их не использовал на практике. После использования быстро прозрение наступает, когда твои сделки пересчитают по "согласованному курсу" + нередко с дополнительными кастомными правилами. Кроме того, мультивалютный учет вообще не предназначен для массового рынка. "Настоящий рынок" сильно разочаровывает трейдеров после того, как они привыкли к сервисам МетаТрейдера.

Не зря же Вы именно тут, а не на телефоне со старым брокером, который переправленные отчеты шлет раз в месяц по почте.

Про дополнительные кастомные правила можно согласится, форекс-дилеры в РФ их используют в рамочном договоре, хотя в базовом стандарте их же СРО их нет...

Я собственно чего искал - запрашиваю валюту депозита, получаю "RUB". А мне нужен найти некий кросс-курс, по которому прибыль пересчитывается, как это правильно сделать автоматически? По идеи должна быть возможность получить цепочку символов для конвертации в валюту депозита, но как то оно не реализовано. Допустим, у меня кросс типа "USDRUB.loxi".

 

Такой вопрос - финансовый результат должен рассчитываться без округления до финансового результата в валюте депозита, или в начале надо определить финансовый результат в валюте от сделки, потом произвести округления до центов (аналога), потом, если надо посчитать по кросс-курсу для конвертации в доллары, опять округлить, потом посчитать по кросс-курсу в рубли (валюту депозита) и опять округлить?

Я всё же думаю, с промежуточным округлением надо считать, а как думаете вы?

 
Aleksey Vyazmikin #:

Такой вопрос - финансовый результат должен рассчитываться без округления до финансового результата в валюте депозита, или в начале надо определить финансовый результат в валюте от сделки, потом произвести округления до центов (аналога), потом, если надо посчитать по кросс-курсу для конвертации в доллары, опять округлить, потом посчитать по кросс-курсу в рубли (валюту депозита) и опять округлить?

Я всё же думаю, с промежуточным округлением надо считать, а как думаете вы?

тайна сия велика есть :-) как конкретно устроено в сервере и бухгалтерии, неведомо

по логике - должно соотв. реально происходящему, прибыль/убыток сделки в еденицах валюты котировки должен конвертироваться в валюту депозита по правилам всего торгового маршрута. Со всеми округлениями сумм и объёмов на каждом отдельном шаге. Если по дороге GBP->USD->RUB то с учётом спецификаций GBPUSD и USDRUB. И резервов, подушек, спредов и задержек. Считай что это их внутренние отдельные сделки с поставщиком ликвида. (которого кстати почему-то нет :-) )

заранее посчитать коэфф. и просто умножить, это неправильно. Только для предварительных примерных рассчётов.

 
Maxim Kuznetsov #:
Со всеми округлениями сумм и объёмов на каждом отдельном шаге.

Проверил два варианта - с округлением и без, полученный фин результат сравнивал с оригинальным фин результатом.

В итоге, вариант без округления даёт 79 расхождений, а вариант с округлением до центов промежуточной валюты даёт 2812 расхождений.

Возможно, округление происходит как то иначе...

Код примерно такой:

   double arr_FinRez_Delta_Price[];//Изменение цены в пунктах
   double arr_FinRez_Point_Price[];//Цена одного пункта в валюте прибыли символа
   double arr_FinRez_Kurs_RUB[];//Расчётный курс USD/RUB
   double arr_FinRez_in_USD[];//Финансовый результат в долларах США
   double arr_FinRez_in_RUB_v00[];//Финансовый результат в рублях РФ - перерасчёт по кросс-курсу
   double arr_FinRez_in_RUB_v01[];//Финансовый результат в рублях РФ - перерасчёт по курса базисного актива и кросс-курсу
   double arr_FinRez_in_RUB_Delta_v00[];//Дельта в финансовом результате между отчётом и расчётным кросс-курсом
   double arr_FinRez_in_RUB_Delta_v01[];//Дельта в финансовом результате между отчётом и расчётным кросс-курсом и фактическим курсом базисного актива в момент исполнения заявки
   ArrayResize(arr_FinRez_Delta_Price,total_deals);
   ArrayResize(arr_FinRez_Point_Price,total_deals);
   ArrayResize(arr_FinRez_Kurs_RUB,total_deals);
   ArrayResize(arr_FinRez_in_USD,total_deals);
   ArrayResize(arr_FinRez_in_RUB_v00,total_deals);
   ArrayResize(arr_FinRez_in_RUB_v01,total_deals);
   ArrayResize(arr_FinRez_in_RUB_Delta_v00,total_deals);
   ArrayResize(arr_FinRez_in_RUB_Delta_v01,total_deals);
   ArrayInitialize(arr_FinRez_Delta_Price,0);
   ArrayInitialize(arr_FinRez_Point_Price,0);
   ArrayInitialize(arr_FinRez_Kurs_RUB,0);
   ArrayInitialize(arr_FinRez_in_USD,0);
   ArrayInitialize(arr_FinRez_in_RUB_v00,0);
   ArrayInitialize(arr_FinRez_in_RUB_v01,0);
   ArrayInitialize(arr_FinRez_in_RUB_Delta_v00,0);
   ArrayInitialize(arr_FinRez_in_RUB_Delta_v01,0);
   
   string Get_Sym_Base="";//Базовая валюта инструмента - первая в паре
   string Get_Sym_PV="";//Валюта прибыли
   
   double Get_Sym_SizeKontrakt=0.0;//Размер торгового контракта
   long Index_Close=0;

   for(uint i=0; i<total_deals; i++)
   {
      if(arr_position_ID[i]==0)continue;
      if((ENUM_DEAL_ENTRY(arr_deal_entry[i])==DEAL_ENTRY_OUT))continue;
      Index_Close=arr_Index_Close[i];
      if((ENUM_DEAL_TYPE(arr_deal_type[i])==DEAL_TYPE_BUY))
      {
         arr_FinRez_Delta_Price[Index_Close]=arr_price[Index_Close]-arr_price[i];
      }
      if((ENUM_DEAL_TYPE(arr_deal_type[i])==DEAL_TYPE_SELL))
      {
         arr_FinRez_Delta_Price[Index_Close]=arr_price[i]-arr_price[Index_Close];
      }
      Get_Sym_Base=SymbolInfoString(arr_symbol[i],SYMBOL_CURRENCY_BASE);//Базовая валюта инструмента
      Get_Sym_PV=SymbolInfoString(arr_symbol[i],SYMBOL_CURRENCY_PROFIT);//Валюта прибыли
      Get_Sym_SizeKontrakt=SymbolInfoDouble(arr_symbol[i],SYMBOL_TRADE_CONTRACT_SIZE);//Размер торгового контракта

      if(Get_Sym_Base!="USD" && Get_Sym_PV!="USD")continue;//Нет USD в названии валюты - требуется более сложный расчёт - отложим пока
/*
      if(Get_Sym_PV!="USD")
      {
         arr_FinRez_Point_Price[Index_Close]=1.0/arr_price[Index_Close];
         arr_FinRez_in_USD[Index_Close]=(arr_FinRez_Point_Price[Index_Close]*arr_FinRez_Delta_Price[Index_Close])*(Get_Sym_SizeKontrakt*arr_volume[i]);
         arr_FinRez_Kurs_RUB[Index_Close]=arr_FinRez[Index_Close]/arr_FinRez_in_USD[Index_Close];
         arr_FinRez_in_RUB_v00[Index_Close]=NormalizeDouble(arr_FinRez_in_USD[Index_Close]*arr_Price_Tic_Sym_Depo[Index_Close],2);
         arr_FinRez_in_RUB_Delta_v00[Index_Close]=arr_FinRez[Index_Close]-arr_FinRez_in_RUB_v00[Index_Close];
      }
      else
      {
         arr_FinRez_Point_Price[Index_Close]=1;
         arr_FinRez_in_USD[Index_Close]=(arr_FinRez_Point_Price[Index_Close]*arr_FinRez_Delta_Price[Index_Close])*(Get_Sym_SizeKontrakt*arr_volume[i]);
         arr_FinRez_Kurs_RUB[Index_Close]=arr_FinRez[Index_Close]/arr_FinRez_in_USD[Index_Close];
         arr_FinRez_in_RUB_v00[Index_Close]=NormalizeDouble(arr_FinRez_in_USD[Index_Close]*arr_Price_Tic_Sym_Depo[Index_Close],2);
         arr_FinRez_in_RUB_Delta_v00[Index_Close]=arr_FinRez[Index_Close]-arr_FinRez_in_RUB_v00[Index_Close];
      }
*/

      if(Get_Sym_PV!="USD")
      {
         arr_FinRez_Point_Price[Index_Close]=1.0/arr_price[Index_Close];
         arr_FinRez_in_USD[Index_Close]=NormalizeDouble((arr_FinRez_Point_Price[Index_Close]*arr_FinRez_Delta_Price[Index_Close])*(Get_Sym_SizeKontrakt*arr_volume[i]),2);
         arr_FinRez_Kurs_RUB[Index_Close]=arr_FinRez[Index_Close]/arr_FinRez_in_USD[Index_Close];
         arr_FinRez_in_RUB_v00[Index_Close]=NormalizeDouble(arr_FinRez_in_USD[Index_Close]*arr_Price_Tic_Sym_Depo[Index_Close],2);
         arr_FinRez_in_RUB_Delta_v00[Index_Close]=arr_FinRez[Index_Close]-arr_FinRez_in_RUB_v00[Index_Close];
      }
      else
      {
         arr_FinRez_Point_Price[Index_Close]=1;
         arr_FinRez_in_USD[Index_Close]=NormalizeDouble((arr_FinRez_Point_Price[Index_Close]*arr_FinRez_Delta_Price[Index_Close])*(Get_Sym_SizeKontrakt*arr_volume[i]),2);
         arr_FinRez_Kurs_RUB[Index_Close]=arr_FinRez[Index_Close]/arr_FinRez_in_USD[Index_Close];
         arr_FinRez_in_RUB_v00[Index_Close]=NormalizeDouble(arr_FinRez_in_USD[Index_Close]*arr_Price_Tic_Sym_Depo[Index_Close],2);
         arr_FinRez_in_RUB_Delta_v00[Index_Close]=arr_FinRez[Index_Close]-arr_FinRez_in_RUB_v00[Index_Close];
      }
}

Закомментированый кусок - без нормализации.

Там есть массив arr_Price_Tic_Sym_Depo[] - в нём  курс валюты депозита - последнее значение на момент заключения сделки (отдельного договора) - пока буду считать, что именно такой курс должен браться.

Всё же, я так же думаю, что фин результат должен быть определён в промежуточной валюте (валюте расчетов), а уже потом быть пересчитан в рубли.

Возможно, надо округлять и курс покупательской способности за 1 доллар США, т.е. когда идёт деление 1/Курс валюты, но до какого знака округлять - так же вопрос.

 

Может мне кто помочь грамотным языком описать передачу пакетов по протоколам TCP\IP от компьютера пользователя к серверу форекс-дилера?

Важно акцентировать внимание на:

  1. фрагментацию данных при отправке "файла", потом и на каждом промежуточным узлом при несовпадении MTU
  2. неопределённость, в момент отправки пакета, маршрутизации пакета.
  3. наличие разных маршрутов для одного пакета.
  4. наличие очереди при обработки промежуточным устройством пакетов/фреймов.
  5. вероятность потери пакета и запрос потерянного пакета/фрейма.
  6. разное время получения двух одинаковых файлов, в том числе что отправленные файлы с интервалом в одну секунду, могут приняты быть с интервалом менее одной секунды конечной машиной.

Речь идёт о заявке, и вероятных препятствиях на пути её движения к серверу форекс-дилера.

Так же интересна информация о размере "файла" заявки, что бы понять - умещается ли она в один пакет\фрейм, а так же по какому протоколу она передаётся.