资料库: 免费模糊逻辑库函数 - 页 2 123 新评论 Vladimir Perervenko 2013.02.15 13:02 #11 如果有人在 MT4 中使用过这个库,请告诉我 FCL 文件的扩展名是什么,放在哪里。我编写了一个指标。顺序如文章所述。1. 创建模型(无错误)IDm=ffll_new_model(); // 创建模型返回模型索引 if(IDm<0){ string txt=ffll_get_msg_textA(IDm); // 获取错误信息。 Alert("No model created "+txt);return(0);} 2.2.用程序加载文件(会出错)。文件位于\{Expert\File .我试过扩展名为 .fcl .txt 的文件。h=ffll_load_fcl_file(IDm, "Histo.txt"); // load the fuzzy modelling language program if(h<0){ txt=ffll_get_msg_textA(IDm); // get error message.Alert("程序文件未加载 "+txt);return(0);}。3.创建一个子程序ID1=ffll_new_child(IDm); // 为给定模型创建子模型,返回模型索引 if(ID1<0){ txt=ffll_get_msg_textA(IDm); // 得到错误信息。 Alert("No daughter created "+txt);return(0);} 4.4.逐条输入数据。例如IN=ffll_set_value(IDm,ID1,0,X); // 设置第一个输入变量的值 IN=ffll_set_value(IDm,ID1,1,Y); // 设置第二个输入变量的值等等。5.获取输出。Res=ffll_get_output_value(IDm,ID1); // 获取输出变量的值分享您的经验。 Libraries: Free Fuzzy Logic List of changes in Signal service client program SergeyVP 2013.02.18 10:30 #12 MT5 中也有类似问题。无法打开文件。代码示例:#include <FuzzyLogic\Flc.mqh>#property tester_file "model.fcl" int OnInit(){ string filename = "model.fcl"; // Считываю строку из файла и убеждаюсь, что его можно открыть. int filehandle = FileOpen(filename,FILE_READ|FILE_ANSI); if(filehandle < 0) { Print("Error code ",GetLastError()); Print(filename); } else { Print("Open success"); Print(FileReadString(filehandle)); FileClose(filehandle); } // FFCL int model = ffll_new_model(); if(model < 0) { Print("Ошибка создания модели!"); } int ret_val = ffll_load_fcl_file(model,filename); if(ret_val < 0) { string txt = ffll_get_msg_textW(model); Print("Ошибка: " + txt); } ffll_close_model(model); return(0);} void OnDeinit(const int reason){} void OnTick(){}我得到以下输出:Ошибка: Error Opening File FUNCTION_BLOCK Open success为什么会产生错误?据我所知,问题出在向 ffll_load_fcl_file 函数传递参数 时。(可能与编码或类型转换有关)。恳请使用过该程序库的人员回答。 Libraries: Free Fuzzy Logic 文章 "如何从 MQL5 (MQL4) Coding help Vladimir Perervenko 2013.02.18 10:48 #13 这可能与 .fcl 文件的结构有关,我还没有找到一个程序来检查它是否正确。文中的链接也不起作用。也许有谁已经使用过这个程序,请给我回信。该库原则上非常有趣(如果还能运行)。不幸的是,作者瞥了一眼就消失了。对问题不想回答。无法理解的神秘(或就业)。TO: SergeyVP/ 没有创建子模型,也没有输入变量。据我所知,你检查过加载的可能性吗?我们可以交换检查程序吗? Yury Reshetov 2013.02.18 12:22 #14 与自己在代码中编写三个基本模糊逻辑函数相比,处理库需要花费更多的时间:fussyOr(double a, double b) return (MathMin(a, b)); } fussyAnd(double a, double b) return (MathMax(a, b)); } fussyNot(double a) return (1.0 - a); } Vladimir Perervenko 2013.02.18 13:12 #15 不仅如此。辅助功能、模糊化等。再简单不过了。 SergeyVP 2013.02.18 13:35 #16 可能与 .fcl 文件的结构有关并非如此。函数返回 -1 表示找不到文件。我以为问题出在库本身,于是用 C++ 和 dll 检查了一下,结果一切正常。我从网站上的示例(在示例下载中)中 提取了示例代码和模型。至于 fcl 文件的结构,如果逻辑出现错误,模型将无法加载,并且会出现类似临界错误的 情况。至少在 C++ 中,如果我指定的模型有明显错误,程序就会崩溃:terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct null not validTO: SergeyVP/ 没有创建子模型,也没有输入变量。所以我理解你是在测试加载的可能性?是的,目前只是加载。如果模型没有加载,就没有必要创建子模型。要不要交换程序进行检查? 我不会以任何方式检查 fcl 模型的正确性。我在 MATLAB 中创建一个模型,得到 fis 文件。然后使用fuzzylite 程序将 fis 文件转换为 fcl 文件。与自己在代码中编写三个基本的模糊逻辑函数相比,处理库需要花费更多的时间: 不幸的是,看起来情况就是这样。我只能自己写了。 Vladimir Perervenko 2013.02.18 15:03 #17 SergeyVP: 不完全是这样。函数返回 -1 表示找不到文件。我以为问题出在库本身,于是用 C++ 和 dll 检查了一下,结果一切正常。我从网站上的示例(在示例下载中)中 提取了示例代码和模型。至于 fcl 文件的结构,如果逻辑出现错误,模型将无法加载,并且会出现类似临界错误的情况。至少在 C++ 中,如果我指定的模型有明确的错误,程序就会崩溃:terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct null not valid是的,目前只能加载。如果模型没有加载,创建子模型就没有意义了。 我没有以任何方式检查 fcl 模型的正确性。我在 MATLAB 中创建模型,得到 fis 文件。然后使用fuzzylite 程序将 fis 文件转换为 fcl 文件。 不幸的是,看起来情况就是这样。我得自己写了。明白了。谢谢。"我从网站上的示例(在示例下载中)中 提取了示例代码和模型"。我不明白,是从哪个网站上?请告诉我。也许将 MATLAB 与 MT4/MT5 连接起来更容易?已经有人提供了更多的解决方案。如果这个库不能工作,我可能会朝这个方向发展。 SergeyVP 2013.02.18 15:24 #18 Тут не понял, с какого сайта? Ткните плз. 来自该库的官方网站 - ffll.sourceforge.net。更准确地说: http://ffll.sourceforge.net/downloads.htm-> 下载使用 FFLL 的示例应用程序。其中有 C++ 代码和一个简单的 FCL 模型。也许将 MATLAB 与 MT4/MT5 连接起来会更容易?尤其是已经提出了解决方案。 在哪里阅读? Vladimir Perervenko 2013.02.18 15:38 #19 SergeyVP:来自该库的官方网站 - ffll.sourceforge.net。更准确地说: http://ffll.sourceforge.net/downloads.htm-> 下载使用 FFLL 的示例应用程序。其中有 C++ 代码和一个简单的 fcl 模型。 在哪里阅读? 这里。https://www.mql5.com/zh/articles/44 Vladimir Perervenko 2013.02.19 11:13 #20 我想听听 "运输车间主任 "的意见,他宣布了这一主题,并写道在 MT4 中一切运行良好。问题是没有加载 .fcl 文件。顺便说一句:该库并不完全支持标准。存在例外和限制等。而且输出只能是单元素集。 123 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如果有人在 MT4 中使用过这个库,请告诉我 FCL 文件的扩展名是什么,放在哪里。
我编写了一个指标。顺序如文章所述。
1. 创建模型(无错误)
IDm=ffll_new_model(); // 创建模型返回模型索引
if(IDm<0){
string txt=ffll_get_msg_textA(IDm); // 获取错误信息。
Alert("No model created "+txt);return(0);} 2.
2.用程序加载文件(会出错)。文件位于\{Expert\File .我试过扩展名为 .fcl .txt 的文件。
h=ffll_load_fcl_file(IDm, "Histo.txt"); // load the fuzzy modelling language program
if(h<0){
txt=ffll_get_msg_textA(IDm); // get error message
.Alert("程序文件未加载 "+txt);return(0);}。
3.创建一个子程序
ID1=ffll_new_child(IDm); // 为给定模型创建子模型,返回模型索引
if(ID1<0){
txt=ffll_get_msg_textA(IDm); // 得到错误信息。
Alert("No daughter created "+txt);return(0);} 4.
4.逐条输入数据。例如
IN=ffll_set_value(IDm,ID1,0,X); // 设置第一个输入变量的值
IN=ffll_set_value(IDm,ID1,1,Y); // 设置第二个输入变量的值
等等。
5.获取输出。
Res=ffll_get_output_value(IDm,ID1); // 获取输出变量的值
分享您的经验。
MT5 中也有类似问题。无法打开文件。代码示例:
#property tester_file "model.fcl"
int OnInit()
{
string filename = "model.fcl";
// Считываю строку из файла и убеждаюсь, что его можно открыть.
int filehandle = FileOpen(filename,FILE_READ|FILE_ANSI);
if(filehandle < 0)
{
Print("Error code ",GetLastError());
Print(filename);
}
else
{
Print("Open success");
Print(FileReadString(filehandle));
FileClose(filehandle);
}
// FFCL
int model = ffll_new_model();
if(model < 0)
{
Print("Ошибка создания модели!");
}
int ret_val = ffll_load_fcl_file(model,filename);
if(ret_val < 0)
{
string txt = ffll_get_msg_textW(model);
Print("Ошибка: " + txt);
}
ffll_close_model(model);
return(0);
}
void OnDeinit(const int reason){}
void OnTick(){}
我得到以下输出:
FUNCTION_BLOCK
Open success
为什么会产生错误?据我所知,问题出在向 ffll_load_fcl_file 函数传递参数 时。(可能与编码或类型转换有关)。
恳请使用过该程序库的人员回答。
这可能与 .fcl 文件的结构有关,我还没有找到一个程序来检查它是否正确。文中的链接也不起作用。也许有谁已经使用过这个程序,请给我回信。
该库原则上非常有趣(如果还能运行)。不幸的是,作者瞥了一眼就消失了。对问题不想回答。无法理解的神秘(或就业)。
TO: SergeyVP/ 没有创建子模型,也没有输入变量。据我所知,你检查过加载的可能性吗?
我们可以交换检查程序吗?
与自己在代码中编写三个基本模糊逻辑函数相比,处理库需要花费更多的时间:
不仅如此。辅助功能、模糊化等。再简单不过了。
并非如此。函数返回 -1 表示找不到文件。我以为问题出在库本身,于是用 C++ 和 dll 检查了一下,结果一切正常。我从网站上的示例(在示例下载中)中 提取了示例代码和模型。至于 fcl 文件的结构,如果逻辑出现错误,模型将无法加载,并且会出现类似临界错误的 情况。至少在 C++ 中,如果我指定的模型有明显错误,程序就会崩溃:
what(): basic_string::_S_construct null not valid
TO: SergeyVP/ 没有创建子模型,也没有输入变量。所以我理解你是在测试加载的可能性?
是的,目前只是加载。如果模型没有加载,就没有必要创建子模型。
要不要交换程序进行检查?
与自己在代码中编写三个基本的模糊逻辑函数相比,处理库需要花费更多的时间:
不完全是这样。函数返回 -1 表示找不到文件。我以为问题出在库本身,于是用 C++ 和 dll 检查了一下,结果一切正常。我从网站上的示例(在示例下载中)中 提取了示例代码和模型。至于 fcl 文件的结构,如果逻辑出现错误,模型将无法加载,并且会出现类似临界错误的情况。至少在 C++ 中,如果我指定的模型有明确的错误,程序就会崩溃:
what(): basic_string::_S_construct null not valid
是的,目前只能加载。如果模型没有加载,创建子模型就没有意义了。
我没有以任何方式检查 fcl 模型的正确性。我在 MATLAB 中创建模型,得到 fis 文件。然后使用fuzzylite 程序将 fis 文件转换为 fcl 文件。不幸的是,看起来情况就是这样。我得自己写了。
明白了。谢谢。
"我从网站上的示例(在示例下载中)中 提取了示例代码和模型"。
我不明白,是从哪个网站上?请告诉我。
也许将 MATLAB 与 MT4/MT5 连接起来更容易?已经有人提供了更多的解决方案。
如果这个库不能工作,我可能会朝这个方向发展。
Тут не понял, с какого сайта? Ткните плз.
来自该库的官方网站 - ffll.sourceforge.net。
更准确地说: http://ffll.sourceforge.net/downloads.htm-> 下载使用 FFLL 的示例应用程序。
其中有 C++ 代码和一个简单的 FCL 模型。
也许将 MATLAB 与 MT4/MT5 连接起来会更容易?尤其是已经提出了解决方案。
来自该库的官方网站 - ffll.sourceforge.net。
更准确地说: http://ffll.sourceforge.net/downloads.htm-> 下载使用 FFLL 的示例应用程序。
其中有 C++ 代码和一个简单的 fcl 模型。
在哪里阅读?我想听听 "运输车间主任 "的意见,他宣布了这一主题,并写道在 MT4 中一切运行良好。
问题是没有加载 .fcl 文件。
顺便说一句:该库并不完全支持标准。存在例外和限制等。而且输出只能是单元素集。