我正在尝试为算法交易实现市场模拟,我在 github 上找到了这段代码https://github.com/DrAshBooth/PyLOB。问题是,当我在小窗口(例如 2 天)运行代码时,一切都很好,并且得到了预期的结果。但是当我将窗口增加到 20 天或更长时,我收到“RuntimeError: deque mutated during iteration”。我检查了我的代码,但从未发现任何可能在运行期间改变双端队列的内容。以下是产生错误的代码部分:
self.tape = deque(maxlen=None)
.
.
.
def avg_volume_traded(self):
if self.tape != None and len(self.tape) > 0:
num = 0
total_volume = 0
for entry in self.tape:
total_volume = entry['qty'] + total_volume
num += 1
if num != 0 and total_volume != None:
return total_volume, num
else:
return None, None
Run Code Online (Sandbox Code Playgroud)
这是实际的错误消息:
Exception in thread Thread-10986:
Traceback (most recent call last):
File "/home/hamid/anaconda3/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File …
Run Code Online (Sandbox Code Playgroud) 我正在使用 Amibroker v6.3
我想了解回测期间进行的交易的利润百分比,然后相应地调整卖出标准。当利润低于10%时,我想使用这个函数sell_below10()。当利润>10%时,则使用函数 sell_abv10()。
如何在回测期间检测交易的利润百分比,以便我可以相应地使用正确的卖出功能?
谢谢。
//@version=4
study(shorttitle="try", title="line", overlay=true, resolution="")
line.new(x1=bar_index[10], y1=close[10], x2=bar_index, y2=close)
Run Code Online (Sandbox Code Playgroud)
我想使用 pine 脚本在交易视图图表中绘制一条简单的线。我收到分辨率错误。我错过了什么吗?
错误:第 5 行:“解决方案”参数与具有副作用的函数不兼容。脚本“crcheck”已保存
我收到错误第 13 行:找不到函数或函数引用“ema”。当我知道 ema 是一个函数时。
我正在尝试执行一个简单的策略,如果价格高于 200 DEMA,并且 SuperTrend 指标发出“买入”信号,则进入多头交易。如果超级趋势指标给出“卖出”信号,我想卖出。我的代码朝着正确的方向发展吗?非常感谢一些帮助!
//@version=5
strategy("DEMA and SuperTrend", overlay=true)
// SuperTrend
atrPeriod = input(12, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)
[_, direction] = ta.supertrend(factor, atrPeriod)
// DEMA
demaLength = input(200)
src = input(close, title="Source")
e1 = ema(src, demaLength)
e2 = ema(e1, demaLength)
dema = 2 * e1 - e2
if ta.change(direction) < 0 and close > dema
strategy.entry("long", strategy.long)
if ta.change(direction) > 0
strategy.close("long", strategy.close)
Run Code Online (Sandbox Code Playgroud) 在我的交易应用程序中,我有股票价格的“实时报价”。我需要维持 SMA。假设我想要 20 根蜡烛的 SMA,其中每根蜡烛的持续时间为 10 秒。这意味着
每 10 秒我就有一个“检查点”,其中:
每一个刻度:
因此,在任何价格变动时我都需要“重新计算”SMA。在大多数情况下,只有最后一根蜡烛的价格发生变化(因为我们使用最后的价格)。每 10 秒一次,我需要多一点额外的工作 - 我需要“忘记”过时蜡烛的平均值,并“存储”“刚刚创建”蜡烛的平均值。
您能建议如何以最低的延迟实现这一点吗?低延迟是首要要求。
据我所知,MQL4 中不存在函数指针。
作为一种解决方法,我使用:
// included for both caller as callee side
class Callback{
public: virtual void callback(){ return; }
}
Run Code Online (Sandbox Code Playgroud)
然后在传递回调的源中:
class mycb : Callback{
public: virtual void callback(){
// call to whatever function needs to be called back in this source
}mcbi;
Run Code Online (Sandbox Code Playgroud)
现在 mcbi 可以通过如下方式传递:
afunction(){
fie_to_receive_callback((Callback *)mycbi);
}
Run Code Online (Sandbox Code Playgroud)
接收者可以回调为:
fie_to_receive_callback(mycb *mcbi){
mcbi.callback(); // call the callback function
}
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法在 mql4 中传递函数回调?
我已经给出了一个使用c++和quickFix库开发算法交易系统的项目,我在谷歌上搜索了quickFix库,但没有找到任何有用的信息。谁能给我一些信息,我应该从哪里开始?
我正在使用poloniex提供的python包装器:wrapper
我现在尝试运行的方法是:
def returnTradeHistory(self,currencyPair):
return self.api_query('returnTradeHistory',{"currencyPair":currencyPair})
Run Code Online (Sandbox Code Playgroud)
但该方法.returnTradeHistory()
总是返回一个空列表,即使我已经使用该硬币进行了交易.其他方法按预期工作,即使那些也需要私有API(例如,返回余额).
我在这里错过了什么?
我试图在滚动窗口上对 SPY 收盘价应用赫斯特指数。如果我将以下代码(我从这里获得:https : //www.quantstart.com/articles/Basics-of-Statistical-Mean-Reversion-Testing)应用于收盘价列,则效果很好。然而,这给了我一个静态值。考虑到最近 200 个收盘价,我想在滚动窗口上应用赫斯特指数。我的目标是获得一列,其中考虑到最近 200 个收盘价,在每一行中更新 Hurst 指数。
from numpy import cumsum, log, polyfit, sqrt, std, subtract
from numpy.random import randn
import pandas_datareader as dr
from datetime import date
df = dr.data.get_data_yahoo('SPY',start='23-01-1991',end=date.today())
def hurst(ts):
"""Returns the Hurst Exponent of the time series vector ts"""
# Create the range of lag values
lags = range(2, 100)
# Calculate the array of the variances of the lagged differences
tau = [sqrt(std(subtract(ts[lag:], ts[:-lag]))) for lag in lags]
# …
Run Code Online (Sandbox Code Playgroud) 嗨,我正在尝试在 python 中安装 ibapi 但是该包似乎不可用,因为每次我尝试安装它时都会出现错误,还有另一种方法可以安装这个包。对你的帮助表示感谢。我留下了我使用的代码。尝试安装软件包
pip install ibapi
Run Code Online (Sandbox Code Playgroud) python algorithmic-trading quantitative-finance interactive-brokers ib-api