Hilfe bei der Codierung - Seite 198

 
cain82:
Vielen Dank für Ihre Antwort!

Aber wie kann ich einen Winkel Linien der MA auf dem allgemeinen Diagramm wie in diesem indi Hystogramm-Code zu bekommen?

//---- indicator settings

#property indicator_separate_window

#property indicator_buffers 3

#property indicator_color1 LimeGreen

#property indicator_color2 FireBrick

#property indicator_color3 Yellow

#property indicator_width1 2

#property indicator_width2 2

#property indicator_width3 2

//---- indicator parameters

extern int TimeFrame = 60;

extern int MAMode = 0;

extern int MAPeriod = 50;

extern int Price = 4;

extern double AngleTreshold = 0.25;

extern int StartMAShift = 2;

extern int EndMAShift = 0;

extern int MaxBars = 500;

string TF1;

//---- indicator buffers

double UpBuffer[];

double DownBuffer[];

double ZeroBuffer[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- 2 additional buffers are used for counting.

IndicatorBuffers(3);

//---- drawing settings

SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexStyle(2,DRAW_HISTOGRAM);

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2 );

//---- 3 indicator buffers mapping

if(!SetIndexBuffer(0,UpBuffer) &&

!SetIndexBuffer(1,DownBuffer) &&

!SetIndexBuffer(2,ZeroBuffer))

Print("cannot set indicator buffers!");

SetIndexLabel(0,"");

SetIndexLabel(1,"");

SetIndexLabel(2,"");

switch(TimeFrame)

{

case 1: TF1="M1"; break;

case 5: TF1="M5"; break;

case 15: TF1="M15"; break;

case 30: TF1="M30"; break;

case 60: TF1="H1"; break;

case 240: TF1="H4"; break;

case 1440: TF1="D1"; break;

case 10080: TF1="W1"; break;

case 43200: TF1="MN1"; break;

default: {TimeFrame = Period(); init(); return(0);}

}

IndicatorShortName("MAAngle MTF * "+TF1+" *");

//---- initialization done

return(0);

}

//+------------------------------------------------------------------+

//| The angle for EMA |

//+------------------------------------------------------------------+

int start()

{

double fEndMA, fStartMA;

double fAngle, mFactor, dFactor;

int nLimit, i;

int nCountedBars;

double angle;

int ShiftDif;

string Sym;

if (MAMode >= 4) MAMode = 0;

if(EndMAShift >= StartMAShift)

{

Print("Error: EndMAShift >= StartMAShift");

StartMAShift = 6;

EndMAShift = 0;

}

nCountedBars = IndicatorCounted();

dFactor = 2*3.14159/180.0;

mFactor = 10000.0;

Sym = StringSubstr(Symbol(),3,3);

if (Sym == "JPY") mFactor = 100.0;

ShiftDif = StartMAShift-EndMAShift;

mFactor /= ShiftDif;

//---- check for possible errors

if(nCountedBars<0) return(-1);

//---- last counted bar will be recounted

if(nCountedBars>0) nCountedBars--;

nLimit=Bars-nCountedBars;

nLimit=MathMax(nLimit,TimeFrame/Period());

nLimit=MathMin(nLimit,MaxBars );

//---- main loop

for(i=0; i<nLimit; i++)

{

int y = iBarShift(NULL,TimeFrame,Time);

if (TimeFrame<Period()) TimeFrame=Period();

fEndMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+EndMAShift);

fStartMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+StartMAShift);

// 10000.0 : Multiply by 10000 so that the fAngle is not too small

// for the indicator Window.

fAngle = mFactor * (fEndMA - fStartMA)/2.0;

//fAngle = MathArctan(fAngle)/dFactor;

DownBuffer = 0.0;

UpBuffer = 0.0;

ZeroBuffer = 0.0;

if(fAngle > AngleTreshold)

UpBuffer = fAngle;

else if (fAngle < -AngleTreshold)

DownBuffer = fAngle;

else ZeroBuffer = fAngle;

}

return(0);

}

//+------------------------------------------------------------------+

Dieser Indikator berechnet etwas ähnliches wie die Steigung (nicht der Winkel, da der Winkel nie genau auf dem Zeitreihenchart berechnet werden kann, noch eine exakte Steigung, da der Indikator versucht, eine andere Mathematik als die für eine Steigung benötigte zu verwenden) für jeden einzelnen Balken des MA. Wenn Sie es invertieren wollen (ich vermute nur, was genau Sie wollen), werden Sie diesen Ausgangs-MA als Ergebnis erhalten (also werden Sie einen gleitenden Durchschnitt auf dem Chart erhalten).

Wenn Sie die Steigung des letzten Balkens verlängern möchten, dann können Sie etwas Ähnliches wie diesen Indikator https://www.mql5.com/en/forum/173235/page36 verwenden, der den gleitenden Durchschnitt anhand der Steigung des letzten Balkens verlängert

 
mladen:
Dieser Indikator berechnet etwas ähnliches wie die Steigung (nicht den Winkel, da der Winkel im Zeitserien-Chart nie genau berechnet werden kann, und auch keine exakte Steigung, da der Indikator versucht, eine andere Mathematik als die für die Steigung benötigte zu verwenden) für jeden einzelnen Balken des ma. Wenn Sie ihn invertieren möchten (ich vermute nur, was genau Sie wollen), erhalten Sie als Ergebnis den Start-Ma (also einen gleitenden Durchschnitt im Chart). Wenn Sie die Steigung des letzten Balkens verlängern möchten, können Sie etwas Ähnliches wie diesen Indikator https://www.mql5.com/en/forum/173235/page36 verwenden, der den gleitenden Durchschnitt anhand der Steigung des letzten Balkens verlängert

Danke, mladen! Es ist sehr ähnlich zu dem, was ich will.

Haben Sie dasselbe mit dem MTF-Modus?

 

mladen..

Ich brauche Ihre Hilfe, um diesen Indikator zu ändern https://www.mql5.com/en/forum/general

 

Mladen,

Berechnen Sie BBands mit Daten aus einem gleitenden Durchschnitt.

Als Beispiel für die Anwendung auf Nicht-Standard-MT4-Strümpfe.

Als Beispiel für eine der Arten von gleitenden Durchschnitt von AllAverages.

Ist ein BBands, die realen Daten von durchschnittlichen verwendet.

Keine BBands SMA, mit einer anderen Art gleitender Durchschnitt.

 
Antonsan:
Mladen,

Berechnung von BBands anhand von Daten aus einem gleitenden Durchschnitt.

Als Beispiel für die Anwendung auf Nicht-Standard-MT4-Strümpfe.

Als Beispiel für einen der Typen des gleitenden Durchschnitts von AllAverages.

Ist ein BBands, die realen Daten von Durchschnitt verwendet.

Kein BBands SMA, mit einem anderen Typ gleitender Durchschnitt.

Antonsan

Sie können Bollinger Bands auf jeden Wert zu berechnen, wenn Sie iStdDevOnArry() Funktion verwenden.

Füllen Sie ein Array mit den Werten, die Sie verwenden möchten (z.B. die Werte eines beliebigen Durchschnitts), berechnen Sie dessen Abweichung mit iStdDevOnArray() und berechnen Sie eine Mittellinie für die Bollinger-Bänder mit iMaOnArray() (unter Verwendung desselben Arrays, das iStrDevOnArry() verwendet) und dann sind die Bänder einfach: Mittellinie + Abweichung*Multiplikator für das obere, und Mittellinie - Abweichung*Multiplikator für das untere Band

 

Antonsan

Hier ist ein sehr einfacher Beispielcode, den Sie als Vorlage verwenden können, um Bollinger-Bänder mit beliebigen Werten zu erstellen. Alles, was Sie tun müssen, ist, den Aufruf von iRsi() in dieser Zeile zu ersetzen:

for(i=limit; i >= 0; i--) value = iRSI(NULL,0,RsiLength,RsiPrice,i);

mit der gewünschten Funktion oder einem iCustom()-Aufruf für einen beliebigen benutzerdefinierten Indikator, der die Bollinger-Bänder für diesen Wert berechnet

Dateien:
 
mladen:
person77 Eine weitere Option hinzugefügt: AllowCloseEqualOpen. damit kann man es jetzt mit dieser Option steuern

Großartige Arbeit, mlanden! Nochmals vielen Dank.

 

Guter Indikator für EA

Hallo,

Dieser Indikator hat 5 Linien.(Pivot+R1+R2+S1+S2)

Ich möchte ein EA machen, das auf diesen Linien basiert. Leider haben diese Linie nicht buffer.I brauchen jemanden zuweisen einen Puffer zu jeder Zeile.

Bitte um Hilfe

Mit besten Grüßen;

Bamik

Dateien:
 
bamik:
Hallo,

Dieser Indikator hat 5 Linien.(Pivot+R1+R2+S1+S2)

Ich möchte ein ea machen, dass diese Linien basiert. Leider haben diese Linie nicht buffer.I brauchen jemanden zuweisen einen Puffer zu jeder Zeile.

Bitte um Hilfe

Mit freundlichen Grüßen;

Bamik

barnik

Haben Sie diesen Thread gelesen: https: //www.mql5.com/en/forum/172894

Es gibt eine Menge Pivot-Indikatoren, die Puffer in diesem Thread verwenden.

 
mladen:
barnik

Haben Sie diesen Thread gelesen: https: //www.mql5.com/en/forum/172894

Es gibt eine Menge Pivot-Indikatoren, die Puffer verwenden, in diesem Thread

Danke Hirsch mladen für deine Hilfe,

Ich habe die meisten dieser Indikatoren heruntergeladen und getestet, nur der " AutoPivotIndicator_ver5" Indikator war genau wie "TARGETS-LINES".

Leider verwendet dieser Indikator auch nicht den Puffer und verwendet das Objekt.

Würden Sie bitte meine einfache Indikator ändern.(einen Puffer zu jeder Zeile zuweisen).es ist ein kleiner Indikator.

Danke

Grund der Beschwerde: