am inceput si eu sa invat MQL, dar m-am impotmolit chiar de la primul indicator. In esenta, doresc 2 indicatori digitali desenati intr-o fereastra astfel:
- un indicator care sa fie 1 daca ultima bara are High-ul cel mai High dintre ultimele 5 bare si 0 in rest; ExtHigh[] este indicatorul;
- un indicator care sa fie -1 daca ultima bara are Low-ul cel mai Low dintre ultimele 5 bare si 0 in rest; ExtLow[] este indicatorul;
Din pacate am obtinut doar o linie continua la valoarea 0. Cu siguranta am gresit ceva, in bucla "while". Ca sa fie mai usor de urmarit am atasat incercarea mea:
#property copyright ""
#property link ""
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_minimum -1.5
#property indicator_maximum 1.5
double ExtHigh[];
double ExtLow[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtHigh);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,ExtLow);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int maxHValue, minLValue;
int pos=Bars;
while(pos>=0)
{
maxHValue=iHighest(NULL,0,MODE_HIGH,5,pos-4);
minLValue=iLowest(NULL,0,MODE_LOW,5,pos-4);
if (maxHValue==0)
ExtHigh[pos]=1;
else
ExtHigh[pos]=0;
if (minLValue==0)
ExtLow[pos]=-1;
else
ExtLow[pos]=0;
pos--;
}
return(0);
}
Nici un utilizator înregistrat nu vede această pagină.
Informații Importante
Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.
Salut,
am inceput si eu sa invat MQL, dar m-am impotmolit chiar de la primul indicator. In esenta, doresc 2 indicatori digitali desenati intr-o fereastra astfel:
- un indicator care sa fie 1 daca ultima bara are High-ul cel mai High dintre ultimele 5 bare si 0 in rest; ExtHigh[] este indicatorul;
- un indicator care sa fie -1 daca ultima bara are Low-ul cel mai Low dintre ultimele 5 bare si 0 in rest; ExtLow[] este indicatorul;
Din pacate am obtinut doar o linie continua la valoarea 0. Cu siguranta am gresit ceva, in bucla "while". Ca sa fie mai usor de urmarit am atasat incercarea mea:
#property copyright "" #property link "" #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Blue #property indicator_color2 Red #property indicator_minimum -1.5 #property indicator_maximum 1.5 double ExtHigh[]; double ExtLow[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtHigh); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,ExtLow); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int maxHValue, minLValue; int pos=Bars; while(pos>=0) { maxHValue=iHighest(NULL,0,MODE_HIGH,5,pos-4); minLValue=iLowest(NULL,0,MODE_LOW,5,pos-4); if (maxHValue==0) ExtHigh[pos]=1; else ExtHigh[pos]=0; if (minLValue==0) ExtLow[pos]=-1; else ExtLow[pos]=0; pos--; } return(0); }Editat de Mangusta
Am pus codul intre etichete