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()])
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
#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
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))
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
# 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):