| Overall Statistics |
|
Total Trades 17 Average Win 0% Average Loss -75.52% Compounding Annual Return -100.000% Drawdown 93.300% Expectancy -1 Net Profit -82.562% Sharpe Ratio -1.071 Loss Rate 100% Win Rate 0% Profit-Loss Ratio 0 Alpha -5.668 Beta 159.812 Annual Standard Deviation 2.976 Annual Variance 8.858 Information Ratio -1.076 Tracking Error 2.976 Treynor Ratio -0.02 Total Fees $0.00 |
import numpy as np
from decimal import Decimal
class CustomMarginModelAlgorithm(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2013,10, 7)
self.SetEndDate(2013,11,20)
self.SetCash(200)
security = self.AddForex("EURUSD", Resolution.Daily)
self.Portfolio.SetMarginCallModel(CustomMarginCallModel(self.Portfolio, None))
def OnData(self, data):
self.MarketOrder("EURUSD", 1000)
def OnMarginCallWarning(self):
self.Liquidate("EURUSD")
class CustomMarginCallModel(DefaultMarginCallModel):
def __init__(self, portfolio, defaultOrderProperties):
self.portfolio = portfolio
self.defaultOrderProperties = defaultOrderProperties
super().__init__(portfolio, defaultOrderProperties)
def GetMarginCallOrders(self, issueMarginCallWarning):
issueMarginCallWarning = False
if self.portfolio.TotalPortfolioValue < Decimal(0.6)*self.portfolio.TotalMarginUsed:
issueMarginCallWarning = True
return [], issueMarginCallWarning