Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 16.07.22
MA-EA MA-EA ist offline
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard Kurs-Verhältnisse glätten mit Prozent

Hallo.


Hoffe mal, der Titel ist einigermaßen gut gewählt.


Bin ein bisschen am Experimentieren.


Ein Ergebnis davon ist der PRdMA_OPZ_SEP_v1.mq4 Indi ( Anhang ). Kurz gesagt berechnet er das Verhältnis von PR und MA und multipliziert das dann mit dem jeweils anderen Wert. Er zeigt Trend-Beginn und -Ende an, aber anders als übliche MA-Cross-Systeme meistens mit nur 1 oder 2 Kerzen Verzögerung.


Da er in Seitwärtsphasen aber buchstäblich wie im Zick-Zack ausschlägt, würde ich gerne die Anzeigen sozusagen etwas abdämpfen. Ein Weg wär vielleicht, man rechnet die Verhältnisse in eine Art 100%-Skala um. Dann sollen die Verhältnisse aber z.B. mit 95% oder 65% oder so multipliziert werden. Oder mit 133% oder 166% oder was auch immer. Im MT4 gibts soweit ich weiß eine Art Oscillator-of-Moving-Average oder sowas in der Art. Aber ich glaube, der reagiert auch erst spät wie übliche MA-Systeme.


Bekanntlich bin ich Alles andere als nen Mathe-Experte. Also wie könnte man sowas berechnen / proggen ?


Hier der bisherige Versuch ( Anhang ). Scheint zwar im Grunde keine Fehler zu haben, aber die Werte im MT4 sind viel zu hoch oder zu klein.
Code:
//=============================================================================================================
// D E K L A R A T I O N   P R I C E
//=============================================================================================================

Pr_Hi=iHigh (NULL,NULL,i);
Pr_Op=iOpen (NULL,NULL,i);
Pr_Cl=iClose(NULL,NULL,i);
Pr_Lo=iLow  (NULL,NULL,i);

Pr_ME = ( Pr_Hi + Pr_Lo ) / 2.0;

Pr_TY = ( Pr_Hi + Pr_Cl + Pr_Lo ) / 3.0;

Pr_WE = ( Pr_Hi + Pr_Cl + Pr_Cl + Pr_Lo ) / 4.0;

// Zuweisung Price
if(Price==PRICE_HIGH    )PR=Pr_Hi;
if(Price==PRICE_CLOSE   )PR=Pr_Cl;
if(Price==PRICE_OPEN    )PR=Pr_Op;
if(Price==PRICE_LOW     )PR=Pr_Lo;
if(Price==PRICE_MEDIAN  )PR=Pr_ME;
if(Price==PRICE_TYPICAL )PR=Pr_TY;
if(Price==PRICE_WEIGHTED)PR=Pr_WE;

//=============================================================================================================
// D E K L A R A T I O N   M A
//=============================================================================================================

MA=iMA(Symbol(),Period(),MA_Period,MA_ChartShift,MA_Method,MA_Price,i);

//=============================================================================================================
// H P   D I V
//=============================================================================================================

HPdPR = ODIV(100.0// Soll dividiert werden
             ,
             PR// Wert, durch den dividiert werden soll
            );

HPdMA = ODIV(100.0// Soll dividiert werden
             ,
             MA// Wert, durch den dividiert werden soll
            );

//=============================================================================================================
// ?
//=============================================================================================================


HPPRdHPMA = ODIV(HPdPR// Soll dividiert werden
                 ,
                 HPdMA// Wert, durch den dividiert werden soll
                );


HPMAdHPPR = ODIV(HPdMA// Soll dividiert werden
                 ,
                 HPdPR// Wert, durch den dividiert werden soll
                );
                 

//=============================================================================================================
// ?
//=============================================================================================================




//=============================================================================================================
// B U F F E R
//=============================================================================================================


BUF_HPdPdM_fa[i] = OMUL(HPPRdHPMA// Soll multipliziert werden
                        ,
                        Perc_Fast// Wert, der kleiner als 1.0 ist
                       );


//-------------------------------------------------------------------------------------------------------------


BUF_HPdPdM_sl[i] = OMUL(HPMAdHPPR// Soll multipliziert werden
                        ,
                        Perc_Slow//
                       );
Angehängte Dateien
Dateityp: mq4 PRdMA_OPZ_SEP_v1.mq4 (17,9 KB, 1x aufgerufen)
Dateityp: mq4 HPdPdM_SEP_v1.mq4 (19,5 KB, 1x aufgerufen)