Gleitender Durchschnitt - Seite 105

 
person77:
Fantastisch - funktioniert sehr gut mladen! Ich danke Ihnen vielmals.

Ein paar Wünsche, wenn es nicht zu viel Mühe macht:

1. Während 4 MA alle synchron sind, zieht sich der Preis zurück und berührt einen bestimmten MA

(in diesem Fall der zweitkürzeste MA, der rote 15 EMA), würde ich gerne einen Pfeil und einen Alarm erzeugen.

Ich würde dann zum kleineren 1M-Zeitrahmen wechseln, um dort nach einem Short-Signal zu suchen.

Ich füge horizontale und vertikale Linien ein, damit man leicht erkennen kann, wo man suchen muss (Punkt A) auf dem kleineren 1M Zeitrahmen Backtesting

2. Kann ich den 4-Ma-Synch-Indikator bitten, nur nach zwei oder drei Ma's zu suchen, die synchron sind, um den Histogrammbalken anzuzeigen? (Bitte sehen Sie sich den Anhang zu den 1-Meter-Bedingungen an, um zu verstehen, was ich hier zu tun versuche)

Person77

Ich fürchte, dass dieser Indikator nicht dafür ausgelegt ist, Kursberührungen anzuzeigen. Ich bin mir auch ziemlich sicher, dass es bereits gute Indikatoren gibt, die genau diese Art von Aufgabe erfüllen.

Was die 2 und 3 mas Version angeht: ersetzen Sie einfach das "" im Code, wo Sie einen Vergleich sehen, der wie "if (ma1<ma2 && ma2<3" ... und so weiter, mit "=" geht und setzen Sie dann 2 mas auf die gleichen Werte für 3 verschiedene mas oder 2 Paare von mas auf die gleichen Werte, um 2 mas durch den Indikator angezeigt zu bekommen

 

mladen

Danke für die Anregung.

Meine Kodierung ist so gut wie unbrauchbar!

Ich habe die > und < in = geändert, aber beim Kompilieren sind einige Fehler aufgetreten.

Was muss ich anders machen?

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

#property copyright "www.forex-tsd.com"

#property link "www.forex-tsd.com"

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

#property indicator_separate_window

#Eigenschaft indicator_buffers 2

#property indicator_color1 LimonenGrün

#Eigenschaft indicator_color2 DarkOrange

#property indicator_width1 2

#Eigenschaft indicator_width2 2

#Eigenschaft indicator_minimum 0

#Eigenschaft indicator_maximum 1

extern int Ma1Period = 5;

extern int Ma1Price = PRICE_CLOSE;

extern int Ma1Methode = MODE_EMA;

extern int Ma1Shift = 0;

extern int Ma2Period = 15;

extern int Ma2Preis = PRICE_CLOSE;

extern int Ma2Methode = MODE_EMA;

extern int Ma2Shift = 0;

extern int Ma3Period = 28;

extern int Ma3Preis = PRICE_CLOSE;

extern int Ma3Methode = MODE_EMA;

extern int Ma3Shift = 0;

extern int Ma4Period = 45;

extern int Ma4Preis = PRICE_CLOSE;

extern int Ma4Methode = MODE_EMA;

extern int Ma4Shift = 0;

//

//

//

//

//

double histu[];

double histd[];

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

//

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

//

//

//

//

//

int init()

{

SetIndexBuffer(0,histu); SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexBuffer(1,histd); SetIndexStyle(1,DRAW_HISTOGRAM);

return(0);

}

int deinit() { return(0); }

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

//

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

//

//

//

//

//

int start()

{

int counted_bars = IndicatorCounted();

wenn (gezählte_Balken < 0) return(-1);

if (gezählte_Balken > 0) gezählte_Balken--;

int limit = MathMin(Balken-gezählte_Balken,Balken-1);

//

//

//

//

//

for(int i = limit; i >=0; i--)

{

double ma1 = iMA(NULL,0,Ma1Zeitraum,Ma1Verschiebung,Ma1Methode,Ma1Preis,i);

double ma2 = iMA(NULL,0,Ma2Zeitraum,Ma2Verschiebung,Ma2Methode,Ma2Preis,i);

double ma3 = iMA(NULL,0,Ma3Zeitraum,Ma3Schicht,Ma3Methode,Ma3Preis,i);

double ma4 = iMA(NULL,0,Ma4Zeitraum,Ma4Schicht,Ma4Methode,Ma4Preis,i);

histu = EMPTY_VALUE;

histd = EMPTY_VALUE;

if(ma1=ma2 && ma2=ma3 && ma3>ma4) histu = 1;

if (ma1=ma2 && ma2=ma3 && ma3<ma4) histd = 1;

}

return(0);

}

 

Hallo

was ist mit Renko Chart 2min mit MA?

Danken Sie voraus

 
person77:
mladen

Danke für die Anregung.

Meine Kodierung ist so gut wie unbrauchbar!

Ich habe die > und < in = geändert, aber beim Kompilieren sind einige Fehler aufgetreten.

Was muss ich anders machen?

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

#property copyright "www.forex-tsd.com"

#property link "www.forex-tsd.com"

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

#property indicator_separate_window

#Eigenschaft indicator_buffers 2

#property indicator_color1 LimonenGrün

#Eigenschaft indicator_color2 DarkOrange

#property indicator_width1 2

#Eigenschaft indicator_width2 2

#Eigenschaft indicator_minimum 0

#Eigenschaft indicator_maximum 1

extern int Ma1Period = 5;

extern int Ma1Price = PRICE_CLOSE;

extern int Ma1Methode = MODE_EMA;

extern int Ma1Shift = 0;

extern int Ma2Period = 15;

extern int Ma2Preis = PRICE_CLOSE;

extern int Ma2Methode = MODE_EMA;

extern int Ma2Shift = 0;

extern int Ma3Period = 28;

extern int Ma3Preis = PRICE_CLOSE;

extern int Ma3Methode = MODE_EMA;

extern int Ma3Shift = 0;

extern int Ma4Period = 45;

extern int Ma4Preis = PRICE_CLOSE;

extern int Ma4Methode = MODE_EMA;

extern int Ma4Shift = 0;

//

//

//

//

//

double histu[];

double histd[];

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

//

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

//

//

//

//

//

int init()

{

SetIndexBuffer(0,histu); SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexBuffer(1,histd); SetIndexStyle(1,DRAW_HISTOGRAM);

return(0);

}

int deinit() { return(0); }

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

//

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

//

//

//

//

//

int start()

{

int counted_bars = IndicatorCounted();

wenn (gezählte_Balken < 0) return(-1);

if (gezählte_Balken > 0) gezählte_Balken--;

int limit = MathMin(Balken-gezählte_Balken,Balken-1);

//

//

//

//

//

for(int i = limit; i >=0; i--)

{

double ma1 = iMA(NULL,0,Ma1Zeitraum,Ma1Verschiebung,Ma1Methode,Ma1Preis,i);

double ma2 = iMA(NULL,0,Ma2Zeitraum,Ma2Verschiebung,Ma2Methode,Ma2Preis,i);

double ma3 = iMA(NULL,0,Ma3Zeitraum,Ma3Schicht,Ma3Methode,Ma3Preis,i);

double ma4 = iMA(NULL,0,Ma4Zeitraum,Ma4Schicht,Ma4Methode,Ma4Preis,i);

histu = EMPTY_VALUE;

histd = EMPTY_VALUE;

if(ma1=ma2 && ma2=ma3 && ma3>ma4) histu = 1;

if (ma1=ma2 && ma2=ma3 && ma3<ma4) histd = 1;

}

return(0);

}

Person77

Du hättest "<" durch "" mit ">=" ersetzen müssen (nicht nur "=")

_____________________

PS: vergessen zu sagen, dass 2 MAs immer synchron sind

 

Das funktioniert perfekt!

Danke mladen.

 

Adaptiver gleitender Durchschnitt nach Kaufman

Adaptiver gleitender Durchschnitt nach Kaufman (von Alexander Gettinger)

Der Kaufman Adaptive Moving Average (KAMA) wurde von Perry Kaufman entwickelt und erstmals in seinem Buch Smarter Trading (1995) vorgestellt.

Formulas:

KAMA = KAMA+sc*(Preis-KAMA), wobei

sc = (er*0,6015+0,0645)*(er*0,6015+0,0645),

er = Abs(Preis-Preis)/Summe1,

Summe1 = Summe(Abs(Preis-Preis)) von (i-Länge+1) bis i.

Dateien:
kama.mq4  2 kb
 

Zwei Versionen der linearen Regression (von demselben Autor)

 

Kaufman AMA vorgefiltert

Vorbereitung Kaufman AMA (adaptive gleitenden Durchschnitt) für einige andere Dinge, und hier ist eine Version, die eine sehr vereinfachte Art und Weise der Verwendung (ama Berechnung ist eine Funktion jetzt). Es kann auch der Preis pro Filterung verwendet werden (anstatt den Rohpreis zu verwenden, kann der gefilterte Preis verwendet werden (um die Filterung auszuschalten, setzen Sie den PriceFilter auf 1)

 

MA28 (von Alexander Gettinger)

Dateien:
ma28.mq4  4 kb
ma28.png  83 kb
 

wäre, bitte, möglich sein, den Indikator multitimeframe machen? danke

mladen:
Vorbereitung Kaufman AMA (adaptive gleitenden Durchschnitt) für einige andere Dinge, und hier ist eine Version, die eine sehr vereinfachte Art und Weise der Verwendung (ama Berechnung ist eine Funktion jetzt). Es kann Preis pro-Filterung zu (anstelle der Verwendung von rohen Preis, gefilterten Preis verwendet werden kann (um die Filterung von, setzen Sie die PriceFilter auf 1)