Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43248
Benutzer: 7.220
Aktive Benutzer: 82
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 2 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 258
Gesamt: 258
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 23.11.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard Eigener Indikator zeigt immer 0 an

Hallo,

im Anhang ein zum größten Teil selbst geschriebener Indi für MT4. Zeigt im Datenfenster immer 0.0 an, im Chart ist nix von ihm zu sehn. Hab keine Ahnung, was schief läuft, hab zur Zeit auch nicht viel Zeit.


Die Idee dahinter ist, verschiedene Moving Averages unterschiedlich zu Gewichten, um z.B. zu sehn, wie sich der Close gegenüber High/Low verhält oder um z.B. Close/Open mit Median/Typical zu vergleichen. Die Möglichkeiten dürften auf jeden Fall Einige sein. Voraus gesetzt, dass Gerät funktioniert irgendwann wie es soll...
Code:
//=============================================================================
#property version     "EightMAmMAdV"
#property description "( MA * MA ) / Value"
#property link        "daniel-rudloff@web.de"

//#property strict
//=============================================================================
#property indicator_chart_window         // in Hauptfenster testen
#property indicator_buffers 1            // ein Buffer zum Malen
#property indicator_color1 clrDodgerBlue // Farbe der Linie
#property indicator_width1  1            // Dicke der Linie
//=============================================================================

//=============================================================================================================
// B E S C H R E I B U N G / I N F O S
//=============================================================================================================

extern string esBeschrCW1="? -chart window-";
extern string esBeschrCW2="Scheint im Haupt-";
extern string esBeschrCW3="und im Unterfenster";
extern string esBeschrCW4="zu funktionieren.";
extern string esBeschrCW5="Ist im Unterfenster";
extern string esBeschrCW6="aber etwas";
extern string esBeschrCW7="unübersichtlich. ?";

//=============================================================================================================
// G L O B A L E   E I N S T E L L U N G E N
//=============================================================================================================
//-------------------------------------------------------------------------------------------------------------
extern string MTO="? MA/OpZ Multi/Div";
extern double MAtoOpZ = 100000.0; // ?
//-------------------------------------------------------------------------------------------------------------
extern string LZ_DIMD=
"----------------------------------";

extern string esMXMD ="MAs x MAs / div";

extern double MAs_div = 2.0;

extern string LZ_MD=
"----------------------------------";

extern double Multi = 1.0;

extern bool AutoMulti = false;


extern string LZ_D=
"----------------------------------";

extern string LZ_test=
"----------------------------------";

extern string esIP1 ="if Period = 0";
extern string esIP2 ="MA ist not used";

extern string LZIPMAo=
"----------------------------------";

extern int               MA_A_Period = 2;
input ENUM_MA_METHOD     MA_A_Method = MODE_SMA;
input ENUM_APPLIED_PRICE MA_A_Price  = PRICE_CLOSE;

extern string LZ_MAA=
"----------------------------------";

extern int               MA_B_Period = 2;
input ENUM_MA_METHOD     MA_B_Method = MODE_SMA;
input ENUM_APPLIED_PRICE MA_B_Price  = PRICE_CLOSE;

extern string LZ_MAB=
"----------------------------------";

extern int               MA_C_Period = 2;
input ENUM_MA_METHOD     MA_C_Method = MODE_SMA;
input ENUM_APPLIED_PRICE MA_C_Price  = PRICE_CLOSE;

extern string LZ_MAC=
"----------------------------------";

extern int               MA_D_Period = 0;
input ENUM_MA_METHOD     MA_D_Method = MODE_SMA;
input ENUM_APPLIED_PRICE MA_D_Price  = PRICE_CLOSE;

extern string LZ_MAD=
"----------------------------------";

extern int               MA_E_Period = 0;
input ENUM_MA_METHOD     MA_E_Method = MODE_SMA;
input ENUM_APPLIED_PRICE MA_E_Price  = PRICE_CLOSE;

extern string LZ_MAE=
"----------------------------------";

extern int               MA_F_Period = 0;
input ENUM_MA_METHOD     MA_F_Method = MODE_SMA;
input ENUM_APPLIED_PRICE MA_F_Price  = PRICE_CLOSE;

