Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 117 1...110111112113114115116117118119120121122123124...1954 Nuevo comentario Artyom Trishkin 2017.02.09 19:44 #1161 Rustam Bikbulatov: ¿podría pagar por ello? Bueno, si alguien con mucho tiempo puede hacerlo, podría tener suerte. Pero por lo demás, sí, el tiempo es oro, lo siento ;) O intenta hacerlo tú mismo, y aquí recibirás ayuda; la ayuda es sólo para los que aprenden por su cuenta y no tienen éxito en algo. [¡Archivo! Por favor, préstame un Además de - "Evaluar Rustam Bikbulatov 2017.02.09 19:47 #1162 Artyom Trishkin: Empieza a escribir. Lo que no funcione, pregúntalo, te ayudaremos.¿O quiere que lo hagamos por usted? Quería conectar estos indicadores, pero hay un error. He estado luchando todo el día Archivos adjuntos: Moving_Averages.mq4 11 kb tyyu.mq4 5 kb Artyom Trishkin 2017.02.09 19:54 #1163 Rustam Bikbulatov: Quería conectar estos indicadores, pero hay un error. Llevo todo el día intentando hacerlo. Muéstrame tu código, dónde estás tratando de conectarlos, y qué es lo que está mal? Por favor, pega el código con el botón SRC para ver lo que intentas hacer, en lugar de subir estos códigos a tu sistema, ya son demasiado. Preguntas de los principiantes Código de error 5004 Por favor, ayúdame a Rustam Bikbulatov 2017.02.09 19:54 #1164 Rustam Bikbulatov: He intentado conectar estos indicadores, pero sale un error. Llevo todo el día intentando hacerlo.'start' - función ya definida y con cuerpo sound Moving Averages.mq4 178 5 Archivos adjuntos: 3co2_Moving_Averages.mq4 13 kb Rustam Bikbulatov 2017.02.09 19:55 #1165 Artyom Trishkin: Muestre su código, ¿dónde está tratando de conectarlos y qué está fallando? Por favor, utilice el botón SRC para ver lo que está tratando de hacer en lugar de subir este código a su sistema - ya hay demasiados. Ojalá supiera cuál es ese botón mágico. Vitaly Muzichenko 2017.02.09 20:05 #1166 Rustam Bikbulatov: si supiera cuál es el botón mágico.Oh, bueno.Lee la ayuda sobre cómo utilizar el foro. ¿Quieres un enlace, o puedes encontrarlo tú mismo? Rustam Bikbulatov 2017.02.09 20:09 #1167 //+------------------------------------------------------------------+//| Custom Moving Average.mq4 |//| Copyright © 2004, MetaQuotes Software Corp. |//| http://www.metaquotes.net/ |//+------------------------------------------------------------------+#property copyright "Copyright © 2004, MetaQuotes Software Corp."#property link "http://www.metaquotes.net/"#property indicator_chart_window#property indicator_buffers 1#property indicator_color1 Red//---- indicator parametersextern int MA_Period=13;extern int MA_Shift=0;extern int MA_Method=0;extern double Alert_Level = 0;//---- indicator buffersdouble ExtMapBuffer[];double Buffer2[];//----int ExtCountedBars=0;int br1=0;//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init() { int draw_begin; string short_name;//---- drawing settings SetIndexStyle(0,DRAW_LINE); SetIndexShift(0,MA_Shift); IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)); if(MA_Period<2) MA_Period=13; draw_begin=MA_Period-1;//---- indicator short name switch(MA_Method) { case 1 : short_name="EMA("; draw_begin=0; break; case 2 : short_name="SMMA("; break; case 3 : short_name="LWMA("; break; default : MA_Method=0; short_name="SMA("; } IndicatorShortName(short_name+MA_Period+")"); SetIndexDrawBegin(0,draw_begin);//---- indicator buffers mapping SetIndexBuffer(0,ExtMapBuffer);//---- initialization done return(0); }//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+int start() { if(Bars<=MA_Period) return(0); ExtCountedBars=IndicatorCounted();//---- check for possible errors if (ExtCountedBars<0) return(-1);//---- last counted bar will be recounted if (ExtCountedBars>0) ExtCountedBars--;//---- switch(MA_Method) { case 0 : sma(); break; case 1 : ema(); break; case 2 : smma(); break; case 3 : lwma(); }//---- done return(0); }//+------------------------------------------------------------------+//| Simple Moving Average |//+------------------------------------------------------------------+void sma() { double sum=0; int i,pos=Bars-ExtCountedBars-1;//---- initial accumulation if(pos<MA_Period) pos=MA_Period; for(i=1;i<MA_Period;i++,pos--) sum+=Close[pos];//---- main calculation loop while(pos>=0) { sum+=Close[pos]; ExtMapBuffer[pos]=sum/MA_Period; sum-=Close[pos+MA_Period-1]; pos--; }//---- zero initial bars if(ExtCountedBars<1) for(i=1;i<MA_Period;i++) ExtMapBuffer[Bars-i]=0; }//+------------------------------------------------------------------+//| Exponential Moving Average |//+------------------------------------------------------------------+void ema() { double pr=2.0/(MA_Period+1); int pos=Bars-2; if(ExtCountedBars>2) pos=Bars-ExtCountedBars-1;//---- main calculation loop while(pos>=0) { if(pos==Bars-2) ExtMapBuffer[pos+1]=Close[pos+1]; ExtMapBuffer[pos]=Close[pos]*pr+ExtMapBuffer[pos+1]*(1-pr); pos--; } }//+------------------------------------------------------------------+//| Smoothed Moving Average |//+------------------------------------------------------------------+void smma() { double sum=0; int i,k,pos=Bars-ExtCountedBars+1;//---- main calculation loop pos=Bars-MA_Period; if(pos>Bars-ExtCountedBars) pos=Bars-ExtCountedBars; while(pos>=0) { if(pos==Bars-MA_Period) { //---- initial accumulation for(i=0,k=pos;i<MA_Period;i++,k++) { sum+=Close[k]; //---- zero initial bars ExtMapBuffer[k]=0; } } else sum=ExtMapBuffer[pos+1]*(MA_Period-1)+Close[pos]; ExtMapBuffer[pos]=sum/MA_Period; pos--; } }//+------------------------------------------------------------------+//| Linear Weighted Moving Average |//+------------------------------------------------------------------+void lwma() { double sum=0.0,lsum=0.0; double price; int i,weight=0,pos=Bars-ExtCountedBars-1;//---- initial accumulation if(pos<MA_Period) pos=MA_Period; for(i=1;i<=MA_Period;i++,pos--) { price=Close[pos]; sum+=price*i; lsum+=price; weight+=i; }//---- main calculation loop pos++; i=pos+MA_Period; while(pos>=0) { ExtMapBuffer[pos]=sum/weight; if(pos==0) break; pos--; i--; price=Close[pos]; sum=sum-lsum+price*MA_Period; lsum-=Close[i]; lsum+=price; }//---- zero initial bars if(ExtCountedBars<1) for(i=1;i<MA_Period;i++) ExtMapBuffer[Bars-i]=0; }//+------------------------------------------------------------------+int start() {int limit; int counted_bars = IndicatorCounted();//---- check for possible errors if(counted_bars < 0) return(-1);//---- last counted bar will be recounted if(counted_bars > 0) counted_bars--; limit = Bars - counted_bars; if(counted_bars==0) limit--;//---- for(int i = limit; i >=0; i--) //for(int i = 1000; i >=0; i--) { Buffer2[i]=iMA(NULL,1,60,0,1,6,0); } if(((Buffer2[2]<0 && Buffer2[1]>Alert_Level) || (Buffer2[2]>0 && Buffer2[1]<Alert_Level)) && br1<Bars ) { PlaySound("alert.wav"); Sleep(500); PlaySound("alert.wav"); Sleep(500); PlaySound("alert.wav"); br1=Bars; Alert("На ",Symbol()," \"", "\" пересечение с =0= "); Print("На ",Symbol()," \"", "\" пересечение с =0= "); } }//+------------------------------------------------------------------+ Any questions from newcomers Experts: NirvamanImax Combine Osma and MA Mickey Moose 2017.02.09 20:37 #1168 otra cosa divertidadoble OP = 5.00000TP = (OP/100); Print("TP= ",TP);2017.02.09 21:36:03.650 2015.01.05 04:00:00 martin H1-1 USDJPY,H1: TP= 0.5No entiendo desde cuando se divide 5 entre 100 para que sea 0,5Ya lo tengo resuelto - el terminal no admite diferentes colores por alguna razón, sólo toma lo que ya hay en otras funciones Any questions from newcomers Errores, fallos, preguntas Función de los fondos Artyom Trishkin 2017.02.09 20:40 #1169 trader781:...el terminal no soporta diferentes colores y toma algo que ya existe en otras funciones¿En objetos? No tiene sentido. Mickey Moose 2017.02.09 20:43 #1170 Artyom Trishkin: ¿Objetos? Mentira. Artyom, el código que tiré arriba 1...110111112113114115116117118119120121122123124...1954 Nuevo comentario
¿podría pagar por ello?
O intenta hacerlo tú mismo, y aquí recibirás ayuda; la ayuda es sólo para los que aprenden por su cuenta y no tienen éxito en algo.
Empieza a escribir. Lo que no funcione, pregúntalo, te ayudaremos.
¿O quiere que lo hagamos por usted?
Quería conectar estos indicadores, pero hay un error. Llevo todo el día intentando hacerlo.
Por favor, pega el código con el botón SRC para ver lo que intentas hacer, en lugar de subir estos códigos a tu sistema, ya son demasiado.
He intentado conectar estos indicadores, pero sale un error. Llevo todo el día intentando hacerlo.
Muestre su código, ¿dónde está tratando de conectarlos y qué está fallando?
Por favor, utilice el botón SRC para ver lo que está tratando de hacer en lugar de subir este código a su sistema - ya hay demasiados.
si supiera cuál es el botón mágico.
Oh, bueno.
Lee la ayuda sobre cómo utilizar el foro. ¿Quieres un enlace, o puedes encontrarlo tú mismo?
//| Custom Moving Average.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- indicator parameters
extern int MA_Period=13;
extern int MA_Shift=0;
extern int MA_Method=0;
extern double Alert_Level = 0;
//---- indicator buffers
double ExtMapBuffer[];
double Buffer2[];
//----
int ExtCountedBars=0;
int br1=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
int draw_begin;
string short_name;
//---- drawing settings
SetIndexStyle(0,DRAW_LINE);
SetIndexShift(0,MA_Shift);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
if(MA_Period<2) MA_Period=13;
draw_begin=MA_Period-1;
//---- indicator short name
switch(MA_Method)
{
case 1 : short_name="EMA("; draw_begin=0; break;
case 2 : short_name="SMMA("; break;
case 3 : short_name="LWMA("; break;
default :
MA_Method=0;
short_name="SMA(";
}
IndicatorShortName(short_name+MA_Period+")");
SetIndexDrawBegin(0,draw_begin);
//---- indicator buffers mapping
SetIndexBuffer(0,ExtMapBuffer);
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
if(Bars<=MA_Period) return(0);
ExtCountedBars=IndicatorCounted();
//---- check for possible errors
if (ExtCountedBars<0) return(-1);
//---- last counted bar will be recounted
if (ExtCountedBars>0) ExtCountedBars--;
//----
switch(MA_Method)
{
case 0 : sma(); break;
case 1 : ema(); break;
case 2 : smma(); break;
case 3 : lwma();
}
//---- done
return(0);
}
//+------------------------------------------------------------------+
//| Simple Moving Average |
//+------------------------------------------------------------------+
void sma()
{
double sum=0;
int i,pos=Bars-ExtCountedBars-1;
//---- initial accumulation
if(pos<MA_Period) pos=MA_Period;
for(i=1;i<MA_Period;i++,pos--)
sum+=Close[pos];
//---- main calculation loop
while(pos>=0)
{
sum+=Close[pos];
ExtMapBuffer[pos]=sum/MA_Period;
sum-=Close[pos+MA_Period-1];
pos--;
}
//---- zero initial bars
if(ExtCountedBars<1)
for(i=1;i<MA_Period;i++) ExtMapBuffer[Bars-i]=0;
}
//+------------------------------------------------------------------+
//| Exponential Moving Average |
//+------------------------------------------------------------------+
void ema()
{
double pr=2.0/(MA_Period+1);
int pos=Bars-2;
if(ExtCountedBars>2) pos=Bars-ExtCountedBars-1;
//---- main calculation loop
while(pos>=0)
{
if(pos==Bars-2) ExtMapBuffer[pos+1]=Close[pos+1];
ExtMapBuffer[pos]=Close[pos]*pr+ExtMapBuffer[pos+1]*(1-pr);
pos--;
}
}
//+------------------------------------------------------------------+
//| Smoothed Moving Average |
//+------------------------------------------------------------------+
void smma()
{
double sum=0;
int i,k,pos=Bars-ExtCountedBars+1;
//---- main calculation loop
pos=Bars-MA_Period;
if(pos>Bars-ExtCountedBars) pos=Bars-ExtCountedBars;
while(pos>=0)
{
if(pos==Bars-MA_Period)
{
//---- initial accumulation
for(i=0,k=pos;i<MA_Period;i++,k++)
{
sum+=Close[k];
//---- zero initial bars
ExtMapBuffer[k]=0;
}
}
else sum=ExtMapBuffer[pos+1]*(MA_Period-1)+Close[pos];
ExtMapBuffer[pos]=sum/MA_Period;
pos--;
}
}
//+------------------------------------------------------------------+
//| Linear Weighted Moving Average |
//+------------------------------------------------------------------+
void lwma()
{
double sum=0.0,lsum=0.0;
double price;
int i,weight=0,pos=Bars-ExtCountedBars-1;
//---- initial accumulation
if(pos<MA_Period) pos=MA_Period;
for(i=1;i<=MA_Period;i++,pos--)
{
price=Close[pos];
sum+=price*i;
lsum+=price;
weight+=i;
}
//---- main calculation loop
pos++;
i=pos+MA_Period;
while(pos>=0)
{
ExtMapBuffer[pos]=sum/weight;
if(pos==0) break;
pos--;
i--;
price=Close[pos];
sum=sum-lsum+price*MA_Period;
lsum-=Close[i];
lsum+=price;
}
//---- zero initial bars
if(ExtCountedBars<1)
for(i=1;i<MA_Period;i++) ExtMapBuffer[Bars-i]=0;
}
//+------------------------------------------------------------------+
int start()
{int limit;
int counted_bars = IndicatorCounted();
//---- check for possible errors
if(counted_bars < 0)
return(-1);
//---- last counted bar will be recounted
if(counted_bars > 0)
counted_bars--;
limit = Bars - counted_bars;
if(counted_bars==0) limit--;
//----
for(int i = limit; i >=0; i--)
//for(int i = 1000; i >=0; i--)
{
Buffer2[i]=iMA(NULL,1,60,0,1,6,0);
}
if(((Buffer2[2]<0 && Buffer2[1]>Alert_Level) ||
(Buffer2[2]>0 && Buffer2[1]<Alert_Level)) && br1<Bars )
{
PlaySound("alert.wav"); Sleep(500);
PlaySound("alert.wav"); Sleep(500);
PlaySound("alert.wav"); br1=Bars;
Alert("На ",Symbol()," \"", "\" пересечение с =0= ");
Print("На ",Symbol()," \"", "\" пересечение с =0= ");
}
}
//+------------------------------------------------------------------+
otra cosa divertida
doble OP = 5.00000
TP = (OP/100);
Print("TP= ",TP);
2017.02.09 21:36:03.650 2015.01.05 04:00:00 martin H1-1 USDJPY,H1: TP= 0.5
No entiendo desde cuando se divide 5 entre 100 para que sea 0,5
Ya lo tengo resuelto - el terminal no admite diferentes colores por alguna razón, sólo toma lo que ya hay en otras funciones
...
el terminal no soporta diferentes colores y toma algo que ya existe en otras funciones
¿Objetos? Mentira.