예제 #1
0
def overrides(suite_type_mro, order_info, suffix):
    from captain.lib import (Override, OverrideSet, OverrideSets,
                             PriceQuantityChange, ChangeAsCancelReplace)
    from commontests.utils import Small_Price_Qty_Chg_Predicate, AcctChg_Predicate
    spqc = Override(PriceQuantityChange, Small_Price_Qty_Chg_Predicate())

    suite_type_mro_names = [c.__name__ for c in suite_type_mro]
    if 'OrderManagementSuite' in suite_type_mro_names:
        return OverrideSets([TOCOM_OVERRIDES, [spqc]])
    else:
        return OverrideSet([Override()])
예제 #2
0
                                          ContractFilter, AConfigKey, Worker,
                                          ExchangeClearingAccount,
                                          ExchangeSubAccount, FreeText, Tif,
                                          UserName, Broker, Company,
                                          OperatorID, SubUserId, FileNames)
# Captain imports
from captain.lib.strategy_definitions import Strategy
from captain.controlled import (controlled_name_type, ControlledName)
from captain.lib.strategy import StrategyLeg, strike_equal_value_minus_diff
from pyrate.ttapi.predicates import ProductComparison, ContractComparison
from ttutil import PositiveIntegerBounds, in_, not_in_

#CommonTests Imports
from commontests.utils import Small_Price_Qty_Chg_Predicate

pcq = [Override(PriceQuantityChange, Small_Price_Qty_Chg_Predicate)]

# Global Variables
log = logging.getLogger(__name__)

################
#Aconfig path
################
PFX_enabled = AConfigKey.PRICE_SERVER_PFXENABLED
NumDepthLevels = AConfigKey.MARKET_DEPTH_NUMDEPTHLEVELS
EchoCount = AConfigKey.PRICE_SERVER_PDD_ECHOCOUNT
accumulate_ltq = AConfigKey.GAL_LAST_TRADED_QUANTITY
TTQAP_enabled = AConfigKey.TTQAP_ENABLED
MarketDepth_Coalescing = AConfigKey.MARKET_DEPTH_INTERVAL_MSECS
PDD_Type = AConfigKey.PRICE_SERVER_PDD_TYPE
예제 #3
0
#from ttapi.client import pythonify
from captain import implements, scope, Action
from captain.lib import (Override, OverrideSets, PriceQuantityChange,
                         SetExpectedNonTradeDataFromFills, SetOrderAction, SendOrder,
                         WaitForLastPricesOnTradeDataUpdateNoDuplicateCallbackCheck,
                         WaitForOrderStatus, WaitForFill, DeleteOrder, ReplaceOrder,
                         WaitForDirectTradeDataIgnoreOtherCallbacks)
from ttutil import hash_value
from ttapi import aenums, cppclient

# CommonTests Imports
from commontests import *

log = logging.getLogger(__name__)

spqc = Override(PriceQuantityChange, Small_Price_Qty_Chg_Predicate())
SPQC_SET = OverrideSets([[Override()], [spqc]])

tocom_price_overrides = []
tocom_tradestate_overrides = []

#Predicate for TOCOM DeleteOrder
class TOCOM_HoldOrder_Predicate(object):
    def __call__(self, action_type, arg_spec, test):
        for key in arg_spec.keys():
            order_status = arg_spec[key]
            if order_status == aenums.TT_ORDER_STATUS_HOLD:
                return True
            else:
                return False
예제 #4
0
                if at.base_id == 'SetOrderAttr' and \
                     action.args['chg_qty'] > 0:
                    return True
        return False

    def __hash__(self):
        return hash(hash_value(self.__class__.__name__).hexdigest())

    def __eq__(self, other):
        if type(other) != type(self):
            return False
        return True

    def __ne__(self, other):
        return not self.__eq__(other)

    def __str__(self):
        return self.__class__.__name__

    __repr__ = __str__

    @property
    def signature(self):
        return str(self)


#TFXOverrides.append(Override(TFXSetCurrentLastPrices))
#TFXOverrides.append(Override(ChangeAsCancelReplace, TFXChangeIncreaseQty()))
TFXOverrides.append(
    Override(WaitForLastPricesOnTradeDataUpdateNoDuplicateCallbackCheck))
예제 #5
0
from captain import implements, scope, Action
from captain.lib import (
    Override, OverrideSets, PriceQuantityChange,
    SetExpectedNonTradeDataFromFills, SetOrderAction, SendOrder,
    WaitForLastPricesOnTradeDataUpdateNoDuplicateCallbackCheck,
    WaitForOrderStatus, WaitForFill, DeleteOrder, ReplaceOrder,
    WaitForDirectTradeDataIgnoreOtherCallbacks)
from ttutil import hash_value
from ttapi import aenums, cppclient

# CommonTests Imports
from commontests import *

log = logging.getLogger(__name__)

spqc = Override(PriceQuantityChange, Small_Price_Qty_Chg_Predicate())
SPQC_SET = OverrideSets([[Override()], [spqc]])

ose_price_overrides = []
ose_tradestate_overrides = []


#Predicate for OSE DeleteOrder
class OSE_HoldOrder_Predicate(object):
    def __call__(self, action_type, arg_spec, test):
        for key in arg_spec.keys():
            order_status = arg_spec[key]
            if order_status == aenums.TT_ORDER_STATUS_HOLD:
                return True
            else:
                return False
예제 #6
0
# Pyrate Imports
from ttapi import aenums, cppclient
from ttapi.client import pythonify
from captain import implements, scope, interface, Action, Context, OrderContext, create_context
from captain.lib import Override, PriceQuantityChange, SetExpectedNonTradeDataFromFills,\
                        WaitForLastPricesOnTradeDataUpdateNoDuplicateCallbackCheck,\
                        WaitForOrderStatus, WaitForDirectTradeDataIgnoreOtherCallbacks,\
                        SetCurrentLastPrices
from pyrate.manager import Manager

# CommonTests Imports
from commontests import Small_Price_Qty_Chg_Predicate

log = logging.getLogger(__name__)

SPQCOverride = [Override(PriceQuantityChange, Small_Price_Qty_Chg_Predicate())]

SGXOverrides = []
SGXTradestateOverrides = []

### predicate ####
class IsSpreadChange(object):
    def __call__(self, action_type, arg_spec, test):
        if arg_spec['order_action'] == aenums.TT_ORDER_ACTION_CHANGE:
            # Trace thru the test to see if we are dealing with
            # a spread or strategy contract
            contract_types = 'TT_PROD_FSPREAD, TT_PROD_OSTRATEGY'
            for action in reversed(test.actions):
                at = type(action)
                if at.base_id == 'TickRel' and \
                  filter(lambda v: v in action.signature, contract_types):