Hilfe bei der Codierung - Seite 689

 

Hallo Mladen,

Ich möchte eine Ähnlichkeitsanalyse in Forex-Daten durchführen.

Ich meine, ich möchte herausfinden, welcher 1-Stunden-Balken (gleicher oder ähnlicher Wert im OHLC) am meisten mit dem LETZTEN 1-Stunden-Balken (OHLC) in der 20.000-Balken-Historie korreliert.

Ist der Pearson-Korrelationskoeffizient ausreichend, um die Ähnlichkeit des letzten Bar-Wertes in der 20.000-Bar-Historie herauszufinden?Ist es möglich, diese Analyse in metatradervith ein Skript (oder EA) zu tun?

 

liebe mlade:

ich mache meinen ersten MTF-Indikator

aber die Farbe ist schwarz

wie kann ich das beheben?

Vielen Dank

Dateien:
MTF xb4d.mq4  4 kb
xb4d.mq4  4 kb
 
bilbao:

liebe mlade:

ich mache meinen ersten MTF-Indikator

aber die Farbe ist schwarz

wie kann ich das beheben?

Vielen Dank

Setzen Sie die #Eigenschaft indicator_color1 auf die gewünschte Farbe (sie ist jetzt auf Schwarz gesetzt)
 
nevar:

Hallo Mladen,

Ich möchte eine Ähnlichkeitsanalyse in Forex-Daten durchführen.

Ich meine, ich möchte herausfinden, welcher 1-Stunden-Balken (gleicher oder ähnlicher Wert im OHLC) am meisten mit dem LETZTEN 1-Stunden-Balken (OHLC) in der 20.000-Balken-Historie korreliert.

Reicht der Pearson Korrelationskoeffizient aus, um die Ähnlichkeit des letzten Balkenwerts in der 20.000-Balken-Historie herauszufinden?ist es möglich, diese Analyse in metatradervith ein Skript (oder EA) zu tun?danke.

Mladen,

Irgendein Kommentar dazu?

 
nevar:

Mladen,

Haben Sie einen Kommentar dazu?

Sie können das mit Pearson machen und einfach den Balken mit dem maximalen Wert von Pearson finden - Sie können das für jeden Zeitrahmen und jede Anzahl von Balken machen, da Pearson nicht CPU-lastig ist. Am besten ist es jedoch, dies von einem Indikator aus zu tun (um einige Array-Operationen zu vermeiden).
 
mladen:
Setzen Sie die #property indicator_color1 auf die gewünschte Farbe (sie ist jetzt auf Schwarz gesetzt)

mr mladen:

ich mache es, habe aber nur eine Farbe

ich brauche zwei Farben für Bullen- und Bärenmarkt

 
bilbao:

mr mladen:

ich mache es, habe aber nur eine Farbe

ich brauche zwei Farben für den Bullen- und Bärenmarkt

Dann müssen Sie es anders programmieren (Sie müssen zwei Puffer verwenden, nicht nur einen für ein zweifarbiges Histogramm)
 
mladen:
Dann müssen Sie es anders codieren (Sie müssen zwei Puffer verwenden, nicht nur einen für ein zweifarbiges Histogramm)

Ist das richtig?

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

//| MTF_xb4d.mq4 |

//|------------------------------------------------------------------+


#Eigenschaft indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 Limonengrün

#eigenschaft indicator_width1 2

#property indicator_color2 BlassViolettRot

#Eigenschaft indicator_width2 2

//---- Eingabeparameter

/*************************************************************************

PERIOD_M1 1

PERIOD_M5 5

PERIOD_M15 15

PERIOD_M30 30

PERIOD_H1 60

PERIOD_H4 240

PERIOD_D1 1440

ZEITRAUM_W1 10080

ZEITRAUM_MN1 43200

Sie müssen den numerischen Wert des Zeitrahmens verwenden, den Sie verwenden möchten

Sie müssen den numerischen Wert des Zeitrahmens verwenden, den Sie verwenden möchten, wenn Sie den Wert TimeFrame' mit den Indikatoreingaben festlegen.

---------------------------------------*/

extern int TimeFrame=0;

extern int Zeitraum = 10;

extern int AppliedPrice=0;

extern bool SoundAlerts=false;

double ExtMapBuffer1[];

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

//| Benutzerdefinierte Indikator-Initialisierungsfunktion |

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

int init()

{

//---- Indikatorzeile

SetIndexStyle(0, DRAW_HISTOGRAM);

SetIndexStyle(1, DRAW_HISTOGRAM);

SetIndexBuffer(0, ExtMapBuffer1);

SetIndexBuffer(1, ExtMapBuffer1);

//---- Name für das Datenfenster und die Beschriftung des Unterfensters des Indikators

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Zeitraum_M1"; break;

case 5 : TimeFrameStr="Zeitraum_M5"; break;

case 15 : TimeFrameStr="Zeitraum_M15"; break;

case 30 : TimeFrameStr="Zeitraum_M30"; break;

case 60 : TimeFrameStr="Zeitraum_H1"; break;

case 240 : TimeFrameStr="Zeitraum_H4"; break;

case 1440 : TimeFrameStr="Zeitraum_D1"; break;

case 10080 : TimeFrameStr="Zeitraum_W1"; break;

case 43200 : TimeFrameStr="Zeitraum_MN1"; break;

default : TimeFrameStr="Aktueller Zeitrahmen";

}

IndicatorShortName(" MTF_xb4d ("+TimeFrameStr+" ) ");

return(0);

}

//----

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

//| |

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

int start()

{

datetime TimeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Plotten des definierten Zeitrahmens auf den aktuellen Zeitrahmen

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);

limit= Bars-1;

for(i=0,y=0;i<limit;i++)

