Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 622

 

Qualquer pessoa pode sugerir, instalar o plugin GetTickerHistory no MT-4, roda, mas o download não vai, no Windows 7 x64, é possível baixar os índices externos de outra forma.

Obrigado de antemão.
 

É possível baixar os gráficos para análise técnica, - os índices S & P 500 Futures Chart, TA 25 Chart, e o S & P 500 Chart, se possível, podem fazer o download, talvez haja uma explicação de como fazer o download!

Não consigo encontrar tal corretor, você pode aconselhar um programa de análise técnica, que me permita baixar os índices em que estou interessado (pode ser em tempo real) ou um corretor.

Talvez haja uma oportunidade de baixar estes índices MT-4 ou MT-5. Estou apenas começando a tentar fazer análises técnicas, eu gostaria muito de ouvir conselhos de especialistas sobre como lidar com minha tarefa.

Agradeço antecipadamente por sua ajuda.
 
Ajude-me a descobrir como lidar com objetos.
Tentando encontrar o preço do último objeto conhecendo as 3 primeiras letras em seu nome.

Obrigado.

double Entry()
{
  double Price;
  string ObjName ="ABC";
  int QuantObjects=ObjectsTotal();
  for(Cnt=QuantObjects-1;Cnt>=0;Cnt--)
  { 
    if(ObjectFind(0,StringSubstr(ObjName,3,StringLen(ObjName)-3)) > -1)
    {
      Price = NormalizeDouble(ObjectGet(StringSubstr(ObjName,3,StringLen(ObjName)-3),OBJPROP_PRICE1),Digits);
    }
    else Price = 0;
  }
  return(Price);
}

 
rustein:
Ajude-me a descobrir como lidar com objetos.
Tentando encontrar o preço do último objeto conhecendo as 3 primeiras letras em seu nome.

Obrigado.

Tente isto.

double Entry()
{
  double Price;
  string ObjName ="ABC";
  int QuantObjects=ObjectsTotal();
  string name;
  for(Cnt=QuantObjects-1;Cnt>=0;Cnt--)
  { 
   name=ObjectName(cnt);
   if(StringSubstr(name,0,3)=ObjName)
    {
      Price = NormalizeDouble(ObjectGet(name,OBJPROP_PRICE1),Digits);
return(Price);

    }
    else Price = 0;
  }
  return(Price);
}
 
Roger:

Então, experimente.


Isso funciona,
Muito obrigado.
 

Eu tenho um indicador:

//+------------------------------------------------------------------+
//| T3MA_ALARM.mq4 |
//| Copyright © 2011, Martingeil |
//| fx.09@mail.ru |
//+------------------------------------------------------------------+
//исправленный Martingeil, теперь можно в тестере увидеть его стрелки.
#property copyright "Copyright © 2011, Martingeil"
#property link "fx.09@mail.ru"

//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
//---- indicator parameters
extern int period = 4; //12
extern int shift = 0; //сдвиг по бару
//---- indicator buffers
double BufferUp[],BufferDn[];
int q,st=5;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(2);
//---- drawing settings
SetIndexStyle(0,DRAW_ARROW,2);
SetIndexArrow(0,233);
SetIndexStyle(1,DRAW_ARROW,2);
SetIndexArrow(1,234);

SetIndexBuffer(0,BufferUp);//стрелка синяя верх
SetIndexBuffer(1,BufferDn);//стрелка красная вниз
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("T3MA-ALARM ("+period+")");
//---- initialization done
if(Digits==3 || Digits==5) q=10;
st=st*q;
return(0);}

