Guter Indikator für volumendivergenz

 

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

Thank you

 

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
}
 
Du hast deinen Post aber sehr abgeändert während ich das geschrieben hab ;)
 
Jmd nh Idee
Grund der Beschwerde: