考虑到我先前购买的资产的价格和金额,我想在价格较高时立即购买更多资产。
但是,我希望我购买的这个新金额加上我之前购买的金额的利润百分比大于定义的最小值(0.5%)。利润百分比是使用加权平均值计算的,该加权平均值是使用我已经购买的价格和数量以及我现在可以购买的价格和最大数量得出的。
因此,我需要可以计算当前价格下可以购买的最大数量的代码,并且仍保持总利润百分比至少为0.5%
此代码有效,但是当我将precision
设置为大于2的任何值时,我需要使其更快,并且我将使用的最高值是8。当我使用更高的{值{1}}?
precision
精度为3时的持续时间:0.23786091804504395秒
精度为6时的持续时间:2.476567268371582秒
答案 0 :(得分:1)
这是寻根( @Slot()
def method_call(self, obj, method_name, *args, **kwargs):
method = getattr(obj, method_name)
if method:
return method(*args, **kwargs)
else:
return None
的零是 def anymethod(self, obj, method_name, *args, **kwargs):
self.gui_signal.emit(obj, method_name, *args, **kwargs)
的函数);没有理由通过线性搜索来做到这一点。普通的包装器是scipy.optimize.brentq
,尽管滚动自己的bisection search很简单,并且比线性搜索快了很多(emem)(精度相同)。