int deinit()
{
ObjectDelete("low");
ObjectDelete("high");
}
//+----------------------------------------------------------------------+
//| Moving Average of Oscillator |
//+----------------------------------------------------------------------+
int start()
{
//---- ArraySetAsSeries --------------------------------------------------
double Ma[500],MaOn[500];
double y0[500],y1[500],y2[500];
int i,limit=ArraySize(Ma);
ArraySetAsSeries(Ma,true);
//---- IndicatorCounted --------------------------------------------------
int counted_bars=IndicatorCounted();
int limit1=Bars-counted_bars;
if (limit1>1){limit1=Bars-period-1;}
//---- EMA ---------------------------------------------------------------
for(i=limit1; i>=0; i--) Ma[i] =iMA(NULL,0,period,0,MODE_EMA,PRICE_CLOSE,i);
for(i=limit1; i>=0; i--) MaOn[i]=iMAOnArray(Ma,limit,period,0,MODE_EMA,i);

for(i=limit1; i>=0; i--)
{
y0[i+shift]=MaOn[i+shift];
y1[i+1+shift]=MaOn[i+1+shift];
y2[i+2+shift]=MaOn[i+2+shift];

if(y0[i+shift]-y1[i+1+shift]<0 && y1[i+1+shift]-y2[i+2+shift]>0){BufferDn[i+1]=High[i+1]+st*Point;}//продажа
if(y0[i+shift]-y1[i+1+shift]>0 && y1[i+1+shift]-y2[i+2+shift]<0){BufferUp[i+1]=Low[i+1]-st*Point;}//покупка
//---- Signal Trend Up || Dn ---------------------------------------------
if(y0[i]-y1[i+1]>0) Comment ("\n SWAPLONG = ",MarketInfo(Symbol(),MODE_SWAPLONG),
" SWAPSHORT = ",MarketInfo(Symbol(),MODE_SWAPSHORT),"\n BUY TREND ",DoubleToStr(Close[i],Digits));

else if(y0[i]-y1[i+1]<0) Comment ("\n SWAPLONG = ",MarketInfo(Symbol(),MODE_SWAPLONG),
" SWAPSHORT = ",MarketInfo(Symbol(),MODE_SWAPSHORT),"\n SELL TREND ",DoubleToStr(Close[i],Digits));
}


//---- done
return(0);}
//+---------------------------------------------------------------------+


Quero fazer uma EA que entre em uma posição quando uma seta aparecer, que condição deve ser escrita na EA?

 

Bom dia a todos .... Os senhores me ajudam com uma pergunta sobre um parâmetro de tempo. O problema é este, tenho um critério de entrada com variáveis que são fixas em um determinado parâmetro de tempo.

M5maBIG_1= iMA(ed,PERIOD_M5,150,0,MODE_EMA,PRICE_CLOSE,1);

M5L=NormalizeDouble(iLow(ed,PERÍODO_M5,1),Digits);

if(M5L<M5maBIG_1){ordersend(520);} tried such variants as---- ((M5L<M5maBIG_1))__((M5L)<(M5maBIG_1))__((M5L)<(M5maBIG_1)))---- também não funciona!

if(a==520){RefreshRates();//__________________________________________________________________________________

op=NormalizarDuplo(op+54*kio*Point,Dígitos);sl=NormalizarDuplo(op-62*kio*Point,Dígitos);tp=NormalizarDuplo(op+54*kio*Point,Dígitos);

ticket=OrderSend(ed,OP_BUY, Lot,op,3,sl,0,comm,magic+520,0,Green);//_____Lot=

err=GetLastError();

if(err!=0){Print("Error-",err," op-",op," sl-",sl," tp-",tp);}}}

Tudo funciona quando se testa no mesmo tempo M5, mas apenas muda (quando se testa, por exemplo em H1), o resultado também muda, como escrever corretamente? Obrigado!!!

 

MaperiodAVTO = 750 / Period();

laveosa:


Bom dia a todos .... Os senhores me ajudam com uma pergunta sobre um parâmetro de tempo. O problema é este, tenho um critério de entrada com variáveis que são fixas em um determinado parâmetro de tempo.

M5maBIG_1= iMA(ed,PERIOD_M5,150,0,MODE_EMA,PRICE_CLOSE,1);

M5L=NormalizeDouble(iLow(ed,PERÍODO_M5,1),Digits);

Por exemplo, assim:

 int MaperiodAVTO; 

if( Period()>1){ 

MaperiodAVTO = 750 / Period();

}

else

{

  MaperiodAVTO = 750;

}

 M5maBIG_1= iMA(ed, Period() , MaperiodAVTO ,0,MODE_EMA,PRICE_CLOSE,1);  


 
benzovoz:

Por exemplo, assim:

int MaperiodAVTO = 750 / Period();

  M5maBIG_1= iMA(ed, Period() , MaperiodAVTO ,0,MODE_EMA,PRICE_CLOSE,1);  



por que 750?
 
laveosa:

Por que 750?

Ele só gosta desse número.