Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 592
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
Por favor, aconsejar por qué la adición de la cadena #property estricta impide que las flechas se dibujan, aquí está todo el código
//+------------------------------------------------------------------+
//| revisión oscilante.mq4 |
//| Copyright 2018, MetaQuotes Software Corp.
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#enlace de propiedad "https://www.mql5.com"
#versión de la propiedad "1.00"
#property indicador_separar_ventana
#property indicator_buffers 5
#property indicator_plots 4
//--- plot Signaler
#property indicator_label1 "Señalizador"
#property indicator_type1 DRAW_LINE
#property indicator_color1 clrRed
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
//--- trazar Z
#property indicator_label2 "Z"
#property indicator_type2 DRAW_LINE
#property indicator_color2 clrBeige
#property indicator_style2 STYLE_DOT
#property indicator_width2 1
//--- plot Bay
#property indicator_label3 "Bahía"
#property indicator_type3 DRAW_ARROW
#property indicator_color3 clrLightSkyBlue
#property indicator_style3 STYLE_SOLID
#property indicator_width3 1
//--- parcela Vender
#property indicator_label4 "Vender"
#property indicator_type4 DRAW_ARROW
#property indicator_color4 clrDeepPink
#property indicator_style4 STYLE_SOLID
#property indicator_width4 1
//--- parámetros de entrada
input int PCCI=14; // periodo indicador PCCI
input double KCCI=1.1; //factor de ajuste
input int PMOM=14; //indicador de periodo de impulso
input int KMOM=1111; // factor de suavización
input int PATR=14; // período del indicador ATR
input int KATR=111111; // factor de suavización
input int PFOR=14; // periodo del indicador Forse
input int KFOR=1111; // factor de suavización
input int PTVR=12; // periodo p del indicador TVI
input int PTVS=12; // periodo c del indicador TVI
input int PTVU=5; //periodo en el indicador TPI
input int KTVl=111; // coeficiente de nivelación
input int POSF=12; // periodo del indicador rápido AOS
input int POSS=26; // período de la ranura del indicador AOS
input int POSZ=9; /periodo pequeño del indicador AOS
input int KAOS=111111; // factor de suavización
input int KAD=111; //factor de desplazamiento del indicador AOS
input double KK=2.0; // filtro para flechas
input int Enmienda=20; //dibujar flechas en la ventana del indicador en un formato digerible
//--- topes indicadores
doble SignalerBuffer[];
doble Z_Buffer[];
double BayBuffer[]; double BayBuffer[];
double SellBuffer[]; double SellBuffer[];
doble PatchBuffer[];
//+------------------------------------------------------------------+
//| Función de inicialización de indicadores personalizada |
//+------------------------------------------------------------------+
int OnInit()
{
IndicadorSetInteger(INDICATOR_DIGITS,0);
SetIndexBuffer(0,SignalerBuffer);
SetIndexBuffer(1,Z_Buffer);
SetIndexBuffer(2,BayBuffer);
SetIndexBuffer(3,SellBuffer);
SetIndexBuffer(4,PatchBuffer);
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexStyle(2,DRAW_ARROW);
SetIndexStyle(3,DRAW_ARROW);
SetIndexArrow(2,241);
SetIndexArrow(3,242);
SetIndexEmptyValue(2,0.0);
SetIndexEmptyValue(3,0.0);
IndicatorShortName("Señalador de sótano(" +(cadena) PATR + ")");
//---
return(INIT_SUCCEED);
}
//+------------------------------------------------------------------+
//| Función de iteración de indicadores personalizada |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculado,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
int i , limit=tasa_total-prev_calculada ;
doble cci,atr,mom,forc,ao,ac,ad,tvi,osma ;
//---- establecer los parámetros de recuento
if(prev_calculado==0)limit--;
si no, límite++;
//---- contar
for(i=limit-1; i>=0; i--)
{
cci=iCCI(NULL,0,PCCI,PRICE_TYPICAL,i)/KCCI;
mom=(iMomentum(NULL,0,PMOM,PRICE_TYPICAL,i)-100)*KMOM ;
forc=iForce(NULL,0,PFOR,MODE_SMA,PRICE_TYPICAL,i)*KFOR;
tvi=iCustom(NULL,0, "TVI_v2",PTVR,PTVS,PTVU,4,i)*KTVl ;
osma=iOsMA(NULL,0,POSF,POSS,POSZ,PRICE_TYPICAL,i)*KAOS;
atr=iATR(NULL,0,PATR,i)*KATR;
ao=iAO(NULL,0,i)*KAOS ;
ac=iAC(NULL,0,i)*KAOS ;
ad=iAD(NULL,0,i)/KAD ;
SignalerBuffer[i]=(cci+mom+forc+tvi+osma+atr+ao+ac+ad)/9 ;
}
for(i=limit-1; i>=0; i--)
{
Z_Buffer[i] = (SignalerBuffer[i]+SignalerBuffer[i-1])/2 ;
PatchBuffer[i] = MathAbs(SignalerBuffer[i]-Z_Buffer[i]) ;
}
for(i=0; i<limit && !IsStopped(); i++)
{
if(Z_Buffer[i]>SignalerBuffer[i]&&Z_Buffer[i+1]<SignalerBuffer[i+1]&&PatchBuffer[i]>KK)
BayBuffer[i]=SignalerBuffer[i]-Enmienda;
if(Z_Buffer[i]<SignalerBuffer[i]&&Z_Buffer[i+1]>SignalerBuffer[i+1]&&PatchBuffer[i]>KK)
SellBuffer[i]=SignalerBuffer[i]+Enmienda;
}
//--- devuelve el valor de prev_calculado para la siguiente llamada
return(rates_total);
}
//+------------------------------------------------------------------+
Al vendedor de este indicador.
¿Alguien puede decirme qué hacer si durante una prueba de EA se niega a copiar los buffers?
Identificar la causa.
Identificar la causa.
¿Y qué podría ser? ¿Es el tamaño del código? Desactivé a propósito toda la lógica, dejé sólo la copia del buffer y nada
¿Y qué podría ser? ¿Es el tamaño del código? Desactivé a propósito toda la lógica, dejé sólo la copia del buffer y nada
Aparece un error de falta de memoria al ejecutar una prueba (no se inicia). ¿Cómo solucionarlo?
Después de reiniciar el terminal, la prueba se inicia y después de algunas pruebas se queda sin memoria de nuevo.
Aparece un error de falta de memoria al ejecutar una prueba (no se inicia). ¿Cómo solucionarlo?
Después de reiniciar el terminal, la prueba se inicia, y después de varias pruebas fuera de la memoria de nuevo.
El programa que estás probando se come toda tu memoria. Busque errores en él. Comprueba los registros de "Journal" y "Expert Advisors" en la demo (no en el tester) - ¿qué dice ahí? Tal vez, dice algo sobre la fuga de memoria durante el cambio de marco temporal.
No voy a adivinar más sin el código.
El programa que estás probando se come toda tu memoria. Busque errores en él. Mira los registros "Log" y "Expert Advisors" en la demo (no en el tester) - ¿qué dice allí? Tal vez, dice algo sobre la fuga de memoria durante el cambio de marco temporal.
No adivinaría más sin el código.
Hay un montón de objetos no borrados en los registros después de que la prueba haya terminado. Varios miles... ¿Es eso un problema?
Hay un montón de objetos sin éxito en los registros después de que las pruebas terminen. Varios miles... ¿Es ese el problema?
Aquí esdonde podrán responder con seguridad.