{

if (Time[i]<TimeArray[y]) y++;

/***********************************************************

Fügen Sie unten Ihre Hauptindikatorschleife ein. Sie können auf einen bestehenden

Indikator mit seinem iName oder iCustom verweisen.

Regel 1: Fügen Sie oben externe Eingaben für alle erforderlichen Werte hinzu.

Regel 2: Verwenden Sie 'TimeFrame' für den Zeitrahmen des Indikators

Regel 3: Verwenden Sie 'y' für den Shift-Wert Ihres Indikators

**********************************************************/

ExtMapBuffer1[i]=iCustom(Symbol(),TimeFrame, "xb4d",period,0,y);//iRSI(Symbol(),TimeFrame,period,AppliedPrice,y);

}

if(GlobalVariableGet(Symbol()+"previndicator")<0 && ExtMapBuffer1[0]>=0)

if(SoundAlerts){Alert("Kaufalarm " + Symbol() + " [" + Zeitraum() + "] ");PlaySound("alert.wav");}

if(GlobalVariableGet(Symbol()+"previndicator")>=0 && ExtMapBuffer1[0]<0)

if(SoundAlerts){Alert("Verkaufsalarm " + Symbol() + " [" + Zeitraum() + "] ");PlaySound("alert.wav");}

GlobalVariableSet(Symbol()+"previndicator",ExtMapBuffer1[0]);

return(0);

}

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

 
bilbao:

Ist das richtig?

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

//| MTF_xb4d.mq4 |

//|------------------------------------------------------------------+


#Eigenschaft indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 Limonengrün

#eigenschaft indicator_width1 2

#property indicator_color2 BlassViolettRot

#Eigenschaft indicator_width2 2

//---- Eingabeparameter

/*************************************************************************

PERIOD_M1 1

PERIOD_M5 5

PERIOD_M15 15

PERIOD_M30 30

PERIOD_H1 60

PERIOD_H4 240

PERIOD_D1 1440

ZEITRAUM_W1 10080

ZEITRAUM_MN1 43200

Sie müssen den numerischen Wert des Zeitrahmens verwenden, den Sie verwenden möchten

Sie müssen den numerischen Wert des Zeitrahmens verwenden, den Sie verwenden möchten, wenn Sie den Wert TimeFrame' mit den Indikatoreingaben festlegen.

---------------------------------------*/

extern int TimeFrame=0;

extern int Zeitraum = 10;

extern int AppliedPrice=0;

extern bool SoundAlerts=false;

double ExtMapBuffer1[];

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

//| Benutzerdefinierte Indikator-Initialisierungsfunktion |

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

int init()

{

//---- Indikatorzeile

SetIndexStyle(0, DRAW_HISTOGRAM);

SetIndexStyle(1, DRAW_HISTOGRAM);

SetIndexBuffer(0, ExtMapBuffer1);

SetIndexBuffer(1, ExtMapBuffer1);

//---- Name für das Datenfenster und die Beschriftung des Unterfensters des Indikators

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Zeitraum_M1"; break;

case 5 : TimeFrameStr="Zeitraum_M5"; break;

case 15 : TimeFrameStr="Zeitraum_M15"; break;

case 30 : TimeFrameStr="Zeitraum_M30"; break;

case 60 : TimeFrameStr="Zeitraum_H1"; break;

case 240 : TimeFrameStr="Zeitraum_H4"; break;

case 1440 : TimeFrameStr="Zeitraum_D1"; break;

case 10080 : TimeFrameStr="Zeitraum_W1"; break;

case 43200 : TimeFrameStr="Zeitraum_MN1"; break;

default : TimeFrameStr="Aktueller Zeitrahmen";

}

IndicatorShortName(" MTF_xb4d ("+TimeFrameStr+" ) ");

return(0);

}

//----

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

//| |

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

int start()

{

datetime TimeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Plotten des definierten Zeitrahmens auf den aktuellen Zeitrahmen

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);

limit= Bars-1;

for(i=0,y=0;i<limit;i++)

{

if (Time[i]<TimeArray[y]) y++;

/***********************************************************

Fügen Sie unten Ihre Hauptindikatorschleife ein. Sie können auf einen bestehenden

Indikator mit seinem iName oder iCustom verweisen.

Regel 1: Fügen Sie oben externe Eingaben für alle erforderlichen Werte hinzu.

Regel 2: Verwenden Sie 'TimeFrame' für den Zeitrahmen des Indikators

Regel 3: Verwenden Sie 'y' für den Shift-Wert Ihres Indikators

**********************************************************/

ExtMapBuffer1[i]=iCustom(Symbol(),TimeFrame, "xb4d",period,0,y);//iRSI(Symbol(),TimeFrame,period,AppliedPrice,y);

}

if(GlobalVariableGet(Symbol()+"previndicator")<0 && ExtMapBuffer1[0]>=0)

if(SoundAlerts){Alert("Kaufalarm " + Symbol() + " [" + Zeitraum() + "] ");PlaySound("alert.wav");}

if(GlobalVariableGet(Symbol()+"previndicator")>=0 && ExtMapBuffer1[0]<0)

if(SoundAlerts){Alert("Verkaufsalarm " + Symbol() + " [" + Zeitraum() + "] ");PlaySound("alert.wav");}

GlobalVariableSet(Symbol()+"previndicator",ExtMapBuffer1[0]);

return(0);

}

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

Werden die Farben so angezeigt, wie Sie es wollten?
 
mladen:
Zeigt es die Farben so, wie Sie es wollten?

liebe mladen:

ich finde mtf davon unter https://www.forex-tsd.com/forum/debates-discussions/1131-multi-timeframe-indicators/page762#comment_1831838

vielen dank für deine hilfe an alle mitglieder

Gott segne euer Leben