Обсуждение статьи "Нечеткая логика в торговых стратегиях" - страница 6

 
Maxim Dmitrievsky:

Здравствуйте, вы можете прочитать здесь https://www.mql5.com/ru/articles/3856

Также скоро будет новая статья, может быть, а может и нет...

привет, Максим

спасибо за ваши фантастические образцы

когда я отлаживаю эту ea


Fuzzy_logic_for_fuzzy_algotraders_Anywhere_v02.mq5

или другие примеры нечеткой логики

ошибка возврата mql

некорректное приведение указателей в RuleParser.mqh строка 712

пожалуйста, помогите исправить эту ошибку

версия моего компилятора

Версия 5 build 2340 21 февраля 2020

большое спасибо

 
Это потрясающе... Я реализовал ее с небольшими дополнениями (например, дополнил правила, предложенные автором) в трехканальной стратегии средней реверсии и улучшил ее показатели до луны... спасибо, что поделились.
 
Здравствуйте, спасибо за ваши статьи, вы меня многому научили, спасибо Максим!
 

У меня есть следующий код, который начинался с вашего примера одной нечеткой системы.

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);
}

Я перекодирую его так, чтобы он мог обрабатывать три отдельные нечеткие системы.

Очевидно, что мне нужно учитывать выходы трех нечетких систем.

Я хотел бы агрегировать три выхода с помощью весов.

Буду рад предложениям по завершению кода.

Боб М

Данедин

Новая Зеландия