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