Have you ever considered the time and effort it would take for a data scientist to build a fully custom, Python-based trading solution to connect to EPEX and execute trades through an endlessly customizable framework? At first glance, it might seem like an impossible task, until now.
At Brady, we made it our mission to simplify and streamline this process. We’re excited to introduce PowerDesk Edge, the home of Edge Language, your one-stop shop for algo trading. With Edge Language, we’ve reimagined how traders and data scientists can develop, customize, and deploy trading strategies faster and more efficiently than ever before.
What is Algorithmic Trading (Algo Trading)?
Algorithmic trading, often called “algo trading,” uses computer programs and mathematical models to automatically execute trading strategies based on predefined rules. By analyzing market data-like price movements and volume and triggering trades when specific conditions are met, algo trading helps traders capitalize on even the smallest market opportunities. This automation removes human emotion and reaction time from the equation, making it easier to improve efficiency, minimize costs, and potentially increase overall profitability.
How Brady Does It Differently
Our approach at Brady focuses on maximum flexibility and customizability. We’ve developed a powerful Parent class in a library that you can extend by writing your own Subclass. This design pattern offers a true custom algo-writing experience without forcing you to reinvent the wheel each time you need to implement a new strategy.
Why this matters:
- Rapid development: Build upon our robust framework without starting from scratch.
- Tailored solutions: Adapt and refine strategies to match specific market conditions or personal trading preferences.
- Seamless integration: Easily connect to exchanges like EPEX and let the framework handle the heavy lifting behind the scenes.
Let’s Experience This Together
Imagine you’re an asset owner in Great Britain (GB), and you need to close your position to avoid incurring imbalance fees. Traditionally, achieving this would be challenging, involving manual calculations and constant monitoring.
With PowerDesk Edge, we solve this in just a few lines of code. Here’s a glimpse of how that might look
From BradyParentClass import EdgeAlgo
class yourfirstalgo(EdgeAlgo):
def EdgeSettingsSetup(self):
self.setExchnage("NordPool")
self.setDeliveryArea("N02")
self.setCurrency({"to_from":["GB","GB"],"rate" : 1})
self.SetEdgeContext("Backtest")
def EdgeSelectProducts(self):
self.SetOrigin([2025, 1, 21, 0, 0, 0]) # date
self.SetEnd([2025, 1, 21, 23, 59, 0]) # date
self.SetAlgoObservationStart(600) # seconds
self.SetAlgoObservationEnd(300) # seconds
self.SetProducts(
{
"HH": [5,6,7,8,9,10],
}
)
self.SetInitiatorTimer(30)
self.SetInitiatorMarkUp(0.01)
def EdgeSelectNOP(self):
self.setNOPSource("Simulator")
self.setMean(10)
self.setStandardDeviation(5)
self.setSeed(123)
def InitiateEdgeMemory(self):
# this is where we will do pattern matching for dynamic number of strats
self.SetEdgeMemory({"just_one_algo": False})
def QDT(self, current_product):
nop = current_product.get_current_nop()
if not self.EdgeMemory["just_one_algo"]:
trade.aggressor.buy(self, nop, 1, "FAK", current_product)
self.EdgeMemory["just_one_algo"] = True
current_product.time
That’s it, the snippet above serves as your entire algo, encapsulating all the intelligence and automation you need to manage your positions effectively.
def EdgeSettingsSetup(self):
self.setExchnage("NordPool")
self.setDeliveryArea("N02")
self.setCurrency({"to_from":["GB","GB"],"rate" : 1})
self.SetEdgeContext("Backtest")
def EdgeSelectProducts(self):
self.SetOrigin([2025, 1, 21, 0, 0, 0]) # date
self.SetEnd([2025, 1, 21, 23, 59, 0]) # date
self.SetAlgoObservationStart(600) # seconds
self.SetAlgoObservationEnd(300) # seconds
self.SetProducts(
{
"HH": [5,6,7,8,9,10],
}
)
self.SetInitiatorTimer(30)
self.SetInitiatorMarkUp(0.01)
def EdgeSelectNOP(self):
self.setNOPSource("Simulator")
self.setMean(10)
self.setStandardDeviation(5)
self.setSeed(123)
def InitiateEdgeMemory(self):
# this is where we will do pattern matching for dynamic number of strats
self.SetEdgeMemory({"just_one_algo": False})
def QDT(self, current_product):
nop = current_product.get_current_nop()
if not self.EdgeMemory["just_one_algo"]:
trade.aggressor.buy(self, nop, 1, "FAK", current_product)
self.EdgeMemory["just_one_algo"] = True
current_product.time
Ready to Learn More?
If you’d like to dive deeper into how Powerdesk Edge and Edge Language can transform your algo trading, we’d love to hear from you. Whether you’re an experienced quant or someone looking to automate your first trading strategy, Brady has the tools and expertise to guide you every step of the way.
Contact us today to explore how PowerDesk Edge can empower your energy trading journey and discover a new frontier of automated, custom, and efficient trading solutions.