测试实时预测系统 - 页 19 1...121314151617181920212223242526...93 新评论 [删除] 2009.05.07 13:35 #181 grasn >> : 稍后,我将能够对预测实施的概率作出估计。问题--你说的是什么相关性? 我的意思是允许你以某种积分来评估预测系统的质量的东西。这样你就可以采取两个系统,用分数评估每一个系统,比较分数并说 "这个系统比那个系统好XX"。 总的来说,思考如何能更准确地做出这样的估计是很有意思的...... 相关系数是我首先想到的东西。像这样。 我们回到历史上的几年。 我们在历史上每运行一个小时,系统就会建立一个预测,并计算其与历史的相关性 然后,平均相关度就是系统的得分。 你是根据什么技术来估计预测实现的概率的? Сергей 2009.05.07 17:18 #182 我一直想尝试一个好奇的参数--每个时间段的数学期望值,但一直没有足够的时间。计算方法很简单,它是价格水平与相应的出现频率的乘积之和。该概率取自系统的初始概率状态。 我根本没有测试过这个参数,所以我不能说什么。但只是为了运动的兴趣:15分钟,欧元兑美元,从现在开始一天的预测 国家的矢量(有点不合时宜)。 对时间部分的期望(1个样本-15分钟)。 可能的水平(或不是很可能)。 Сергей 2009.05.07 17:40 #183 给Lord_Shadows Переименовали ветку. Теперь уже не игра, а тестирование, и кончились прогнозы. 预测还没有开始,从这个意义上说,我们只是在热身 :o))) 加入 :o) 到shtoba 我指的是允许你用一些分数来评估预测系统的质量的东西。一般来说,思考如何进行这样的估计是很有意思的。 长期以来,人们为冠军赛发明了这样的评级--事实上,它是所获得的积分数。我可以补充说--没有应用任何MM--只有模型的作用。最主要的是,这些积分是用来做什么的?这有什么意义呢? 如果我们去看几年的历史,我们每小时运行一次系统,它建立预测并计算它与历史的关联性。然后,相关性的平均值就是一种系统得分。 市场从不重复,如果你按3个时期计算预测的相关性,你会发现有很多 "类似 "的情况。但是系数不会说什么。 你又用什么方法来估计预测实施的概率? 在两个方面。 (1) 在每次倒计时时进行预测,并对其实现情况进行估计。然后计算频率,如果结果是,则进行更复杂的分析,将频率与当前情况与预测联系起来,独立于模型之外 (2) 第二种方法,更加理论化,位于模型本身。 Сергей 2009.05.09 20:31 #184 快乐的声音日!!!!祝我们的胜利日快乐!!!。:о))) 只是稍稍错过了1.3331的水平,其他的都很好。现在欧元兑美元的情况很奇怪。下面是信息熵 "地图 "的计算。 如果我们把最大熵的原则放在心上,我们应该预期回调到大约1.3445的水平,但另一方面,动态模型显示有基本的可能性上升到1.3756(我提醒,我认为这个价格水平是一个统计水平,价格将围绕它 "集中")。因此,最合理的是不要在周一开始交易,而是等待大约10-20次读数,每次15分钟 :o) 同事们,你们怎么看?谁有周一的计划/目标? 问题: (1)我已经开始学习MQL,并为MathCAD做了一个非常酷的:o) "取数据 "脚本。 extern int diapason = 7000; int start() { double process[]; GetHistoryProcess(process, diapason); CreateFlowData(process); return(0); } void GetHistoryProcess(double signal[], int window) { int n; int i; double y[]; ArrayResize(y, window); ArrayInitialize(y, 0.0); ArrayResize(signal, window); ArrayInitialize(signal, 0.0); i=0; for(n=0; n<=window-1; n++) { y[i]=(High[window-n-1]+Low[window-n-1])/2.0; i=i+1; } ArrayCopy(signal, y, 0, 0, WHOLE_ARRAY); return(0); } void CreateFlowData(double process[]) { int i; int N; int Handle; string FILE="data.csv"; N=ArraySize(process); Handle=FileOpen(FILE, FILE_CSV|FILE_WRITE,";"); if(Handle<0) { if(GetLastError()==4103) { Alert("Нет файла с именем ",FILE); } else { Alert("Ошибка при открытии файла ",FILE); } return; } for(i=0; i<=N-1; i++) { FileWrite(Handle, process[i]); } FileClose(Handle); return(0); } 起初我不明白为什么预测完全没有实现,后来我想明白了--我忘记了 "翻转 "数据 :o)。我输入extern 是想在初始化时有一个接口,我可以在那里输入想要的历史范围(它也会改变)而不需要编译。所以没有接口,它对脚本不起作用?以一些专家为例,它在那里工作。 (2) 我不知道如何将预测的时间序列 "写到未来"(例如)。在计算的时候,在处理和分析数据的时候,时间移动了,比如说,几个数?粗略的说,我想从某个历史日期(或零)开始向未来加载100个样本,也就是说,有些数据必须在当前条形图之前首先被加载到历史中,有些则更远。它不起作用。 Testing real-time forecasting systems 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. 编码帮助 [删除] 2009.05.12 08:55 #185 grasn >> : 起初我不明白为什么预测完全没有实现,但后来我想明白了--我忘了 "翻转 "数据 :o)。输入了extern,以为在初始化过程中会有一个接口,我可以在那里输入所需的历史范围(它也会改变),而不用编译。所以没有接口,它对脚本不起作用?以一些专家为例,它在那里工作。 它对脚本不起作用,只对指标和专家顾问起作用。如果你想管理外部变量,请将你的导出作为一个指标 (2) 我想不明白,(例如)我应该如何 "把预测的时间序列写到未来"。在计算的时候,在处理和分析数据的时候,时间移动了,比如说,几个数?粗略的说,我想从某个历史日期(或零)开始向未来加载100个样本,也就是说,有些数据必须在当前条形图之前首先被加载到历史中,有些则更远。这似乎并不奏效。 在MT中没有未来。所有系列都放在数组中,反之亦然。索引0对应的是当前(或最近的)时间,索引1对应的是向后的时间,等等。那么对于未来,我们需要索引-1,-2,等等,但在mql中没有这样的负数索引。 但也有其他的猫腻。请看指标的SetIndexShift函数(设置指标线相对于图表开头的移动)。这只是一种视觉上的转变。指数和以前一样,仍然是这样。 还有SetIndexDrawBegin(设置从数据开始的条形序号,指示线的绘制必须从这个序号开始),它可以用来在左边切割指定条形的绘制。 [删除] 2009.05.12 09:14 #186 为了使一切在时间上同步--不要用指数来标记你的系列值,而是用时间来标记,并通过Time[bar]与MT图表同步。 但有一个问题--图形上的时间轴可能是不均匀的。如果在图表上的初始系列中没有条形图(与服务器没有连接或由于其他原因有一个洞)--那么条形图仍将以连续方式绘制,时间将跳过这些间隙。这对 "过去 "来说是很自然的。 Виктор 2009.05.12 12:10 #187 grasn >> : ...输入了extern,以为在初始化时,会有一个界面,我可以在那里输入所需的历史范围(它也会改变),而不需要编译。所以没有接口,它对脚本不起作用?以一些专家为例,它的作用有:.... 在脚本中插入#property show_inputs,你的extern就会在脚本运行时出现。 Сергей 2009.05.12 18:11 #188 对Shtoba,granit77 同事们,感谢你们的帮助。:о)我对这些指标不太满意 :o)。我不知道如何使用它们。对于交易来说,根据市场模型的概念,它们是当地的地位水平--价格 "集中 "在它们附近。 在图片上,它们是红色的(更准确地说,我还没有计算它们,我正在准备一个星盘:o))。 理论上,它们可以在MT中显示为线条(例如 "趋势",类型似乎是OBJ_TREND)。但一个非常简单的问题出现了,如何重新计算时间计数(0, 1, 2, ....(每个15分钟))到 "未来 "时间。到目前为止,我已经找到了以下方法:我们把秒数TimeCurrent( ),加上预测的秒数,这个数字应该以某种方式转换为时间。我怎么做呢? PS:但我们在这个熵中仍有一些东西。价格还没有达到水平,但已经开始移动,如果我们结束交易,我们仍然会在加:o) Ярослав 2009.05.12 18:37 #189 Александр 2009.05.13 03:45 #190 grasn >> : ...只有一个非常简单的问题,如何重新计算时间计数(0, 1, 2, ....(每个15分钟))到 "未来 "时间... FutureTime=Time[0]+N*Period()*60; где N - номер бара в будущее от нулевого. 1...121314151617181920212223242526...93 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
稍后,我将能够对预测实施的概率作出估计。问题--你说的是什么相关性?
我的意思是允许你以某种积分来评估预测系统的质量的东西。这样你就可以采取两个系统,用分数评估每一个系统,比较分数并说 "这个系统比那个系统好XX"。
总的来说,思考如何能更准确地做出这样的估计是很有意思的......
相关系数是我首先想到的东西。像这样。
我们回到历史上的几年。
我们在历史上每运行一个小时,系统就会建立一个预测,并计算其与历史的相关性
然后,平均相关度就是系统的得分。
你是根据什么技术来估计预测实现的概率的?
我一直想尝试一个好奇的参数--每个时间段的数学期望值,但一直没有足够的时间。计算方法很简单,它是价格水平与相应的出现频率的乘积之和。该概率取自系统的初始概率状态。
我根本没有测试过这个参数,所以我不能说什么。但只是为了运动的兴趣:15分钟,欧元兑美元,从现在开始一天的预测
国家的矢量(有点不合时宜)。
对时间部分的期望(1个样本-15分钟)。
可能的水平(或不是很可能)。
给Lord_Shadows
Переименовали ветку. Теперь уже не игра, а тестирование, и кончились прогнозы.
预测还没有开始,从这个意义上说,我们只是在热身 :o))) 加入 :o)
到shtoba
我指的是允许你用一些分数来评估预测系统的质量的东西。一般来说,思考如何进行这样的估计是很有意思的。
长期以来,人们为冠军赛发明了这样的评级--事实上,它是所获得的积分数。我可以补充说--没有应用任何MM--只有模型的作用。最主要的是,这些积分是用来做什么的?这有什么意义呢?
如果我们去看几年的历史,我们每小时运行一次系统,它建立预测并计算它与历史的关联性。然后,相关性的平均值就是一种系统得分。
市场从不重复,如果你按3个时期计算预测的相关性,你会发现有很多 "类似 "的情况。但是系数不会说什么。
你又用什么方法来估计预测实施的概率?
在两个方面。
(1) 在每次倒计时时进行预测,并对其实现情况进行估计。然后计算频率,如果结果是,则进行更复杂的分析,将频率与当前情况与预测联系起来,独立于模型之外
(2) 第二种方法,更加理论化,位于模型本身。
快乐的声音日!!!!祝我们的胜利日快乐!!!。:о)))
只是稍稍错过了1.3331的水平,其他的都很好。现在欧元兑美元的情况很奇怪。下面是信息熵 "地图 "的计算。
如果我们把最大熵的原则放在心上,我们应该预期回调到大约1.3445的水平,但另一方面,动态模型显示有基本的可能性上升到1.3756(我提醒,我认为这个价格水平是一个统计水平,价格将围绕它 "集中")。因此,最合理的是不要在周一开始交易,而是等待大约10-20次读数,每次15分钟 :o)
同事们,你们怎么看?谁有周一的计划/目标?
问题:
(1)我已经开始学习MQL,并为MathCAD做了一个非常酷的:o) "取数据 "脚本。
extern int diapason = 7000;
int start()
{
double process[];
GetHistoryProcess(process, diapason);
CreateFlowData(process);
return(0);
}
void GetHistoryProcess(double signal[], int window)
{
int n;
int i;
double y[];
ArrayResize(y, window);
ArrayInitialize(y, 0.0);
ArrayResize(signal, window);
ArrayInitialize(signal, 0.0);
i=0;
for(n=0; n<=window-1; n++)
{
y[i]=(High[window-n-1]+Low[window-n-1])/2.0;
i=i+1;
}
ArrayCopy(signal, y, 0, 0, WHOLE_ARRAY);
return(0);
}
void CreateFlowData(double process[])
{
int i;
int N;
int Handle;
string FILE="data.csv";
N=ArraySize(process);
Handle=FileOpen(FILE, FILE_CSV|FILE_WRITE,";");
if(Handle<0)
{
if(GetLastError()==4103)
{
Alert("Нет файла с именем ",FILE);
}
else
{
Alert("Ошибка при открытии файла ",FILE);
}
return;
}
for(i=0; i<=N-1; i++)
{
FileWrite(Handle, process[i]);
}
FileClose(Handle);
return(0);
}
起初我不明白为什么预测完全没有实现,后来我想明白了--我忘记了 "翻转 "数据 :o)。我输入extern 是想在初始化时有一个接口,我可以在那里输入想要的历史范围(它也会改变)而不需要编译。所以没有接口,它对脚本不起作用?以一些专家为例,它在那里工作。
(2) 我不知道如何将预测的时间序列 "写到未来"(例如)。在计算的时候,在处理和分析数据的时候,时间移动了,比如说,几个数?粗略的说,我想从某个历史日期(或零)开始向未来加载100个样本,也就是说,有些数据必须在当前条形图之前首先被加载到历史中,有些则更远。它不起作用。
起初我不明白为什么预测完全没有实现,但后来我想明白了--我忘了 "翻转 "数据 :o)。输入了extern,以为在初始化过程中会有一个接口,我可以在那里输入所需的历史范围(它也会改变),而不用编译。所以没有接口,它对脚本不起作用?以一些专家为例,它在那里工作。
它对脚本不起作用,只对指标和专家顾问起作用。如果你想管理外部变量,请将你的导出作为一个指标
(2) 我想不明白,(例如)我应该如何 "把预测的时间序列写到未来"。在计算的时候,在处理和分析数据的时候,时间移动了,比如说,几个数?粗略的说,我想从某个历史日期(或零)开始向未来加载100个样本,也就是说,有些数据必须在当前条形图之前首先被加载到历史中,有些则更远。这似乎并不奏效。
在MT中没有未来。所有系列都放在数组中,反之亦然。索引0对应的是当前(或最近的)时间,索引1对应的是向后的时间,等等。那么对于未来,我们需要索引-1,-2,等等,但在mql中没有这样的负数索引。
但也有其他的猫腻。请看指标的SetIndexShift函数(设置指标线相对于图表开头的移动)。这只是一种视觉上的转变。指数和以前一样,仍然是这样。
还有SetIndexDrawBegin(设置从数据开始的条形序号,指示线的绘制必须从这个序号开始),它可以用来在左边切割指定条形的绘制。
为了使一切在时间上同步--不要用指数来标记你的系列值,而是用时间来标记,并通过Time[bar]与MT图表同步。
但有一个问题--图形上的时间轴可能是不均匀的。如果在图表上的初始系列中没有条形图(与服务器没有连接或由于其他原因有一个洞)--那么条形图仍将以连续方式绘制,时间将跳过这些间隙。这对 "过去 "来说是很自然的。
...输入了extern,以为在初始化时,会有一个界面,我可以在那里输入所需的历史范围(它也会改变),而不需要编译。所以没有接口,它对脚本不起作用?以一些专家为例,它的作用有:....
在脚本中插入#property show_inputs,你的extern就会在脚本运行时出现。
对Shtoba,granit77
同事们,感谢你们的帮助。:о)我对这些指标不太满意 :o)。我不知道如何使用它们。对于交易来说,根据市场模型的概念,它们是当地的地位水平--价格 "集中 "在它们附近。 在图片上,它们是红色的(更准确地说,我还没有计算它们,我正在准备一个星盘:o))。
理论上,它们可以在MT中显示为线条(例如 "趋势",类型似乎是OBJ_TREND)。但一个非常简单的问题出现了,如何重新计算时间计数(0, 1, 2, ....(每个15分钟))到 "未来 "时间。到目前为止,我已经找到了以下方法:我们把秒数TimeCurrent( ),加上预测的秒数,这个数字应该以某种方式转换为时间。我怎么做呢?
PS:但我们在这个熵中仍有一些东西。价格还没有达到水平,但已经开始移动,如果我们结束交易,我们仍然会在加:o)
...只有一个非常简单的问题,如何重新计算时间计数(0, 1, 2, ....(每个15分钟))到 "未来 "时间...