понедельник, 10 ноября 2025 г.

25.11.10, DeepSeek, SQL, Table, Trades, Matching, Positions

25.11.10, DeepSeek, SQL, Table, Trades,  Matching, Positions

USE [Example01]

GO

/****** Object:  Table [dbo].[TradesExample]    Script Date: 10.11.2025 21:49:15 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[TradesExample](

[ID] [int] IDENTITY(1,1) NOT NULL,

[TradeNumber] [int] NOT NULL,

[Qty] [int] NOT NULL,

[ContrTradeNumber] [int] NOT NULL

) ON [PRIMARY]

GO

-------------------------------------------------------------------------

USE Example01 

SELECT ContrTradeNumber, SUM(Qty) AS TotalQty

FROM dbo.TradesExample

GROUP BY ContrTradeNumber;

--------------------------------------------------------------------------

SELECT TOP (1000) [ID]

      ,[TradeNumber]

      ,[Qty]

      ,[ContrTradeNumber]

  FROM [Example01].[dbo].[TradesExample]

----------------------------------------------------------------------------

2121
32-11
43-11
54-34
6514
7624
88-18
99-19
101018
111119
NULLNULLNULLNULL

----------------------------------------------------------------------------

USE [Example01]

GO

INSERT INTO [dbo].[TradesExample]

           ([TradeNumber]

           ,[Qty]

           ,[ContrTradeNumber])

     VALUES

           (<TradeNumber, int,>

           ,<Qty, int,>

           ,<ContrTradeNumber, int,>)

GO

----------------------------------------------------------------------------

Это операции по открытию, закоытию позиций

ID, TradeNumber, Qty, ContrTradeNumber

2 1 2 1

3 2 -1 1

4 3 -1 1

5 4 -3 4

6 5 1 4

7 6 2 4

8 8 -1 8

9 9 -1 9

10 10 1 8

11 11 1 9

---------------------------------------------------------------------------------------------

Перескакивать через 0 нельзя.

НЕообходимо c начала закрыть в 0.

А потом открыть позиции от себя (со своим номером сделки.)

----------------------------------------------------------------------------------------------

А это запрос с группировкой на предмет открытых позиций, после сбоя

USE Example01 

SELECT ContrTradeNumber, SUM(Qty) AS TotalQty

FROM dbo.TradesExample

GROUP BY ContrTradeNumber;

А потом уже открыть сделку от своего ТradeNumber

----------------

ContrTradeNumber, SUM(Qty) AS TotalQty

1 0

4 0

8 0

9 0

----------------

Вроде все понятно

Через 0 мы не можем перескочить,

потому что мы можем закрыть число не большее позиции (для Long) 
-----------------------------------------------------------------------------------------------------


Комментариев нет:

Отправить комментарий