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

 
Vitaly Muzichenko:

:D


Obrigado, Bom Homem!

 

Aqui é mais detalhado

 
Ras al Ghul:

Ou sua variante é muito complicada, ou não entendo o valor de que está falando...


Na minha variante, a peça destacada é juramentada:

Array' - array necessário.

Não colocamos o valor indicador na matriz desta forma?



Note que obviamente deve haver mais de um valor na matriz para um cálculo correto.Vitaly Muzichenko apontou corretamente o erro, não vou repeti-lo mais uma vez.

 
voron_026:

Sim, você está certo. Os retângulos são desenhados nas mesmas coordenadas. Resolveu o problema da seguinte forma:

Adicionada a variávelTimeFrame, para mudança rápida do período de tempo calculado

Bem, sim, é mais ou menos isso mesmo.

Observe o sinal de igualdadeUseDojiCandles.

if(UseDojiCandles == true && Doji() == 1 && New_Bar == true)
 
Aleksey Vyazmikin:

Sim, é mais ou menos isso mesmo.

Observe o sinal de igualdade deUseDojiCandles

Então você expande a resposta que há uma comparação "==" e há uma atribuição "=".

 
Vitaly Muzichenko:

Então você expande a resposta, que há uma comparação "==" e há uma atribuição "=".


O homem sabe claramente, ele apenas fez uma gralha.

 
Aleksey Vyazmikin:

O homem sabe claramente, ele apenas fez uma gralha.


Sim, isso mesmo, obrigado pela dica. Já foi corrigido.

Estou trabalhando nisso.

Engatou o martelo e o padrão de martelo invertido
 
voron_026:

Sim, isso mesmo, obrigado pela dica. Já o consertamos.

Estou trabalhando nisso agora.

Eu conectei os padrões "Martelo" e "Martelo Invertido".

Tenho a suposição de que padrões semelhantes funcionarão de forma diferente quando os preços estiverem se movendo para o norte e para o sul - acho que isto deve ser levado em consideração ao interpretá-los.

 
  for(int i=0; i<limit; i++) {
    Last[i] = Symbol1_Vol*Vol1*iClose(Symbol1_Name,0,iBarShift(Symbol1_Name,0,Time[i])) - 
              Symbol2_Vol*Vol2*iClose(Symbol2_Name,0,iBarShift(Symbol2_Name,0,Time[i]));



 for(int i=0; i<limit; i++) {
    if(ButtonSt) { // кнопка выбора, отображать Bands, или Envelopes
     MA[i]=iMAOnArray(Last,0,Env_Period,0,MODE_SMA,i);
     LineUp[i]=iEnvelopesOnArray(Last,0,Env_Period,MODE_SMA,0,Env_Dev,MODE_UPPER,i);
     LineDn[i]=iEnvelopesOnArray(Last,0,Env_Period,MODE_SMA,0,Env_Dev,MODE_LOWER,i);
    } else {
     MA[i]=iMAOnArray(Last,0,BB_Period,0,MODE_SMA,i);
     LineUp[i]=iBandsOnArray(Last,0,BB_Period,BB_Dev,0,MODE_UPPER,i);
     LineDn[i]=iBandsOnArray(Last,0,BB_Period,BB_Dev,0,MODE_LOWER,i);
    }
  }

Tecnicamente, como fazer isso parece ser claro.

for(int i=0; i<limit; i++) {
    RSI[i] = iRSI(Symbol(),TimeFrame,14,PRICE_CLOSE,i);
  }

for(int i=0; i<limit; i++) {
    BandsMn[i]=iBandsOnArray(RSI,0,BB_Period,BB_Dev,0,MODE_MAIN,i);
    BandsUp[i]=iBandsOnArray(RSI,0,BB_Period,BB_Dev,0,MODE_UPPER,i);
    BandsDn[i]=iBandsOnArray(RSI,0,BB_Period,BB_Dev,0,MODE_LOWER,i);
  }

Mas a essência do processo não é clara:

por exemplo, que valor deve ter o limite e por que exatamente esse valor?

A julgar pela variável i no final das funções de indicador, estamos inserindo dados com um turno.

Ou seja, o limite deve depender do período do indicador?


Obrigado por sua atenção e paciência.

 
Ras al Ghul:

Tecnicamente, como fazer isso parece ser claro.

Mas a essência do processo não é clara:

por exemplo, que valor deve ter o limite e por que exatamente esse valor?

A julgar pela variável i no final das funções de indicador, introduzimos os dados com um turno.

Ou seja, o limite deve depender do período do indicador?


Obrigado por sua atenção e paciência.

Limite - o número de barras no gráfico; ele precisa exibir o indicador até o final do histórico ao rolar o histórico.