Слияние кода завершено, страница обновится автоматически
idate=2022.04.14
tradeTB=select * from loadTable("dfs://level_2", "trade") where DateTime.date()=idate and SecurityID in ["600094.SH"]
entrust=select * from loadTable("dfs://level_2", "entrust") where DateTime.date()=idate and SecurityID in ["600094.SH"]
trade=select * from loadTable("dfs://level_2", "trade") where DateTime.date()=idate and SecurityID in ["600094.SH"]
entrust= loadTable("dfs://level_2", "entrust")
trade= loadTable("dfs://level_2", "trade")
/*
* 单笔订单主动买入均价,单笔订单主动卖出均价
*/
def singleOrderAvgPrice(buyNo,sellNo,tradePrice,tradeQty,BSFlag="B"){
if(BSFlag=="B"){
totolMoney=groupby(sum,iif(buyNo>sellNo,tradePrice*tradeQty,0),buyNo).values()[1]
totolqty=groupby(sum,iif(buyNo>sellNo,tradeQty,0),buyNo).values()[1]
}
else{
totolMoney=groupby(sum,iif(buyNo<sellNo,tradePrice*tradeQty,0),sellNo).values()[1]
totolqty=groupby(sum,iif(buyNo<sellNo,tradeQty,0),sellNo).values()[1]
}
return totolMoney\totolqty
}
t=select avg(singleOrderAvgPrice(BidApplSeqNum,OfferApplSeqNum,
tradePrice,tradeQty,"B")) as ActBuySingleOrderAvgPriceFactor,
avg(singleOrderAvgPrice(BidApplSeqNum,OfferApplSeqNum,
tradePrice,tradeQty,"S")) as ActSellSingleOrderAvgPriceFactor from trade where SecurityID in ["000001.SZ","000040.SZ"]
group by SecurityID cgroup by minute(DateTime) as minute order by minute
/*
* 延时订单
*
*/
trade=select * from loadTable("dfs://level_2", "trade") where DateTime.date()=2022.04.14 and SecurityID in[ `600000.SH,`000001.SZ] and DateTime>2022.04.14T09:30:00.000
entrust=select * from loadTable("dfs://level_2", "entrust") where DateTime.date()=2022.04.14 and SecurityID in[ `600000.SH,`000001.SZ]and DateTime>2022.04.14T09:30:00.000
@state
def delayedTradeNum(bsFlag, flag, side){
return iif(bsFlag==side && flag<=1, flag, 0).cumsum()
}
@state
def delayedTradeQty(bsFlag, flag, tradeQty, cumTradeQty, side){
return iif(bsFlag==side && flag>1, tradeQty, iif(bsFlag==side && flag==1, cumTradeQty, 0)).cumsum()
}
timer{
///买方
///step 1,标记延时状态,计算笔订单的累计成交量
t1 = select SecurityID,DateTime,entrust.DateTime as time,"B" as bsFlag,tradeQty, cumsum(iif(DateTime-entrust.DateTime>60000,1,0)) as delayedTraderflag, cumsum(tradeQty) as cumTradeQty from lsj(trade, entrust, ['SecurityID', 'BidApplSeqNum'], ['SecurityID', 'ApplSeqNum']) where tradePrice>0 context by SecurityID,BidApplSeqNum
/////step 2,统计每只股票累计的延时成交订单数,和延时成交订单量
t2 = select SecurityID,DateTime,delayedTradeNum(bsFlag, delayedTraderflag, "B") as DelayedTraderBuyOrderNum ,
delayedTradeQty(bsFlag,delayedTraderflag, tradeQty, cumTradeQty, "B") as DelayedTraderBuyOrderQty from t1 context by SecurityID limit -1
///卖方
///step 1,标记延时状态,计算笔订单的累计成交量
t1 = select SecurityID,DateTime,"S" as bsFlag,tradeQty, cumsum(iif(DateTime-entrust.DateTime>60000,1,0)) as delayedTraderflag, cumsum(tradeQty) as cumTradeQty from lsj(trade, entrust, ['SecurityID', 'OfferApplSeqNum'], ['SecurityID', 'ApplSeqNum']) where tradePrice>0 context by SecurityID, OfferApplSeqNum
/////step 2,统计每只股票累计的延时成交订单数,和延时成交订单量
t3 = select SecurityID,DateTime,delayedTradeNum(bsFlag, delayedTraderflag, "S") as DelayedTraderSellOrderNum ,
delayedTradeQty(bsFlag,delayedTraderflag , tradeQty, cumTradeQty, "S") as DelayedTraderSellOrderQty from t1 context by SecurityID limit -1
t2=lsj(t2,t3,`SecurityID`DateTime)
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )