Adjust when "RuinStop" occurs to account for open trade drawdown and maintenance margin

Hi guys, wondering if anyone can help with this problem:

I want to adjust the "maintenance margin" available on an account - basically adjusting when the "RuinStop" occurs in the backtester, and I want to have it account for large price swings that happen during open trades aka open-trade drawdowns. Another adequete method would be to define the largest % drawdown allowable on the account.

The problem I'm having is this:

I want to trading volatile instruments with approx. leverage of 300% of account balance (MarginDeposit = -33), and a maintenance margin requirement of 15% (i.e. if the value of my account minus the losses of open positions goes below 15% of the total margin account value, the position gets forced closed and the losses are taken out of my account).

For example, with a $10,000 account, I can open positions up to a total value of $30,000, and if the losses on the open positions exceed $8500 (100% - 85% = 15% maintenance margin), I get margin called - the exchange force closes the positions, and there is $1500 left in the account.

I want to be sure that the parameters I get from the optimizations are "safe" (or at least as safe as possible) and won't result in a margin call when running the strategy live.

Currently I am optimizing my strategy with the following parameters:

SetOption("InitialEquity", 10000 ); // set initial equity = 10K 
SetOption("FuturesMode", True ); 
SetPositionSize(100, spsPercentOfEquity ); 
MarginDeposit= -33;

Unfortunately, the built-in RuinStop doesn't seem to happen unless my losses are something like 200% of the account balance. So, where the exchange would have margin called me when (Balance - Losses) = 0.15*Balance, Amibroker will not produce the RuinStop unless the Cumulative Profit goes below 0, and doesn't seem to account for open-trade drawdowns (if a price spike results in a margin call while the trade is still open). To get around this, I've been optimizing using a much higher leverage (like -20 MarginDeposit instead of -33) but this isn't a good solution.

To illustrate the problem more clearly:
In one optimization, the optimal settings produced a trade that opened a long at $0.95, the price dipped to a low of $0.45, then recovered, and the long was closed at $1.05. In the backtester, this shows as a gain, since the trade opened at .95 and closed at 1.05. However, the dip from 0.95 to 0.45 at 300% leverage would have resulted in my account balance going below 15% (actually, far below 0), and I would have been margin called.

Is there a way to change this behavior?

Thank you for your help!

You can only disable ruin stop via SetOption() call.

I suppose a "quick and dirty" way of making my code account for price spikes which would have caused margin calls in real life is by simply adding a fixed stoploss to the code.

Ideally I would prefer to limit the optimization results to those which NEVER cause this to happen, but that doesn't seem to be possible.