extern string LZ_MAF=
"----------------------------------";

extern int               MA_G_Period = 0;
input ENUM_MA_METHOD     MA_G_Method = MODE_SMA;
input ENUM_APPLIED_PRICE MA_G_Price  = PRICE_CLOSE;

extern string LZ_MAG=
"----------------------------------";

extern int               MA_H_Period = 0;
input ENUM_MA_METHOD     MA_H_Method = MODE_SMA;
input ENUM_APPLIED_PRICE MA_H_Price  = PRICE_CLOSE;

//=============================================================================================================
// G L O B A L E S
//=============================================================================================================string IndisName = "PrPlusMAd2";  // Indikatorname
string IndisName="EightMAmMAdV"; // Indikatorname
//-------------------------------------------------------------------------------------------------------------
double BUF_EightMAmMAdV[];  // Name des Mal-Buffers
//-------------------------------------------------------------------------------------------------------------

double 

Pr_Hi,Pr_Op,Pr_Cl,Pr_Lo,Pr_HL,Pr_HCL,Pr_HOCL,Pr_ME,Pr_TY,Pr_WE,

MA_A,MA_B,MA_C,MA_D,MA_E,MA_F,MA_G,MA_H,

MA_A_PR,MA_B_PR,MA_C_PR,MA_D_PR,MA_E_PR,MA_F_PR,MA_G_PR,MA_H_PR,

A,B,C,D,E,F,G,H,

MAmMA,MmMd,MmM_Mul,MAmMA_div


;


//-------------------------------------------------------------------------------------------------------------
int
i,MAcount;
//=============================================================================================================
// I N I T / D E I N I T
//=============================================================================================================
int OnInit(void){

  IndicatorShortName(IndisName // === Anzeige des Indikatornamens und der Werte
    
                      
                     );
   
  IndicatorDigits(_Digits); // Anzahl der anzuzeigenden Nachkommastellen
  IndicatorBuffers(1);      // Gesamtanzahl aller Buffer
  SetIndexBuffer(0,BUF_EightMAmMAdV); // 1. Buffer mit Buffername
  SetIndexLabel(0,"EightMAmMAdV");    // Beschreibung im Datenfenster
  SetIndexStyle(0,DRAW_LINE); // Art der Darstellung
   
  return(INIT_SUCCEEDED);}
//-------------------------------------------------------------------------------------------------------------
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,
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=1;i<rates_total;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_HL = Pr_Hi + Pr_Lo;
Pr_ME = Pr_HL / 2.0;

Pr_HCL = Pr_Hi + Pr_Cl + Pr_Lo;
Pr_TY = Pr_HCL / 3.0;     
    
Pr_HOCL = Pr_Hi + Pr_Cl + Pr_Op + Pr_Lo;
Pr_WE = Pr_HOCL / 4.0;

//=============================================================================================================
// M O V I N G   A V E R A G E S
//=============================================================================================================

MAcount = 0;

// Zuweisung MA_A
if(MA_A_Period<1)MA_A=1.0;
if(MA_A_Period>=1){
  if(MA_A_Price==PRICE_HIGH    )MA_A_PR=Pr_Hi;
  if(MA_A_Price==PRICE_CLOSE   )MA_A_PR=Pr_Cl;
  if(MA_A_Price==PRICE_OPEN    )MA_A_PR=Pr_Op;
  if(MA_A_Price==PRICE_LOW     )MA_A_PR=Pr_Lo;
  if(MA_A_Price==PRICE_MEDIAN  )MA_A_PR=Pr_ME;
  if(MA_A_Price==PRICE_TYPICAL )MA_A_PR=Pr_TY;
  if(MA_A_Price==PRICE_WEIGHTED)MA_A_PR=Pr_WE;
  
  MA_A=iMA(_Symbol,_Period,MA_A_Period,0,MA_A_Method,MA_A_PR,i);
  
  A = MA_A * MAtoOpZ;
  
  if(AutoMulti==true)MAcount++;}


