MetaTrader 5 herunterladen

CNormalCombinationMembershipFunction

Klasse für die Implementierung einer doppelseitigen Gauß'schen Zugehörigkeitsfunktion mit den Parametern B1, B2, Sigma1 und Sigma2.

Beschreibung

Eine doppelseitige Gauß'sche Zugehörigkeitsfunktion wird unter Verwendung der Gauß-Verteilung gebildet. Sie ermöglicht es, asymmetrische Zugehörigkeitsfunktionen zu setzen. Im ganzen Definitionsbereich ist die Funktion glatt und nimmt non zero Werte an.  

 

fuzzy_normcomb_function

Ein Beispielcode für das Zeichnen dieser Grafik ist unten angeführt.

Deklaration

   class CNormalCombinationMembershipFuncion : public IMembershipFunction

Überschrift

   #include <Math\Fuzzy\membershipfunction.mqh>

Vererbungshierarchie

  CObject

      IMembershipFunction

          CNormalCombinationMembershipFunction

Methoden der Klasse

Methode der Klasse  

Beschreibung

B1

Liefert und setzt den Wert des ersten Zentrums der Zugehörigkeitsfunktion.

B2

Liefert und setzt den Wert des zweiten Zentrums der Zugehörigkeitsfunktion.

Sigma1

Liefert und setzt den Wert des ersten Parameter der Krümmung der Zugehörigkeitsfunktion.

Sigma2

Liefert und setzt den Wert des zweiten Parameter der Krümmung der Zugehörigkeitsfunktion.

GetValue

Berechnet den Wert der Funktion nach dem angegebenen Argument.

Methoden geerbt von der Klasse CObject

Prev, Prev, Next, Next, Save, Load, Type, Compare

Beispiel

//+------------------------------------------------------------------+
//|                          NormalCombinationMembershipFunction.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#include <Math\Fuzzy\membershipfunction.mqh>
#include <Graphics\Graphic.mqh>
//--- Create membership functions
CNormalCombinationMembershipFunction func1(1,2,3,1);
CNormalCombinationMembershipFunction func2(4,2,5,1);
CNormalCombinationMembershipFunction func3(6,2,6,1);
//--- Create wrappers for membership functions
double NormalCombinationMembershipFunction1(double x) { return(func1.GetValue(x)); }
double NormalCombinationMembershipFunction2(double x) { return(func2.GetValue(x)); }
double NormalCombinationMembershipFunction3(double x) { return(func3.GetValue(x)); }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- create graphic
   CGraphic graphic;
   if(!graphic.Create(0,"NormalCombinationMembershipFunction",0,30,30,780,380))
     {
      graphic.Attach(0,"NormalCombinationMembershipFunction");
     }
   graphic.HistoryNameWidth(70);
   graphic.BackgroundMain("NormalCombinationMembershipFunction");
   graphic.BackgroundMainSize(16);
//--- create curve
   graphic.CurveAdd(NormalCombinationMembershipFunction1,0.0,10.0,0.1,CURVE_LINES,"[1, 2, 3, 1]");
   graphic.CurveAdd(NormalCombinationMembershipFunction2,0.0,10.0,0.1,CURVE_LINES,"[4, 2, 5, 1]");
   graphic.CurveAdd(NormalCombinationMembershipFunction3,0.0,10.0,0.1,CURVE_LINES,"[6, 2, 6, 1]");
//--- sets the X-axis properties
   graphic.XAxis().AutoScale(false);
   graphic.XAxis().Min(0.0);
   graphic.XAxis().Max(10.0);
   graphic.XAxis().DefaultStep(1.0);
//--- sets the Y-axis properties
   graphic.YAxis().AutoScale(false);
   graphic.YAxis().Min(0.0);
   graphic.YAxis().Max(1.1);
   graphic.YAxis().DefaultStep(0.2);
//--- plot
   graphic.CurvePlotAll();
   graphic.Update();
  }