Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 592

 

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);

}

//+------------------------------------------------------------------+


Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Машинное обучение роботов Привет всем, я занимаюсь...
 
Alekseu Fedotov:
Al vendedor de este indicador.

Gracias...
 
¿Alguien puede decirme qué hacer si durante una prueba de EA se niega a copiar los buffers?
 
Roman Sharanov:
¿Alguien puede decirme qué hacer si durante una prueba de EA se niega a copiar los buffers?

Identificar la causa.

 
Artyom Trishkin:

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

 
Roman Sharanov:

¿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

Todo el mundo es telepático el fin de semana...
 

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.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Juer:

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.

 
Artyom Trishkin:

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?

 
Juer:

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.

Razón de la queja: