Diskussion zum Artikel "Fuzzy-Logik in Handelsstrategien" - Seite 6

 
Maxim Dmitrievsky:

Hallo, Sie können hier lesen https://www.mql5.com/de/articles/3856

auch neue Artikel bald vielleicht, vielleicht nicht..

Hallo Maxime

danke für deine tollen Beispiele

wenn ich diese Ea debugge


Fuzzy_logic_für_fuzzy_algotraders_Anywhere_v02.mq5

oder andere Fuzzy-Logik-Beispiele

mql Rückgabefehler

Falsches Casting von Zeigern in RuleParser.mqh Zeile 712

Bitte helfen Sie, diesen Fehler zu beheben

meine Compiler-Version ist

Version 5 build 2340 21 Feb 2020

vielen Dank an Sie

 
Das ist erstaunlich... Ich habe es mit einigen kleinen Ergänzungen (wie z.B. die Ergänzung der Regeln, wie vom Autor vorgeschlagen) in eine Triple-Channel-Mittelwertumkehr-Strategie implementiert und seine Leistung auf den Mond verbessert... danke für das Teilen.
 
Hallo, danke für Ihre Artikel, Sie haben mir viel beigebracht, danke Maxim!
 

Ich habe den folgenden Code, der mit Ihrem Beispiel für ein Fuzzy-System begann

double CalculateMamdani()
{
// Puffer und Arrays normalisiert
 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);

// Eingänge - erstes Fuzzy-System [RSI] 
 firstTerm.SetAll(firstInput,arr1[0]);
 secondTerm.SetAll(secondInput,arr2[0]);
 thirdTerm.SetAll(thirdInput,arr2[0]);
 // Eingänge - zweites Fuzzy-System [CCI]]
 fourthTerm.SetAll(fourthInput,arr4[0]);
 fifthTerm.SetAll(fifthInput,arr5[0]);
 sixthTerm.SetAll(sixthInput,arr6[0]);
 // Eingänge - drittes Fuzzy-System [Stochastisch]]
 seventhTerm.SetAll(seventhInput,arr7[0]);
 eighthTerm.SetAll(eighthInput,arr8[0]);
 ninthTerm.SetAll(ninthInput,arr9[0]);
 
 Inputs.Clear();
 // Begriffe hinzufügen - erstes Fuzzy-System [RSI]]
 Inputs.Add(firstTerm);
 Inputs.Add(secondTerm);
 Inputs.Add(thirdTerm);
// Begriffe hinzufügen - zweites Fuzzy-System [CCI} 
 Inputs.Add(fourthTerm);
 Inputs.Add(fifthTerm);
 Inputs.Add(sixthTerm);
 // Begriffe hinzufügen - drittes Fuzzy-System [Stockastic]
 Inputs.Add(seventhTerm);
 Inputs.Add(eighthTerm);
 Inputs.Add(ninthTerm);
 
 CList *FuzzResult=OurFuzzy.Calculate(Inputs);

 Output=FuzzResult.GetNodeAtIndex(0); // muss aktualisiert werden, um drei Ausgänge statt einem zu berücksichtigen !!!!!!!!
 
double res = Output.Value();

// Code für die Aggregationsmethode für drei Ausgänge unter Verwendung von Gewichten hinzufügen

delete FuzzResult;

 return(res);
}

Ich kodiere ihn so um, dass er drei separate Fuzzy-Systeme verarbeiten kann.

Es ist klar, dass ich die Ausgaben der drei Fuzzy-Systeme berücksichtigen muss.

Ich möchte die drei Ausgaben mit Hilfe von Gewichten aggregieren.

Vorschläge zur Vervollständigung des Codes sind sehr willkommen

Bob M

Dunedin

neuseeland