Overall Statistics
Total Trades
3
Average Win
0%
Average Loss
-8.84%
Compounding Annual Return
-82.831%
Drawdown
84.900%
Expectancy
-1
Net Profit
-66.080%
Sharpe Ratio
-0.257
Probabilistic Sharpe Ratio
12.865%
Loss Rate
100%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
-0.378
Beta
0.128
Annual Standard Deviation
1.401
Annual Variance
1.963
Information Ratio
-0.346
Tracking Error
1.438
Treynor Ratio
-2.818
Total Fees
$12.96
from clr import AddReference
AddReference("System")
AddReference("QuantConnect.Common")
AddReference("QuantConnect.Algorithm")

from System import *
from QuantConnect import *
from QuantConnect.Orders import *
from QuantConnect.Algorithm import QCAlgorithm
import numpy as np
from datetime import datetime, timedelta

class MarginCallEventsAlgorithm(QCAlgorithm):

    def Initialize(self):
        self.SetCash(100000)
        self.SetStartDate(2020,1,1)
        self.SetEndDate(2020,8,11)

        self.AddEquity("UAL", Resolution.Daily)
        
        self.AddEquity("DAL", Resolution.Daily)
        self.Securities["DAL"].SetLeverage(2)

    def OnData(self, data):
        if not self.Portfolio.Invested:
            self.SetHoldings("DAL",1.25)
            #self.SetHoldings("UAL",-0.5)

    def OnMarginCall(self, requests):
        self.Log("Margin Call")
        self.Plot("Margin", "Remaining", int(self.Portfolio.MarginRemaining / self.Portfolio.TotalPortfolioValue < -0.1))
        return requests

    def OnEndOfDay(self):
        if self.Portfolio.MarginRemaining < 100000:
            self.Plot("Margin", "Remaining", int(self.Portfolio.MarginRemaining / self.Portfolio.TotalPortfolioValue < -0.1))