Guter Indikator für volumendivergenz

Einloggen oder registrieren, um einen Kommentar zu schreiben
Bayne
1010
Bayne  

Kann mir jemand einen guten Indikator für volumendivergenz en empfehlen? (Am besten auch mit Erklärung (vorher noch nie einen verwendet)

Thank you

Otto Pauser
2168
Otto Pauser  

Na so schwer ist das nicht, das Problem sind fehlende EINFACHE Beispiele wo das wesentliche herausgearbeitet wird.

Hier der Rumpf(die Struktur) eines EAs der 2 MAs definiert und die Kerzendaten zur Verfügung stellt.

//+------------------------------------------------------------------+
//| abbreviations                                                    |
//+------------------------------------------------------------------+
#define SPACER    "—————————————————————" 
#define METHOD    ENUM_MA_METHOD
#define APRICE    ENUM_APPLIED_PRICE
#define TIMEFR    ENUM_TIMEFRAMES
#define POSTYPE   ENUM_POSITION_TYPE

//+------------------------------------------------------------------+
//| input parameters                                                 |
//+------------------------------------------------------------------+
input    string   txt_MA1        =      SPACER;       // MA1 Settings
input    int      inp_MA1Period  =          10;       // Period
input    METHOD   inp_MA1Method  =    MODE_EMA;       // Method
input    int      inp_MA1Shift   =           0;       // Shift
input    APRICE   inp_MA1Price   = PRICE_CLOSE;       // Price

input    string   txt_MA2        =      SPACER;       // MA2 Settings
input    int      inp_MA2Period  =          13;       // Period
input    METHOD   inp_MA2Method  =    MODE_EMA;       // Method
input    int      inp_MA2Shift   =           0;       // Shift
input    APRICE   inp_MA2Price   = PRICE_CLOSE;       // Price

//+------------------------------------------------------------------+
//| variables                                                        |
//+------------------------------------------------------------------+
int      haMA1,            // handles für die MAs
         haMA2;

double   buMA1[],          // buffer für die MAs
         buMA2[];

MqlRates rates[];          // pricedata

int      toCopy = 3;       // copy rates to buffer

//+------------------------------------------------------------------+
int OnInit()
{
   haMA1=iMA(_Symbol, _Period, inp_MA1Period, inp_MA1Shift, inp_MA1Method, inp_MA1Price);
   if(haMA1==INVALID_HANDLE)
      return(INIT_FAILED);
   
   haMA2=iMA(_Symbol, _Period, inp_MA2Period, inp_MA2Shift, inp_MA2Method, inp_MA2Price);
   if(haMA2==INVALID_HANDLE)
      return(INIT_FAILED);
   
   ArraySetAsSeries(buMA1, true);   // auf diese buffer wird mittels Index zugegriffen 
   ArraySetAsSeries(buMA2, true);   // 0 ... aktuelle Kerze
   ArraySetAsSeries(rates, true);   // 1 ... eine Kerze davor usw.
   
   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
void OnTick()
{
   if(CopyBuffer(haMA1,0,0,toCopy,buMA1)!=toCopy) return;
   if(CopyBuffer(haMA2,0,0,toCopy,buMA2)!=toCopy) return;
   if(CopyRates(_Symbol,_Period,0,toCopy,rates)!=toCopy) return;
   
   if(PositionSelect(_Symbol))         // check ob offene position vorhanden
      {                                // position existiert
         switch((POSTYPE)PositionGetInteger(POSITION_TYPE))
           {
            case  POSITION_TYPE_BUY:
                                       // prüfen auf buy schließen
                                       // und schließen falls erforderlich
               return;                 // break kann durch return ersetzt werden

            case  POSITION_TYPE_SELL:
                                       // prüfen auf sell schließen
                                       // und schließen falls erforderlich
               return;                 // break kann durch return ersetzt werden
           }    
      }
   else
      {                                // keine position offen
         if(Condition_Buy())           // prüfen auf buy


            return;

         if(Condition_Sell())          // prüfen auf sell


            return;
      }
}

bool Condition_Buy()
{
                                       // hier prüfen auf buy und return(true) falls bedingung zutrifft
   return(false);                      // kaufbedingung war nicht zutreffend
}

bool Condition_Sell()
{
                                       // hier prüfen uaf sell und return(true) falls bedingung zutrifft
   return(false);                      // verkaufsbedingung war nicht zutreffend
}
Otto Pauser
2168
Otto Pauser  
Du hast deinen Post aber sehr abgeändert während ich das geschrieben hab ;)
Bayne
1010
Bayne  
Jmd nh Idee
Einloggen oder registrieren, um einen Kommentar zu schreiben