Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 117 1...110111112113114115116117118119120121122123124...1953 Novo comentário Artyom Trishkin 2017.02.09 19:44 #1161 Rustam Bikbulatov: eu estaria pagando por isso? Bem, se alguém com muito tempo pode fazer isso, você pode ter sorte. Mas caso contrário, sim, tempo é dinheiro, desculpe ;) Ou tente fazê-lo você mesmo, e você terá ajuda aqui - ajuda é apenas para aqueles que aprendem por conta própria e não têm sucesso em algo. Aceleração do depósito MTS Estável Da teoria à prática Rustam Bikbulatov 2017.02.09 19:47 #1162 Artyom Trishkin: Comece a escrever. O que não funciona - pergunte - nós ajudaremos. Ou você quer que o façamos por você? Eu queria conectar estes indicadores, mas há um erro. Eu estive lutando o dia todo Arquivos anexados: Moving_Averages.mq4 11 kb tyyu.mq4 5 kb Artyom Trishkin 2017.02.09 19:54 #1163 Rustam Bikbulatov: Eu queria conectar estes indicadores, mas há um erro. Tentei fazer isto o dia todo. Mostre-me seu código, onde você está tentando conectá-los, e o que está errado? Por favor, cole o código com o botão SRC para ver o que você está tentando fazer, em vez de carregar esses códigos em seu sistema, eles já são demais. Como codificar? UMA EA BASEADA EM Rectângulos recheados em MT4 Rustam Bikbulatov 2017.02.09 19:54 #1164 Rustam Bikbulatov: Eu tentei conectar estes indicadores, mas um erro está saindo.'start' - função já definida e com corpo sound Moving Averages.mq4 178 5 Arquivos anexados: 3co2_Moving_Averages.mq4 13 kb Rustam Bikbulatov 2017.02.09 19:55 #1165 Artyom Trishkin: Mostre seu código, onde você está tentando conectá-los e o que você está falhando em fazer? Por favor, use o botão SRC para ver o que você está tentando fazer em vez de carregar este código em seu sistema - já existem muitos deles. Quem me dera saber o que era aquele botão mágico. Vitaly Muzichenko 2017.02.09 20:05 #1166 Rustam Bikbulatov: se eu soubesse o que era o botão mágico.Ah, bem.Leia a ajuda sobre como usar o fórum. Você quer um link, ou você mesmo pode encontrá-lo? 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 outra coisa engraçadaduplo OP = 5.00000TP = (OP/100); Imprimir("TP= ",TP);2017.02.09 21:36:03.650 2015.01.05 04:00:00 martin H1-1 USDJPY,H1: TP= 0.5Eu não entendo desde quando você divide 5 por 100 para ser 0,5Já percebi - por alguma razão o terminal não suporta cores diferentes e leva o que já está lá em outras funções Any questions from newcomers As regularidades de movimentos Avalanche Artyom Trishkin 2017.02.09 20:40 #1169 trader781:...o terminal não suporta cores diferentes e toma algo que já existe em outras funções Em objetos? Bobagem. Mickey Moose 2017.02.09 20:43 #1170 Artyom Trishkin: Objetos? Besteira. Artyom, o código que eu joguei acima 1...110111112113114115116117118119120121122123124...1953 Novo comentário
eu estaria pagando por isso?
Ou tente fazê-lo você mesmo, e você terá ajuda aqui - ajuda é apenas para aqueles que aprendem por conta própria e não têm sucesso em algo.
Comece a escrever. O que não funciona - pergunte - nós ajudaremos.
Ou você quer que o façamos por você?
Eu queria conectar estes indicadores, mas há um erro. Tentei fazer isto o dia todo.
Por favor, cole o código com o botão SRC para ver o que você está tentando fazer, em vez de carregar esses códigos em seu sistema, eles já são demais.
Eu tentei conectar estes indicadores, mas um erro está saindo.
Mostre seu código, onde você está tentando conectá-los e o que você está falhando em fazer?
Por favor, use o botão SRC para ver o que você está tentando fazer em vez de carregar este código em seu sistema - já existem muitos deles.
se eu soubesse o que era o botão mágico.
Ah, bem.
Leia a ajuda sobre como usar o fórum. Você quer um link, ou você mesmo pode encontrá-lo?
//| 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= ");
}
}
//+------------------------------------------------------------------+
outra coisa engraçada
duplo OP = 5.00000
TP = (OP/100);
Imprimir("TP= ",TP);
2017.02.09 21:36:03.650 2015.01.05 04:00:00 martin H1-1 USDJPY,H1: TP= 0.5
Eu não entendo desde quando você divide 5 por 100 para ser 0,5
Já percebi - por alguma razão o terminal não suporta cores diferentes e leva o que já está lá em outras funções
...
o terminal não suporta cores diferentes e toma algo que já existe em outras funções
Objetos? Besteira.