// Zuweisung MA_B
if(MA_B_Period<1)MA_B=1.0;
if(MA_B_Period>=1){
  if(MA_B_Price==PRICE_HIGH    )MA_B_PR=Pr_Hi;
  if(MA_B_Price==PRICE_OPEN    )MA_B_PR=Pr_Op;
  if(MA_B_Price==PRICE_CLOSE   )MA_B_PR=Pr_Cl;
  if(MA_B_Price==PRICE_LOW     )MA_B_PR=Pr_Lo;
  if(MA_B_Price==PRICE_MEDIAN  )MA_B_PR=Pr_ME;
  if(MA_B_Price==PRICE_TYPICAL )MA_B_PR=Pr_TY;
  if(MA_B_Price==PRICE_WEIGHTED)MA_B_PR=Pr_WE;
  
  MA_B=iMA(_Symbol,_Period,MA_B_Period,0,MA_B_Method,MA_B_PR,i);
  
  B = MA_B * MAtoOpZ;
  
  if(AutoMulti==true)MAcount++;}


// Zuweisung Price MA_C
if(MA_C_Period<1)MA_C=1.0;
if(MA_C_Period>=1){
  if(MA_C_Price==PRICE_HIGH    )MA_C_PR=Pr_Hi;
  if(MA_C_Price==PRICE_OPEN    )MA_C_PR=Pr_Op;
  if(MA_C_Price==PRICE_CLOSE   )MA_C_PR=Pr_Cl;
  if(MA_C_Price==PRICE_LOW     )MA_C_PR=Pr_Lo;
  if(MA_C_Price==PRICE_MEDIAN  )MA_C_PR=Pr_ME;
  if(MA_C_Price==PRICE_TYPICAL )MA_C_PR=Pr_TY;
  if(MA_C_Price==PRICE_WEIGHTED)MA_C_PR=Pr_WE;
  
  MA_C=iMA(_Symbol,_Period,MA_C_Period,0,MA_C_Method,MA_C_PR,i);
  
  C = MA_C * MAtoOpZ;
  
  if(AutoMulti==true)MAcount++;}


// Zuweisung MA_D
if(MA_D_Period<1)MA_D=1.0;
if(MA_D_Period>=1){
  if(MA_D_Price==PRICE_HIGH    )MA_D_PR=Pr_Hi;
  if(MA_D_Price==PRICE_OPEN    )MA_D_PR=Pr_Op;
  if(MA_D_Price==PRICE_CLOSE   )MA_D_PR=Pr_Cl;
  if(MA_D_Price==PRICE_LOW     )MA_D_PR=Pr_Lo;
  if(MA_D_Price==PRICE_MEDIAN  )MA_D_PR=Pr_ME;
  if(MA_D_Price==PRICE_TYPICAL )MA_D_PR=Pr_TY;
  if(MA_D_Price==PRICE_WEIGHTED)MA_D_PR=Pr_WE;
  
  MA_D=iMA(_Symbol,_Period,MA_D_Period,0,MA_D_Method,MA_D_PR,i);
  
  D = MA_D * MAtoOpZ;
  
  if(AutoMulti==true)MAcount++;}


// Zuweisung MA_E
if(MA_E_Period<1)MA_E=1.0;
if(MA_E_Period>=1){
  if(MA_E_Price==PRICE_HIGH    )MA_E_PR=Pr_Hi;
  if(MA_E_Price==PRICE_OPEN    )MA_E_PR=Pr_Op;
  if(MA_E_Price==PRICE_CLOSE   )MA_E_PR=Pr_Cl;
  if(MA_E_Price==PRICE_LOW     )MA_E_PR=Pr_Lo;
  if(MA_E_Price==PRICE_MEDIAN  )MA_E_PR=Pr_ME;
  if(MA_E_Price==PRICE_TYPICAL )MA_E_PR=Pr_TY;
  if(MA_E_Price==PRICE_WEIGHTED)MA_E_PR=Pr_WE;
  
  MA_E=iMA(_Symbol,_Period,MA_E_Period,0,MA_E_Method,MA_E_PR,i);
  
  E = MA_E * MAtoOpZ;
  
  if(AutoMulti==true)MAcount++;}


