文章 "交易策略中的模糊逻辑" - 页 6

 
Maxim Dmitrievsky:

您好,请阅读https://www.mql5.com/zh/articles/3856

也许很快会有新文章,也许不会。

嗨,格言

感谢您提供的精彩样本

当我调试这个 ea 时


mql 返回错误

在 RuleParser.mqh 第 712 行上指针转换错误

请帮助修复此错误

我的编译器版本是

版本 5 第 2340 版 2020 年 2 月 21 日

非常感谢

 
这太神奇了我在一个三通道均值回归策略中实施了它,并做了一些小的补充(比如按照作者的建议补充了规则),结果它的性能提高到了月球上......感谢您的分享。
 
嗨,谢谢你的文章,你教会了我很多,谢谢马克西姆!
 

我有以下代码,它是从您的一个模糊系统示例开始的

double CalculateMamdani()
{
// 缓冲区和数组正常化
 CopyBuffer(hnd1,0,0,1,arr1);
 NormalizeArrays(arr1);
   
 CopyBuffer(hnd2,0,0,1,arr2);
 NormalizeArrays(arr2);
    
 CopyBuffer(hnd3,0,0,1,arr3);
 NormalizeArrays(arr3);

 CopyBuffer(hnd4,0,0,1,arr4);
 NormalizeArrays(arr4);
   
 CopyBuffer(hnd5,0,0,1,arr5);
 NormalizeArrays(arr5);
    
 CopyBuffer(hnd6,0,0,1,arr6);
 NormalizeArrays(arr6);

 CopyBuffer(hnd7,0,0,1,arr7);
 NormalizeArrays(arr7);
   
 CopyBuffer(hnd8,0,0,1,arr8);
 NormalizeArrays(arr8);
    
 CopyBuffer(hnd9,0,0,1,arr9);
 NormalizeArrays(arr9);

// 输入 - 第一个模糊系统 [RSI] 
 firstTerm.SetAll(firstInput,arr1[0]);
 secondTerm.SetAll(secondInput,arr2[0]);
 thirdTerm.SetAll(thirdInput,arr2[0]);
 // 输入 - 第二模糊系统 [CCI]]
 fourthTerm.SetAll(fourthInput,arr4[0]);
 fifthTerm.SetAll(fifthInput,arr5[0]);
 sixthTerm.SetAll(sixthInput,arr6[0]);
 // 输入 - 第三模糊系统 [随机]]
 seventhTerm.SetAll(seventhInput,arr7[0]);
 eighthTerm.SetAll(eighthInput,arr8[0]);
 ninthTerm.SetAll(ninthInput,arr9[0]);
 
 Inputs.Clear();
 // 添加术语 - 第一个模糊系统 [RSI]]
 Inputs.Add(firstTerm);
 Inputs.Add(secondTerm);
 Inputs.Add(thirdTerm);
// 增加术语 - 第二模糊系统 [CCI} 
 Inputs.Add(fourthTerm);
 Inputs.Add(fifthTerm);
 Inputs.Add(sixthTerm);
 // 增加术语 - 第三模糊系统 [Stockastic]
 Inputs.Add(seventhTerm);
 Inputs.Add(eighthTerm);
 Inputs.Add(ninthTerm);
 
 CList *FuzzResult=OurFuzzy.Calculate(Inputs);

 Output=FuzzResult.GetNodeAtIndex(0); // 需要更新,以考虑三个而不是一个输出 !!!!!!!!
 
double res = Output.Value();

// 使用权重为三个输出的汇总方法添加代码

delete FuzzResult;

 return(res);
}

我正在重新编码,以便它能处理三个独立的模糊系统

显然,我需要考虑三个模糊系统的输出结果

我想使用权重将三个输出汇总起来

欢迎就如何完成代码提出建议

Bob M

新西兰

新西兰