Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 622

 

Puede alguien sugerir, instalar el plugin GetTickerHistory en MT-4, se ejecuta, pero la descarga no va, en Windows 7 x64, ¿es posible descargar los índices externos de otra manera.

Gracias de antemano.
 

¡¿Es posible descargar los gráficos para el análisis técnico, - índices S & P 500 Futuros Gráfico, TA 25 Gráfico, y el S & P 500 Gráfico si es posible puede indicar cómo hacer esto, tal vez hay una explicación de cómo descargar!

No encuentro un broker de este tipo, ¿podéis aconsejarme un programa de análisis técnico, que me permita descargar los índices que me interesan (puede ser en tiempo real) o un broker.

Tal vez exista la posibilidad de descargar estos índices MT-4 o MT-5. Estoy empezando a intentar hacer análisis técnicos, me gustaría mucho escuchar los consejos de los expertos sobre cómo afrontar mi tarea.

Agradezco de antemano su ayuda.
 
Ayúdame a saber cómo tratar los objetos.
Tratar de encontrar el precio del último objeto conociendo las 3 primeras letras de su nombre.

Gracias.

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:
Ayúdame a saber cómo tratar los objetos.
Tratar de encontrar el precio del último objeto conociendo las 3 primeras letras de su nombre.

Gracias.

Prueba esto.

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:

Así que pruébalo.


Eso funciona,
Muchas gracias.
 

Tengo un 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);}
//+---------------------------------------------------------------------+


Quiero hacer un EA que entre en una posición cuando aparezca una flecha, ¿qué condición hay que escribir en el EA?

 

Buenos días a todos .... Señores, ayúdenme con una pregunta sobre un parámetro de tiempo. El problema es el siguiente, tengo un criterio de entrada con variables que se fijan en un determinado parámetro de tiempo.

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

M5L=NormalizarDoble(iLow(ed,PERIOD_M5,1),Dígitos);

if(M5L<M5maBIG_1){ordersend(520);} ¡probó variantes como---- ((M5L<M5maBIG_1))__((M5L)<(M5maBIG_1))__((M5L)<(M5maBIG_1)))---- tampoco funciona!

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

op=NormalizarDoble(Ask,Dígitos);sl=NormalizarDoble(op-62*kio*Punto,Dígitos);tp=NormalizarDoble(op+54*kio*Punto,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);}}

Todo funciona cuando la prueba en el mismo tiempo M5, pero sólo cambiar (cuando la prueba, por ejemplo en H1), el resultado también cambia, ¿cómo escribir correctamente? ¡¡¡Gracias!!!

 

MaperiodAVTO = 750 / Period();

laveosa:


Buenos días a todos .... Señores ayúdenme con una pregunta sobre un parámetro de tiempo. El problema es el siguiente, tengo un criterio de entrada con variables que se fijan en un determinado parámetro de tiempo.

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

M5L=NormalizarDoble(iLow(ed,PERIOD_M5,1),Dígitos);

Por ejemplo, así:

 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 ejemplo, así:

int MaperiodAVTO = 750 / Period();

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



¿Por qué 750?
 
laveosa:

¿Por qué 750?

Simplemente le gusta ese número.