// Zuweisung Price MA_F
if(MA_F_Period<1)MA_F=1.0;
if(MA_F_Period>=1){
  if(MA_F_Price==PRICE_HIGH    )MA_F_PR=Pr_Hi;
  if(MA_F_Price==PRICE_OPEN    )MA_F_PR=Pr_Op;
  if(MA_F_Price==PRICE_CLOSE   )MA_F_PR=Pr_Cl;
  if(MA_F_Price==PRICE_LOW     )MA_F_PR=Pr_Lo;
  if(MA_F_Price==PRICE_MEDIAN  )MA_F_PR=Pr_ME;
  if(MA_F_Price==PRICE_TYPICAL )MA_F_PR=Pr_TY;
  if(MA_F_Price==PRICE_WEIGHTED)MA_F_PR=Pr_WE;
  
  MA_F=iMA(_Symbol,_Period,MA_F_Period,0,MA_F_Method,MA_F_PR,i);
  
  F = MA_F * MAtoOpZ;
  
  if(AutoMulti==true)MAcount++;}


// Zuweisung Price G
if(MA_G_Period<1)MA_G=1.0;
if(MA_G_Period>=1){
  if(MA_G_Price==PRICE_HIGH    )MA_G_PR=Pr_Hi;
  if(MA_G_Price==PRICE_OPEN    )MA_G_PR=Pr_Op;
  if(MA_G_Price==PRICE_CLOSE   )MA_G_PR=Pr_Cl;
  if(MA_G_Price==PRICE_LOW     )MA_G_PR=Pr_Lo;
  if(MA_G_Price==PRICE_MEDIAN  )MA_G_PR=Pr_ME;
  if(MA_G_Price==PRICE_TYPICAL )MA_G_PR=Pr_TY;
  if(MA_G_Price==PRICE_WEIGHTED)MA_G_PR=Pr_WE;
  
  MA_G=iMA(_Symbol,_Period,MA_G_Period,0,MA_G_Method,MA_G_PR,i);
  
  G = MA_G * MAtoOpZ;
  
  if(AutoMulti==true)MAcount++;}


// Zuweisung Price H
if(MA_H_Period<1)MA_H=1.0;
if(MA_H_Period>=1){
  if(MA_H_Price==PRICE_HIGH    )MA_H_PR=Pr_Hi;
  if(MA_H_Price==PRICE_OPEN    )MA_H_PR=Pr_Op;
  if(MA_H_Price==PRICE_CLOSE   )MA_H_PR=Pr_Cl;
  if(MA_H_Price==PRICE_LOW     )MA_H_PR=Pr_Lo;
  if(MA_H_Price==PRICE_MEDIAN  )MA_H_PR=Pr_ME;
  if(MA_H_Price==PRICE_TYPICAL )MA_H_PR=Pr_TY;
  if(MA_H_Price==PRICE_WEIGHTED)MA_H_PR=Pr_WE;
  
  MA_H=iMA(_Symbol,_Period,MA_H_Period,0,MA_H_Method,MA_H_PR,i);
  
  H = MA_H * MAtoOpZ;
  
  if(AutoMulti==true)MAcount++;}


//=============================================================================================================
// M A s x M A s
//=============================================================================================================
MAmMA=A*B*C*D*E*F*G*H;
//=============================================================================================================
// ( M A s * M A s ) / D I V
//=============================================================================================================
MAmMA_div = MAmMA / MAs_div;
//=============================================================================================================
// A U T O   M U L T I ?
//=============================================================================================================
// ?
if(AutoMulti==true){

  Print("AutoMulti Zum Testen aus");
}


MmM_Mul = MAmMA_div * Multi;

//=============================================================================================================
// B U F F E R   Z U W E I S U N G
//=============================================================================================================


BUF_EightMAmMAdV[i] = MmM_Mul / MAtoOpZ;




//=============================================================================================================
// E N D E   F U N K T I O N E N
//=============================================================================================================
}
return(NULL);}
Angehängte Dateien
Dateityp: mq4 EightMAmMAdV.mq4 (26,4 KB, 2x aufgerufen)
Thema geschlossen

Lesezeichen

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 00:57 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------