Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 592

 

Por favor, informe porque adicionar a string #property strict impede que flechas sejam desenhadas, aqui está todo o código

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

//| revisão oscilante.mq4 |

//| Copyright 2018, MetaQuotes Software Corp. |

//| https://www.mql5.com |

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

#direitos autorais "Copyright 2018, MetaQuotes Software Corp."

#link da propriedade "https://www.mql5.com"

#propriedade versão "1.00"

#janela_indicadora de propriedade_separarate_window

#property indicator_buffers 5

# indicadores de propriedade_plots 4

//... - Sinalizador de trama

#indicador de propriedade_label1 "Signaler

#property indicator_type1 DRAW_LINE

#indicador de propriedade_color1 clrRed

#property indicator_style1 STYLE_SOLID

#largura_do_indicador de propriedade1 1

//... - trama Z

#indicador de propriedade_label2 "Z

#property indicator_type2 DRAW_LINE

#indicador de propriedade_color2 clrBeige

#property indicator_style2 STYLE_DOT

#largura_do_indicador de propriedade2 1

//--- Lote Bay

#indicador de propriedade_label3 "Bay

#property indicator_type3 DRAW_ARROW

#Indicador de propriedade_color3 clrLightSkyBlue

#property indicator_style3 STYLE_SOLID

#largura_do_indicador de propriedade3 1

//...- Lote Venda

#indicador de propriedade_label4 "Sell" (Vender)

#property indicator_type4 DRAW_ARROW

#indicador de propriedade_color4 clrDeepPink

#property indicator_style4 STYLE_SOLID

#largura_do_indicador de propriedade4 1

//--- parâmetros de entrada

input int PCCI=14; // período indicador PCCI

entrada duplo KCCI=1,1; // fator de ajuste

input int PMOM=14; //período do indicador de Momentum

input int KMOM=111111; // fator de suavização

input int PATR=14; // período indicador ATR

input int KATR=11111111; // fator de suavização

input int PFOR=14; // período do indicador Forse

entrada na KFOR=1111; // fator de suavização

input int PTVR=12; // período p do indicador TVI

input int PTVS=12; // período c do indicador TVI

entrada no PTVU=5; //período no indicador TPI

input int KTVl=111; // coeficiente de nivelamento

input int POSF=12; // período do indicador rápido AOS

entrada no POSS=26; // período do slot indicador AOS

input int POSZ=9; //pequeno período do indicador AOS

entrada na KAOS=11111111; // fator de suavização

entrada no KAD=111; //fator de deslocamento do indicador AOS

entrada dupla KK=2,0; // filtro para setas

input int Emenda=20; //desenhar setas na janela indicadora em formato digerível

//--- amortecedores indicadores

Double SignalerBuffer[];

duplo Z_Buffer[];

duplo BayBuffer[]; duplo BayBuffer[];

duplo SellBuffer[]; duplo SellBuffer[];

PatchBuffer duplo[];

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

//| Função de inicialização do indicador personalizado |

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

int OnInit()

{

IndicatorSetInteger(INDICADOR_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("Basement signaler(" +(string) PATR + ")");

//---

return(INIT_SUCCEED);

}

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

//| Função de iteração de indicador personalizada |

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

int OnCalculate(const int taxas_total,

const int prev_calculado,

constant 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=taxas_total-prev_calculadas ;

duplo cci,atr,mãe,forc,ao,ac,ad,tvi,osma ;

//---- definir os parâmetros de contagem

if(prev_calculated==0)limit--;

senão limite++;

//---- conta

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]-Amenda;

if(Z_Buffer[i]<SignalerBuffer[i]&&Z_Buffer[i+1]>SignalerBuffer[i+1]&&PatchBuffer[i]>KK)

SellBuffer[i]=SignalerBuffer[i]+Amendment;

}

//--- valor de retorno de pré_cálculo para a próxima chamada

retorno(taxas_total);

}

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


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

Obrigado...
 
Alguém pode me dizer o que fazer se, durante um teste EA, ele se recusar a copiar buffers?
 
Roman Sharanov:
Alguém pode me dizer o que fazer se, durante um teste EA, ele se recusar a copiar buffers?

Identificar a causa.

 
Artyom Trishkin:

Identificar a causa.

E o que poderia ser? É o tamanho do código? Eu desabilitei toda a lógica propositadamente, deixei apenas cópia de buffer e nada

 
Roman Sharanov:

E o que poderia ser? É o tamanho do código? Eu desabilitei toda a lógica propositadamente, deixei apenas cópia de buffer e nada

Todos são telepáticos no fim de semana...
 

Um erro de memória fora da memória aparece ao executar um teste (não inicia). Como consertá-lo?

Após reiniciar o terminal, o teste começa e depois de alguns testes, ele fica novamente fora da memória.

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

Um erro de memória fora da memória aparece ao executar um teste (não inicia). Como consertá-lo?

Após reiniciar o terminal, o teste começa, e depois de vários testes fora da memória novamente.

O programa que você está testando consome toda a sua memória. Procure por erros nele. Verifique os logs "Journal" e "Expert Advisors" na demonstração (não no testador) - o que diz lá? Talvez diga algo sobre o vazamento de memória durante a mudança de horário.

Não vou adivinhar mais sem o código.

 
Artyom Trishkin:

O programa que você está testando consome toda a sua memória. Procure por erros nele. Veja os logs "Log" e "Expert Advisors" na demonstração (não no testador) - o que diz ali? Talvez diga algo sobre o vazamento de memória durante a mudança de horário.

Eu não adivinharia mais sem o código.

Há muitos objetos não removidos nos registros após o término dos testes. Vários milhares... Isso é um problema?

 
Juer:

Há uma pilha de objetos mal-sucedidos nos registros após o término dos testes. Vários milhares... É esse o problema?

É aqui que eles serão capazes de responder com certeza.

Razão: