investfly.models.strategy.TriggerSchedule

class SchedulePattern(builtins.str, enum.Enum):

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

INTERVAL = <SchedulePattern.INTERVAL: 'interval'>
HOURLY = <SchedulePattern.HOURLY: 'hourly'>
DAILY = <SchedulePattern.DAILY: 'daily'>
WEEKLY = <SchedulePattern.WEEKLY: 'weekly'>
MONTHLY = <SchedulePattern.MONTHLY: 'monthly'>
EVENT_RELATIVE = <SchedulePattern.EVENT_RELATIVE: 'event_relative'>
class ScheduleDayMode(builtins.str, enum.Enum):

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

TRADING = <ScheduleDayMode.TRADING: 'trading'>
WEEKDAYS = <ScheduleDayMode.WEEKDAYS: 'weekdays'>
EVERYDAY = <ScheduleDayMode.EVERYDAY: 'everyday'>
class Weekday(builtins.str, enum.Enum):

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

MON = <Weekday.MON: 'MON'>
TUE = <Weekday.TUE: 'TUE'>
WED = <Weekday.WED: 'WED'>
THU = <Weekday.THU: 'THU'>
FRI = <Weekday.FRI: 'FRI'>
SAT = <Weekday.SAT: 'SAT'>
SUN = <Weekday.SUN: 'SUN'>
def toIndex(self) -> int:
@staticmethod
def fromIndex(index: int) -> Weekday:
class MonthlyScheduleAnchor(builtins.str, enum.Enum):

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

FIRST_TRADING = <MonthlyScheduleAnchor.FIRST_TRADING: 'first_trading'>
LAST_TRADING = <MonthlyScheduleAnchor.LAST_TRADING: 'last_trading'>
FIRST_CALENDAR = <MonthlyScheduleAnchor.FIRST_CALENDAR: 'first_calendar'>
NTH_CALENDAR_DAY = <MonthlyScheduleAnchor.NTH_CALENDAR_DAY: 'nth_calendar_day'>
NTH_WEEKDAY = <MonthlyScheduleAnchor.NTH_WEEKDAY: 'nth_weekday'>
class ScheduleEventType(builtins.str, enum.Enum):

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

EXPIRY = <ScheduleEventType.EXPIRY: 'expiry'>
EXDIV = <ScheduleEventType.EXDIV: 'exdiv'>
EARNINGS = <ScheduleEventType.EARNINGS: 'earnings'>
FIRSTNOTICE = <ScheduleEventType.FIRSTNOTICE: 'firstnotice'>
ROLLOVER = <ScheduleEventType.ROLLOVER: 'rollover'>
class ScheduleEventTiming(builtins.str, enum.Enum):

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

