Brokers¶
SimpleBroker¶
SimpleBroker
¶
Bases: Broker
A simple broker that executes orders with configurable slippage and commissions.
This broker simulates order execution with realistic transaction costs. Both slippage and commission models are optional - if not provided, orders fill at exact market prices with zero commission (backward compatible behavior).
Note: This broker does not allow for short selling.
Example
Zero-cost trading (backward compatible)¶
broker = SimpleBroker(margin=2.0)
With slippage and commissions¶
from alphaflow.slippage_models import FixedSlippageModel from alphaflow.commission_models import PerShareCommissionModel
broker = SimpleBroker( margin=2.0, slippage_model=FixedSlippageModel(slippage_bps=5.0), commission_model=PerShareCommissionModel( commission_per_share=0.005, min_commission=1.0 ), )
Source code in alphaflow/brokers/simple_broker.py
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | |
__init__(margin=2.0, slippage_model=None, commission_model=None)
¶
Initialize the broker.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
margin
|
float
|
The allowed margin for trading. If 1.0, no margin trading is allowed. |
2.0
|
slippage_model
|
SlippageModel | None
|
Optional slippage model for realistic fill prices. If None, orders fill at exact market price. |
None
|
commission_model
|
CommissionModel | None
|
Optional commission model for trading costs. If None, no commission is charged. |
None
|
Source code in alphaflow/brokers/simple_broker.py
read_event(event)
¶
Read and process the event.