Overall Statistics
Total Orders
2
Average Win
0%
Average Loss
0.00%
Compounding Annual Return
0.000%
Drawdown
0.000%
Expectancy
-1
Start Equity
100000.0
End Equity
99999.76
Net Profit
0.000%
Sharpe Ratio
-16572.263
Sortino Ratio
-24740.115
Probabilistic Sharpe Ratio
2.597%
Loss Rate
100%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
-0.055
Beta
-0
Annual Standard Deviation
0
Annual Variance
0
Information Ratio
-0.714
Tracking Error
0.011
Treynor Ratio
8455.184
Total Fees
$0.00
Estimated Strategy Capacity
$40000000000.00
Lowest Capacity Asset
BTCUSD 38Z
Portfolio Turnover
0.00%
Drawdown Recovery
2
from AlgorithmImports import *

class dYdXBrokerageExampleAlgorithm(QCAlgorithm):

    def initialize(self):
        self.set_start_date(2024, 9, 1)
        self.set_cash(100000)
        
        self.set_brokerage_model(BrokerageName.DYDX, AccountType.MARGIN)
        
        self._symbol = self.add_crypto_future("BTCUSD", Resolution.MINUTE).symbol
        
        # Set default order properties
        self.default_order_properties = dYdXOrderProperties()
        self.default_order_properties.time_in_force = TimeInForce.DAY
        self.default_order_properties.reduce_only = False
        self.default_order_properties.post_only = False


    def on_data(self, data):
        if self.portfolio.invested:
            return
        
        # Place an order with the default order properties
        self.market_order(self._symbol, 1)
        
        # Place an order with new order properties
        order_properties = dYdXOrderProperties()
        order_properties.time_in_force = TimeInForce.GOOD_TIL_CANCELED
        order_properties.post_only = True
        order_properties.reduce_only = True
        ticket = self.limit_order(self._symbol, -0.5, round(data[self._symbol].price + 5000, 2), order_properties = order_properties)