BEFORE = <ScheduleEventTiming.BEFORE: 'before'>
AFTER = <ScheduleEventTiming.AFTER: 'after'>
ON = <ScheduleEventTiming.ON: 'on'>
@dataclass
class ScheduleWindow:
ScheduleWindow(fromTime: str = '09:30', to: str = '16:00')
fromTime: str = '09:30'
to: str = '16:00'
def validate(self) -> None:
def toDict(self) -> Dict[str, Any]:
@staticmethod
def fromDict( jsonDict: Dict[str, Any]) -> ScheduleWindow:
@dataclass
class TriggerSchedule:
TriggerSchedule( pattern: SchedulePattern = <SchedulePattern.DAILY: 'daily'>, days: Optional[ScheduleDayMode] = <ScheduleDayMode.TRADING: 'trading'>, daysOfWeek: Optional[List[Weekday]] = None, intervalMinutes: Optional[int] = None, window: Optional[ScheduleWindow] = None, time: Optional[str] = '09:30', anchor: Optional[MonthlyScheduleAnchor] = None, day: Optional[int] = None, n: Optional[int] = None, dayOfWeek: Optional[Weekday] = None, event: Optional[ScheduleEventType] = None, timing: Optional[ScheduleEventTiming] = None, offsetTradingDays: Optional[int] = None)
pattern: SchedulePattern = <SchedulePattern.DAILY: 'daily'>
days: Optional[ScheduleDayMode] = <ScheduleDayMode.TRADING: 'trading'>
daysOfWeek: Optional[List[Weekday]] = None
intervalMinutes: Optional[int] = None
window: Optional[ScheduleWindow] = None
time: Optional[str] = '09:30'
anchor: Optional[MonthlyScheduleAnchor] = None
day: Optional[int] = None
n: Optional[int] = None
dayOfWeek: Optional[Weekday] = None
event: Optional[ScheduleEventType] = None
timing: Optional[ScheduleEventTiming] = None
offsetTradingDays: Optional[int] = None
@staticmethod
def everyMinute( days: ScheduleDayMode = <ScheduleDayMode.TRADING: 'trading'>, window: Optional[ScheduleWindow] = None) -> TriggerSchedule:
@staticmethod
def everyFiveMinutes( days: ScheduleDayMode = <ScheduleDayMode.TRADING: 'trading'>, window: Optional[ScheduleWindow] = None) -> TriggerSchedule:
@staticmethod
def everyFifteenMinutes( days: ScheduleDayMode = <ScheduleDayMode.TRADING: 'trading'>, window: Optional[ScheduleWindow] = None) -> TriggerSchedule:
@staticmethod
def everyThirtyMinutes( days: ScheduleDayMode = <ScheduleDayMode.TRADING: 'trading'>, window: Optional[ScheduleWindow] = None) -> TriggerSchedule:
@staticmethod
def interval( intervalMinutes: int = 15, days: Optional[ScheduleDayMode] = <ScheduleDayMode.TRADING: 'trading'>, daysOfWeek: Optional[Sequence[Weekday]] = None, window: Optional[ScheduleWindow] = None) -> TriggerSchedule:
@staticmethod
def hourly( days: Optional[ScheduleDayMode] = <ScheduleDayMode.TRADING: 'trading'>, daysOfWeek: Optional[Sequence[Weekday]] = None, window: Optional[ScheduleWindow] = None) -> TriggerSchedule:
@staticmethod
def daily( time: str = '09:30', days: Optional[ScheduleDayMode] = <ScheduleDayMode.TRADING: 'trading'>, daysOfWeek: Optional[Sequence[Weekday]] = None) -> TriggerSchedule:
@staticmethod
def weekly( daysOfWeek: Union[Weekday, Sequence[Weekday]] = <Weekday.MON: 'MON'>, time: str = '09:30') -> TriggerSchedule:
@staticmethod
def monthly( day: int = 1, time: str = '09:30') -> TriggerSchedule:
@staticmethod
def firstTradingDayOfMonth( time: str = '09:30') -> TriggerSchedule:
@staticmethod
def lastTradingDayOfMonth( time: str = '09:30') -> TriggerSchedule:
@staticmethod
def eventRelative( event: ScheduleEventType, timing: ScheduleEventTiming = <ScheduleEventTiming.BEFORE: 'before'>, offsetTradingDays: Optional[int] = 1, time: str = '09:30') -> TriggerSchedule:
def validate(self) -> None:
def minimumIntervalMinutes(self) -> int:
def toDict(self) -> Dict[str, Any]:
@staticmethod
def fromDict( jsonDict: Dict[str, Any]) -> TriggerSchedule:
@dataclass
class ScheduleEvent:
ScheduleEvent( callbackName: str, schedule: TriggerSchedule, scheduledTime: datetime.datetime, actualTime: datetime.datetime, isBacktest: bool = False)
callbackName: str
schedule: TriggerSchedule
scheduledTime: datetime.datetime
actualTime: datetime.datetime
isBacktest: bool = False
@dataclass
class ScheduledCallback:
ScheduledCallback( name: str, schedule: TriggerSchedule, callback: Callable[[ScheduleEvent], Any])
name: str
schedule: TriggerSchedule
callback: Callable[[ScheduleEvent], Any]
def scheduled(schedule: TriggerSchedule):
def discoverScheduledCallbacks( strategy: investfly.models.strategy.TradingStrategy) -> List[ScheduledCallback]:
def isScheduledMethod(value: object) -> bool: