コード例 #1
0
ファイル: AccountTradeInfo.cpp プロジェクト: AiYong/Tracer
QList<Transaction*> AccountTradeInfo::CreateTransaction(Order const*pOrder,QDateTime const& oTimestamp,size_t nQuantity,double dPrice)
{
    QMutexLocker oLocker(&m_mLock);
    OrderOperator oOperator;
    QList<Transaction*> lTransactions;
    auto iPos = m_lPositions.begin();
    while(iPos != m_lPositions.begin())
    {
        Position *pPosition = *iPos;
        Transaction* pTransaction = oOperator.Close(pPosition,pOrder,oTimestamp,nQuantity,dPrice);
        lTransactions.append(pTransaction);
        if(pPosition->GetQuantity() == 0)
        {
            iPos = m_lPositions.erase(iPos);
            RemovePosition(pPosition);
        }
        else
        {
            break;
        }
    }
    m_lTradeDayTransactions.append(lTransactions);
    UpdateOrder(const_cast<Order*>(pOrder));
    SaveTransaction(lTransactions);
    return lTransactions;
}
コード例 #2
0
void FMultiBoxCustomizationData::BlockRemoved( TSharedRef< const FMultiBlock> RemovedBlock, int32 Index, const TArray< TSharedRef< const FMultiBlock > >& AllBlocks )
{
    FCustomBlockTransaction Remove = FCustomBlockTransaction::CreateRemove( RemovedBlock->GetAction().ToSharedRef(), Index );

    SaveTransaction( Remove, AllBlocks );

}
コード例 #3
0
void FMultiBoxCustomizationData::BlockAdded( TSharedRef< const FMultiBlock > AddedBlock, int32 Index, const TArray< TSharedRef< const FMultiBlock > >& AllBlocks )
{
    FCustomBlockTransaction Add = FCustomBlockTransaction::CreateAdd( AddedBlock->GetAction().ToSharedRef(), Index );

    SaveTransaction( Add, AllBlocks );
}