Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Custom-Indikator lässt MT4 einfrieren (http://www.expert-advisor.com/forum/showthread.php?t=7229)

MA-EA 14.08.22 18:39

Custom-Indikator lässt MT4 einfrieren
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo.


Ein Eigener Indi lässt immer wieder den MT4 einfrieren. Dass er 6 Buffer hat, sollte ja eigentlich egal sein. Ist Im Anhang. Hab schon Vieles geändert, immer das gleiche Problem.


Der eigene Indi im Anhang mit 4 Buffern ist im Grunde genauso, funktioniert aber ohne Probleme.

Code:

//=============================================================================
#property version    "OdHML_6B_SEP_v2.mq4"
#property description "erst mal keine"
#property link        "daniel-rudloff@web.de"
//=============================================================================

#property indicator_separate_window// Unterfenster

#property indicator_buffers 6

#property indicator_color1 clrGreen// Farbe der Linie
#property indicator_width1 1

#property indicator_color2 clrOrange// Farbe der Linie
#property indicator_width2 1

#property indicator_color3 clrPaleGreen// Farbe der Linie
#property indicator_width3 1

#property indicator_color4 clrPaleGreen// Farbe der Linie
#property indicator_width4 1

#property indicator_color5 clrRed// Farbe der Linie
#property indicator_width5 1

#property indicator_color6 clrGreen// Farbe der Linie
#property indicator_width6 1

//=============================================================================

//=============================================================================================================
// G L O B A L E  E I N S T E L L U N G E N
//=============================================================================================================


extern int              MA_Hi_Period    = 6;// Zum Testen 6
extern int              MA_Hi_ChartShift = 0;
input ENUM_MA_METHOD    MA_Hi_Method    = MODE_SMA;


input ENUM_APPLIED_PRICE Price_Mi=PRICE_CLOSE;

extern int              MA_Mi_Period    = 6;// Zum Testen 6
extern int              MA_Mi_ChartShift = 0;
input ENUM_MA_METHOD    MA_Mi_Method    = MODE_SMA;
input ENUM_APPLIED_PRICE MA_Mi_Price      = PRICE_CLOSE;


extern int              MA_Lo_Period    = 6;// Zum Testen 6
extern int              MA_Lo_ChartShift = 0;
input ENUM_MA_METHOD    MA_Lo_Method    = MODE_SMA;


//=============================================================================================================
// G L O B A L E  D E K L A
//=============================================================================================================
//=============================================================================================================
string IndisName = "OdHML_6B_SEP";  // Indikatorname
//-------------------------------------------------------------------------------------------------------------

double

Pr_Hi,Pr_Op,Pr_Cl,Pr_Lo,Pr_ME,Pr_TY,Pr_WE,


hiPR,miPR,loPR,
hiMA,miMA,loMA,


OD_hiPR,OD_hiMA,
OD_miPR,OD_miMA,
OD_loPR,OD_loMA,


BUF_A[]// Buffer 0
,
BUF_B[]// Buffer 1
,
BUF_C[]// Buffer 2
,
BUF_D[]// Buffer 3
,
BUF_E[]// Buffer 4
,
BUF_F[]// Buffer 5


;

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

int

i

;

//=============================================================================================================
// O P Z  D I V
//=============================================================================================================

double ODIV(

  double ODIV_ToDiv// Soll dividiert werden
  ,
  double ODIV_Div// Wert, der kleiner als 1.0 ist
 
){
 
  double
  ODIV_DIV_mt
  ,
  ODIV_DivEd
  ,
  ODIV_DivEd_t;
 
  int ODIV_mt;
 

  if( ODIV_Div <= -1.0 || ODIV_Div >= 1.0 )ODIV_DivEd = ODIV_ToDiv / ODIV_Div;


  if( ODIV_Div > -1.0 && ODIV_Div < 1.0 ){
 
    ODIV_mt=0;
    while( ODIV_Div > -1.0 && ODIV_Div < 1.0 ){
 
      ODIV_DIV_mt = ODIV_Div * 10.0;
   
      ODIV_Div = ODIV_DIV_mt;
   
      ODIV_mt++;}
 
 
    ODIV_DivEd = ODIV_ToDiv / ODIV_DIV_mt;


    for( ODIV_mt ; ODIV_mt > 1 ; ODIV_mt-- ){
 
      ODIV_DivEd_t = ODIV_DivEd * 10.0;
   
      ODIV_DivEd = ODIV_DivEd_t;}
 
  }

  return ODIV_DivEd;

}

//=============================================================================================================
// O P Z  M U L
//=============================================================================================================

double OMUL(

  double OMUL_ToMul// Soll multipliziert werden
  , 
  double OMUL_Mul// Wert, der kleiner als 1.0 ist

){
 
  double
  OMUL_MUL_mt
  ,
  OMUL_MulEd
  ,
  OMUL_MulEd_t;
 
  int OMUL_mt;


  if( OMUL_ToMul <= -1.0 || OMUL_ToMul >= 1.0 || OMUL_Mul <= -1.0 || OMUL_Mul >= 1.0 )OMUL_MulEd = OMUL_ToMul * OMUL_Mul;
 
 
  if( OMUL_ToMul > -1.0 && OMUL_ToMul < 1.0 && OMUL_Mul > -1.0 && OMUL_Mul < 1.0 ){

    OMUL_mt=0;
    while( OMUL_Mul > -1.0 && OMUL_Mul < 1.0 ){
 
      OMUL_MUL_mt = OMUL_Mul * 10.0;
   
      OMUL_Mul = OMUL_MUL_mt;
   
      OMUL_mt++;}
 
 
    OMUL_MulEd = OMUL_ToMul * OMUL_MUL_mt;


    for( OMUL_mt ; OMUL_mt > 1 ; OMUL_mt-- ){
 
      OMUL_MulEd_t = OMUL_MulEd / 10.0;
   
      OMUL_MulEd = OMUL_MulEd_t;}
 
  }

  return OMUL_MulEd;

}

//=============================================================================================================
// I N I T
//=============================================================================================================
void OnInit(){
  // === Anzeige des Indikatornamens und der Werte
    IndicatorShortName(IndisName);
    IndicatorBuffers(6);// Gesamtanzahl aller Buffer
//-------------------------------------------------------------------------------------------------------------


// Buffer 0
SetIndexBuffer(0,BUF_A);
SetIndexLabel(0,
              "BUF_A"
            );// Beschreibung im Datenfenster
SetIndexDrawBegin(0,0);


// Buffer 1
SetIndexBuffer(1,BUF_B);
SetIndexLabel(1,
              "BUF_B"
            );// Beschreibung im Datenfenster
SetIndexDrawBegin(1,0);


// Buffer 2
SetIndexBuffer(2,BUF_C);
SetIndexLabel(2,
              "BUF_C"
            );// Beschreibung im Datenfenster
SetIndexDrawBegin(2,0);


// Buffer 3
SetIndexBuffer(3,BUF_D);
SetIndexLabel(3,
              "BUF_D"
            );// Beschreibung im Datenfenster
SetIndexDrawBegin(3,0);

// Buffer 4
SetIndexBuffer(4,BUF_E);
SetIndexLabel(4,
              "BUF_E"
            );// Beschreibung im Datenfenster
SetIndexDrawBegin(4,0);


// Buffer 5
SetIndexBuffer(5,BUF_F);
SetIndexLabel(5,
              "BUF_F"
            );// Beschreibung im Datenfenster
SetIndexDrawBegin(5,0);

//-------------------------------------------------------------------------------------------------------------
}// OnInit
//=============================================================================================================
// D E I N I T
//=============================================================================================================
void OnDeinit(const int reason){}// nothing to do here
//=============================================================================================================
// O N C A L C U L A T E
//=============================================================================================================
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[]){
//-------------------------------------------------------------------------------------------------------------

for( i=0 ; rates_total-MA_Mi_Period-3 > i ; i++ ){// ?

//=============================================================================================================
// 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 miPR
if(Price_Mi==PRICE_HIGH    )miPR=Pr_Hi;
if(Price_Mi==PRICE_CLOSE  )miPR=Pr_Cl;
if(Price_Mi==PRICE_OPEN    )miPR=Pr_Op;
if(Price_Mi==PRICE_LOW    )miPR=Pr_Lo;
if(Price_Mi==PRICE_MEDIAN  )miPR=Pr_ME;
if(Price_Mi==PRICE_TYPICAL )miPR=Pr_TY;
if(Price_Mi==PRICE_WEIGHTED)miPR=Pr_WE;

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

hiMA=iMA(Symbol(),Period(),MA_Hi_Period,MA_Hi_ChartShift,MA_Hi_Method,PRICE_HIGH,i);
miMA=iMA(Symbol(),Period(),MA_Mi_Period,MA_Mi_ChartShift,MA_Mi_Method,MA_Mi_Price,i);
loMA=iMA(Symbol(),Period(),MA_Lo_Period,MA_Lo_ChartShift,MA_Lo_Method,PRICE_LOW,i);

//=============================================================================================================
// O D I V
//=============================================================================================================


OD_hiPR = ODIV(1.0// Soll dividiert werden
              ,
              hiPR// Wert, der evtl. kleiner als 1.0 ist
              );


OD_hiMA = ODIV(1.0// Soll dividiert werden
              ,
              hiMA// Wert, der evtl. kleiner als 1.0 ist
              );


OD_miPR = ODIV(1.0// Soll dividiert werden
              ,
              miPR// Wert, der evtl. kleiner als 1.0 ist
              );


OD_miMA = ODIV(1.0// Soll dividiert werden
              ,
              miMA// Wert, der evtl. kleiner als 1.0 ist
              );


OD_loPR = ODIV(1.0// Soll dividiert werden
              ,
              loPR// Wert, der evtl. kleiner als 1.0 ist
              );


OD_loMA = ODIV(1.0// Soll dividiert werden
              ,
              loMA// Wert, der evtl. kleiner als 1.0 ist
              );


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


BUF_A[i] = OMUL(hiMA// Soll multipliziert werden
                ,
                OD_loPR// Wert, der evtl. kleiner als 1.0 ist
              );
                   

BUF_B[i] = OMUL(hiPR// Soll multipliziert werden
                ,
                OD_loMA// Wert, der evtl. kleiner als 1.0 ist
              );


BUF_C[i] = OMUL(OD_miPR// Soll multipliziert werden
                ,
                miMA// Wert, der evtl. kleiner als 1.0 ist
              );


BUF_D[i] = OMUL(OD_miMA// Soll multipliziert werden
                ,
                miPR// Wert, der evtl. kleiner als 1.0 ist
              );


BUF_E[i] = OMUL(loPR// Soll multipliziert werden
                ,
                OD_hiMA// Wert, der evtl. kleiner als 1.0 ist
              );


BUF_F[i] = OMUL(loMA// Soll multipliziert werden
                ,
                OD_hiPR// Wert, der evtl. kleiner als 1.0 ist
              );
                   

//=============================================================================================================
// E N D E  F U N K T I O N E N
//=============================================================================================================
}// for (i=ratestotal)...
//=============================================================================================================
// E N D E  I N D I
//=============================================================================================================
return(rates_total);}// OnCalculate


