Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 236
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
... todos los pares de divisas en los que está presente el USD ...
En el código no se calcula el"margen utilizado de los fondos comerciales"... y al final de mi primer post señalé"cambiar la vista de la moneda de depósito en el probador no soluciona el problema".
En el código no se calcula el"margen utilizado de los fondos comerciales"... y al final de mi primer post señalé"cambiar el tipo de moneda de depósito en el probador no soluciona el problema".
Entonces, mis poderes telepáticos se han acabado: pon el código.
Perdón por la pregunta, sé cómo insertar un indicador externo en un EA usando un buffer... Pero en este indicador no hay un búfer, ¿cómo puedo obtener el precio superior e inferior.
//+------------------------------------------------------------------+
//| trendlinesDay.mq4 |
//| Copyright © 2008, MetaQuotes Software Corp. |
//| https://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "nsi2000"
#property link "http://www.expert-mt4.nm.ru"
//----
#property indicator_chart_window
//---- input parameters
extern int nPeriod=10;
extern int Limit=350;
double Up[];
double Dn[];
///---- int Widners Oscilator
int cnt,nCurBar=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- Output in Char
for(cnt=0; cnt<=5; cnt++)
{
ObjectCreate("WSO-"+cnt,OBJ_HLINE,0,0,0);
ObjectSet("WSO-"+cnt,OBJPROP_COLOR,Red);
if(cnt<5)
{
ObjectCreate("Trend DN-"+cnt,OBJ_TREND,0,0,0,0,0);
ObjectSet("Trend DN-"+cnt,OBJPROP_COLOR,Magenta);
}
//----
ObjectCreate("WRO-"+cnt,OBJ_HLINE,0,0,0);
ObjectSet("WRO-"+cnt,OBJPROP_COLOR,Blue);
if(cnt<5)
{
ObjectCreate("Trend UP-"+cnt,OBJ_TREND,0,0,0,0,0);
ObjectSet("Trend Up-"+cnt,OBJPROP_COLOR,Aqua);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here
for(cnt=0; cnt<=5; cnt++)
{
ObjectDelete("Trend UP-"+cnt);
ObjectDelete("Trend DN-"+cnt);
ObjectDelete("WSO-"+cnt);
ObjectDelete("WRO-"+cnt);
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//---- TODO: add your code here
double r1,r2,r3,r4,r5,r6;
int rt1,rt2,rt3,rt4,rt5,rt6;
double s1,s2,s3,s4,s5,s6;
int st1,st2,st3,st4,st5,st6;
//---- Линии сопротивления и поддержки
if(Bars<Limit) Limit=Bars-nPeriod;
for(nCurBar=Limit; nCurBar>0; nCurBar--)
{
if(Low[nCurBar+(nPeriod-1)/2]==Low[Lowest(NULL,0,MODE_LOW,nPeriod,nCurBar)])
{
s6=s5; s5=s4; s4=s3; s3=s2; s2=s1; s1=Low[nCurBar+(nPeriod-1)/2];
st6=st5; st5=st4; st4=st3; st3=st2; st2=st1; st1=nCurBar+(nPeriod-1)/2;
}
if(High[nCurBar+(nPeriod-1)/2]==High[Highest(NULL,0,MODE_HIGH,nPeriod,nCurBar)])
{
r6=r5; r5=r4; r4=r3; r3=r2; r2=r1; r1=High[nCurBar+(nPeriod-1)/2];
rt6=rt5; rt5=rt4; rt4=rt3; rt3=rt2; rt2=rt1; rt1=nCurBar+(nPeriod-1)/2;
}
}
//---- Move Object in Chart
ObjectMove("Trend DN-0",1,Time[st1],s1);
ObjectMove("Trend DN-0",0,Time[st2],s2);
//----
ObjectMove("Trend UP-0",1,Time[rt1],r1);
ObjectMove("Trend UP-0",0,Time[rt2],r2);
//----
return(0);
}
//+------------------------------------------------------------------+
Perdón por la pregunta, sé cómo insertar un indicador externo en un EA usando un buffer... En este indicador no hay un buffer, ¿cómo puedo obtener el precio superior e inferior
Tomar objetos gráficos en el gráfico con nombres "Tendencia DN-0", "Tendencia UP-0" (las líneas que indican algunos niveles del indicador) y leer los datos deseados de ellos
en el gráfico toman objetos gráficos con los nombres "Trend DN-0", "Trend UP-0" (aquellas líneas con las que el indicador marca unos niveles) y leer los datos necesarios de las mismas
por favor escriba como hacer esto en el propio indicador? y luego hacer 2 buffers de estos valores para usarlos en el EA?
¿Escribir en qué lugar tomar el precio?
por favor escriba como hacer esto en el propio indicador? y luego hacer 2 buffers de estos valores para usarlos en el EA?
escribir en qué lugar tomar el precio?
El indicador ya tiene todos los datos para calcular dos topes y dibujarlos.
Y no has sugerido cambiar el indicador, sino leer los datos de las líneas dibujadas por el indicador desde el Asesor Experto.
Sin embargo, esto impone restricciones en el uso del probador - sólo en el modo visual podrá probar el Asesor Experto.
El indicador ya tiene todos los datos para calcular los dos topes y dibujarlos.
Y no te han sugerido que cambies el indicador, sino que leas los datos de las líneas dibujadas por el indicador desde el Asesor Experto.
Sin embargo, esto impone limitaciones en el uso del probador: sólo podrá probar el Asesor Experto en modo visual.
Significa que debería escribir en el indicador
#property indicator_buffers 2
double BufferUp[], BufferDn[];
int OnInit()
{
SetIndexBuffer(0, BufferUp)
SetIndexBuffer(1, BufferDn)
}
¿Y luego exactamente con qué? ¿Tengo que enlazar estos 2 buffers?
Así que tengo que escribir en el indicador
#property indicator_buffers 2
double BufferUp[], BufferDn[];
int OnInit()
{
SetIndexBuffer(0, BufferUp)
SetIndexBuffer(1, BufferDn)
}
¿Y luego exactamente con qué? ¿Tengo que enlazar estos 2 buffers?
Mira: tienes líneas que se mueven en tu código:
Tiempo[st1], Tiempo[st2] y el precio de estos puntos de referencia s1, s2 son para una línea,
Tiempo[rt1], Tiempo[rt2], r1, r2 - para otra línea.
Utilizando la ecuación de la línea se puede calcular el valor del buffer para cada barra entre estos puntos y escribir este valor en el buffer.
Mira: tienes líneas que se mueven en tu código:
Tenemos Tiempo[st1], Tiempo[st2] y el precio de estos puntos s1, s2 - para una línea,
Tiempo[rt1], Tiempo[rt2], r1, r2 - para otra línea.
Utilizando la ecuación de la línea se puede calcular el valor del buffer para cada barra entre estos puntos y escribir este valor en el buffer.
por lo que no se puede tomar el precio de la línea sobre la barra... No sé cómo calcular la ecuación de la línea recta, si es posible, escribe cómo debería ser todo.
Y, en general, el valor no debe tomarse entre puntos, sino sobre 0 o 1 bar