MA-EA 15.08.22 14:31

Liste der Anhänge anzeigen (Anzahl: 2)
Vermute, dass es an der rates_total for-loop liegt.
Code:

for( i=0 ; rates_total-MA_Hi_Period-MA_Mi_Period-MA_Lo_Period-2 > i ; i++ ){// ?
Aber bei dem Indi mit 4 Buffern ist die eigentlich genau so, und bei dem friert nicht der ganze MT4 ein:
Code:

for( i=0 ; rates_total-MA_Period-3 > i ; i++ ){// ?
Was ist hier so falsch, dass der ganze MT4 jedes Mal einfriert? :confused:

Code:

//=============================================================================
#property version    "OdHML_6B_SEP_v2.mq4"
#property description "erst mal keine"
#property link        "daniel-rudloff@web.de"
//=============================================================================

#property indicator_separate_window// Unterfenster

#property indicator_buffers 6

#property indicator_color1 clrGreen// Farbe der Linie
#property indicator_width1 1

#property indicator_color2 clrOrange// Farbe der Linie
#property indicator_width2 1

#property indicator_color3 clrPaleGreen// Farbe der Linie
#property indicator_width3 1

#property indicator_color4 clrPaleGreen// Farbe der Linie
#property indicator_width4 1

#property indicator_color5 clrRed// Farbe der Linie
#property indicator_width5 1

#property indicator_color6 clrGreen// Farbe der Linie
#property indicator_width6 1

//=============================================================================

//=============================================================================================================
// G L O B A L E  E I N S T E L L U N G E N
//=============================================================================================================


extern int              MA_Hi_Period    = 6;// Zum Testen 6
extern int              MA_Hi_ChartShift = 0;
input ENUM_MA_METHOD    MA_Hi_Method    = MODE_SMA;


input ENUM_APPLIED_PRICE Price_Mi=PRICE_CLOSE;

extern int              MA_Mi_Period    = 6;// Zum Testen 6
extern int              MA_Mi_ChartShift = 0;
input ENUM_MA_METHOD    MA_Mi_Method    = MODE_SMA;
input ENUM_APPLIED_PRICE MA_Mi_Price      = PRICE_CLOSE;


extern int              MA_Lo_Period    = 6;// Zum Testen 6
extern int              MA_Lo_ChartShift = 0;
input ENUM_MA_METHOD    MA_Lo_Method    = MODE_SMA;


//=============================================================================================================
// G L O B A L E  D E K L A
//=============================================================================================================
//=============================================================================================================
string IndisName = "OdHML_6B_SEP";  // Indikatorname
//-------------------------------------------------------------------------------------------------------------

double

Pr_Hi,Pr_Op,Pr_Cl,Pr_Lo,Pr_ME,Pr_TY,Pr_WE,


hiPR,miPR,loPR,
hiMA,miMA,loMA,


OD_hiPR,OD_hiMA,
OD_miPR,OD_miMA,
OD_loPR,OD_loMA,


BUF_A[]// Buffer 0
,
BUF_B[]// Buffer 1
,
BUF_C[]// Buffer 2
,
BUF_D[]// Buffer 3
,
BUF_E[]// Buffer 4
,
BUF_F[]// Buffer 5


;

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

int

i

;

//=============================================================================================================
// O P Z  D I V
//=============================================================================================================

double ODIV(

  double ODIV_ToDiv// Soll dividiert werden
  ,
  double ODIV_Div// Wert, der kleiner als 1.0 ist
 
){
 
  double
  ODIV_DIV_mt
  ,
  ODIV_DivEd
  ,
  ODIV_DivEd_t;
 
  int ODIV_mt;
 

  if( ODIV_Div <= -1.0 || ODIV_Div >= 1.0 )ODIV_DivEd = ODIV_ToDiv / ODIV_Div;


  if( ODIV_Div > -1.0 && ODIV_Div < 1.0 ){
 
    ODIV_mt=0;
    while( ODIV_Div > -1.0 && ODIV_Div < 1.0 ){
 
      ODIV_DIV_mt = ODIV_Div * 10.0;
   
      ODIV_Div = ODIV_DIV_mt;
   
      ODIV_mt++;}
 
 
    ODIV_DivEd = ODIV_ToDiv / ODIV_DIV_mt;


    for( ODIV_mt ; ODIV_mt > 1 ; ODIV_mt-- ){
 
      ODIV_DivEd_t = ODIV_DivEd * 10.0;
   
      ODIV_DivEd = ODIV_DivEd_t;}
 
  }

  return ODIV_DivEd;

}

//=============================================================================================================
// O P Z  M U L
//=============================================================================================================

double OMUL(

  double OMUL_ToMul// Soll multipliziert werden
  , 
  double OMUL_Mul// Wert, der kleiner als 1.0 ist

){
 
  double
  OMUL_MUL_mt
  ,
  OMUL_MulEd
  ,
  OMUL_MulEd_t;
 
  int OMUL_mt;


  if( OMUL_ToMul <= -1.0 || OMUL_ToMul >= 1.0 || OMUL_Mul <= -1.0 || OMUL_Mul >= 1.0 )OMUL_MulEd = OMUL_ToMul * OMUL_Mul;
 
 
  if( OMUL_ToMul > -1.0 && OMUL_ToMul < 1.0 && OMUL_Mul > -1.0 && OMUL_Mul < 1.0 ){

    OMUL_mt=0;
    while( OMUL_Mul > -1.0 && OMUL_Mul < 1.0 ){
 
      OMUL_MUL_mt = OMUL_Mul * 10.0;
   
      OMUL_Mul = OMUL_MUL_mt;
   
      OMUL_mt++;}
 
 
    OMUL_MulEd = OMUL_ToMul * OMUL_MUL_mt;


    for( OMUL_mt ; OMUL_mt > 1 ; OMUL_mt-- ){
 
      OMUL_MulEd_t = OMUL_MulEd / 10.0;
   
      OMUL_MulEd = OMUL_MulEd_t;}
 
  }

  return OMUL_MulEd;

}

//=============================================================================================================
// I N I T
//=============================================================================================================
void OnInit(){
  // === Anzeige des Indikatornamens und der Werte
    IndicatorShortName(IndisName);
    IndicatorBuffers(6);// Gesamtanzahl aller Buffer
//-------------------------------------------------------------------------------------------------------------

// Buffer 0
SetIndexBuffer(0,BUF_A);
SetIndexLabel(0,
              "BUF_A"
            );// Beschreibung im Datenfenster
SetIndexDrawBegin(0,0);

// Buffer 1
SetIndexBuffer(1,BUF_B);
SetIndexLabel(1,
              "BUF_B"
            );// Beschreibung im Datenfenster
SetIndexDrawBegin(1,0);

// Buffer 2
SetIndexBuffer(2,BUF_C);
SetIndexLabel(2,
              "BUF_C"
            );// Beschreibung im Datenfenster
SetIndexDrawBegin(2,0);

// Buffer 3
SetIndexBuffer(3,BUF_D);
SetIndexLabel(3,
              "BUF_D"
            );// Beschreibung im Datenfenster
SetIndexDrawBegin(3,0);

// Buffer 4
SetIndexBuffer(4,BUF_E);
SetIndexLabel(4,
              "BUF_E"
            );// Beschreibung im Datenfenster
SetIndexDrawBegin(4,0);

// Buffer 5
SetIndexBuffer(5,BUF_F);
SetIndexLabel(5,
              "BUF_F"
            );// Beschreibung im Datenfenster
SetIndexDrawBegin(5,0);

//-------------------------------------------------------------------------------------------------------------
}// OnInit
//=============================================================================================================
// D E I N I T
//=============================================================================================================
void OnDeinit(const int reason){}// nothing to do here
//=============================================================================================================
// O N C A L C U L A T E
//=============================================================================================================
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[]){
//-------------------------------------------------------------------------------------------------------------

for( i=0 ; rates_total-MA_Hi_Period-MA_Mi_Period-MA_Lo_Period-2 > i ; i++ ){// ?

//=============================================================================================================
// 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 miPR
if(Price_Mi==PRICE_HIGH    )miPR=Pr_Hi;
if(Price_Mi==PRICE_CLOSE  )miPR=Pr_Cl;
if(Price_Mi==PRICE_OPEN    )miPR=Pr_Op;
if(Price_Mi==PRICE_LOW    )miPR=Pr_Lo;
if(Price_Mi==PRICE_MEDIAN  )miPR=Pr_ME;
if(Price_Mi==PRICE_TYPICAL )miPR=Pr_TY;
if(Price_Mi==PRICE_WEIGHTED)miPR=Pr_WE;

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

hiMA=iMA(NULL,NULL,MA_Hi_Period,MA_Hi_ChartShift,MA_Hi_Method,PRICE_HIGH,i);
miMA=iMA(NULL,NULL,MA_Mi_Period,MA_Mi_ChartShift,MA_Mi_Method,MA_Mi_Price,i);
loMA=iMA(NULL,NULL,MA_Lo_Period,MA_Lo_ChartShift,MA_Lo_Method,PRICE_LOW,i);

//=============================================================================================================
// O D I V
//=============================================================================================================


OD_hiPR = ODIV(1.0// Soll dividiert werden
              ,
              hiPR// Wert, der evtl. kleiner als 1.0 ist
              );


OD_hiMA = ODIV(1.0// Soll dividiert werden
              ,
              hiMA// Wert, der evtl. kleiner als 1.0 ist
              );


OD_miPR = ODIV(1.0// Soll dividiert werden
              ,
              miPR// Wert, der evtl. kleiner als 1.0 ist
              );


OD_miMA = ODIV(1.0// Soll dividiert werden
              ,
              miMA// Wert, der evtl. kleiner als 1.0 ist
              );


OD_loPR = ODIV(1.0// Soll dividiert werden
              ,
              loPR// Wert, der evtl. kleiner als 1.0 ist
              );


OD_loMA = ODIV(1.0// Soll dividiert werden
              ,
              loMA// Wert, der evtl. kleiner als 1.0 ist
              );


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


BUF_A[i] = OMUL(hiMA// Soll multipliziert werden
                ,
                OD_loPR// Wert, der evtl. kleiner als 1.0 ist
              );
                   

BUF_B[i] = OMUL(hiPR// Soll multipliziert werden
                ,
                OD_loMA// Wert, der evtl. kleiner als 1.0 ist
              );


BUF_C[i] = OMUL(OD_miPR// Soll multipliziert werden
                ,
                miMA// Wert, der evtl. kleiner als 1.0 ist
              );


BUF_D[i] = OMUL(OD_miMA// Soll multipliziert werden
                ,
                miPR// Wert, der evtl. kleiner als 1.0 ist
              );


BUF_E[i] = OMUL(loPR// Soll multipliziert werden
                ,
                OD_hiMA// Wert, der evtl. kleiner als 1.0 ist
              );


BUF_F[i] = OMUL(loMA// Soll multipliziert werden
                ,
                OD_hiPR// Wert, der evtl. kleiner als 1.0 ist
              );
                   

//=============================================================================================================
// E N D E  F U N K T I O N E N
//=============================================================================================================
}// for (i=ratestotal)...
//=============================================================================================================
// E N D E  I N D I
//=============================================================================================================
return(rates_total);}// OnCalculate



Alle Zeitangaben in WEZ +2. Es ist jetzt 10:47 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum