Como codificar? - página 270

 

IndicadorContado e mantendo o buffer indicador em sincronia.

Hi,

Minha pergunta é sobre o deslizamento do buffer no indicador personalizado. Eu perguntei em outro fórum, mas sem sucesso.

Por exemplo

Código:

#define MAX_LOOK_BACK 5

#property indicator_minimum 0

#property indicator_maximum 100

#property indicator_color1 DodgerBlue

#property indicator_separate_window

double rsiBuf[];

int start()

{

int limit;

int counted_bars = IndicatorCounted();

//---- check for possible errors

if(counted_bars < 0)

return(-1);

//---- the last counted bar will be recounted

if(counted_bars > 0)

counted_bars--;

limit=Bars-counted_bars;

//---- main loop

Print("indicator limit: ", limit);

if(MAX_LOOK_BACK < limit)

limit = MAX_LOOK_BACK;

//Calculate from right to left

for(int i = 0; i < limit; i++)

{

rsiBuf = iRSI(Symbol(), NULL, 14, PRICE_CLOSE, i);

}

}

Enquanto estiver rodando o indicador calculará os últimos valores de RSI das últimas 5 barras. (Coloco um valor máximo MAXLOOOK_BACK para testes fáceis) Se, por exemplo, em uma situação que limite===2 (e limite===2 acontece muito em meus testes ao chamar via iCustom em um EA), então ele calculará os valores das barras 0 e 1 e escreverá para RSI[0] e RSI[1] respectivamente e não tocará no resto do buffer. Cada indicador personalizado que eu vi é escrito desta maneira. Não deveríamos deslizar o buffer se o limite < MAX_LOOK_BACK ? enquanto ele sobrescreve o RSI[0] e RSI[1] mas os valores anteriores destes elementos deveriam estar em RSI[2] e RSI[3] estou certo?

Para visualizar :

Tick=0 AND limit = 5 ==> RSI[0] = 33,33 RSI[1] =44,44 RSI[2]=55,55 RSI[3]=66,66 RSI[4] = 77,77

Agora assuma que os últimos 2 valores de RSI são 88,88 e 99,99 e a matriz será parecida com a abaixo:

Tick=1 AND limit = 2 ==> RSI[0] = 88,88 RSI[1] =99,99 RSI[2]=55,55 RSI[3]=66,66 RSI[4] = 77,77

MAS não deveria ser isto:

Tick=1 E limite = 2 ==> RSI[0] = 88,88 RSI[1] =99,99 RSI[2]=33,33 RSI[3]=44,44 RSI[4] = 55,55

Quando 2 novas barras vêm, não deveríamos deslizar os valores das barras anteriores por 2? anterioresPor que todos os indicadores escritos desta forma e não há deslizamento de valores? E por que eles traçam corretamente as linhas de tendência.

 

Estou trabalhando em um EA que usa a banda Keltner para sair de uma posição (tanto para lucro quanto para prejuízo), entretanto, a qualquer momento em que eu desço em média com 2 lotes, o EA ignora a primeira entrada. Existe alguma solução para esta entrada do BESIDES com um novo gráfico? Obrigado

Arquivos anexados:
 
mezarashii:
Estou trabalhando em uma EA que usa a banda Keltner para sair de uma posição (tanto para lucro quanto para prejuízo), entretanto, a qualquer momento em que eu descer em média com 2 lotes, a EA ignora a primeira entrada. Existe alguma solução para esta entrada do BESIDES com um novo gráfico? Obrigado

Coloque a ea aqui.

 

O codificador ainda não me deu o código fonte, espero que isto seja útil por direito próprio. Qualquer feedback é muito apreciado.

Arquivos anexados:
 

Pendente de exclusão condicional

Estou procurando por um roteiro ou código de exclusão condicional pendente.

Basicamente quero ser capaz de executar:

IF Ask é 200MA H1

Manter qualquer pedido pendente aberto/vivo abaixo do 200MA

Alguma idéia?

 
 
 

Obter preços semanais abertos por 10 pares ao mesmo tempo

Olá, sou novo no MT4. Estou tentando automatizar minha técnica escrevendo um roteiro para acessar preços abertos semanais de 10 pares simultaneamente. Não posso usar um único EA ou script para acessar um gráfico semanal, um a um. Alguém pode me aconselhar qual é a melhor maneira de fazer isso? Muito obrigado .....

 
novalight:
Olá, sou novo no MT4. Estou tentando automatizar minha técnica escrevendo um roteiro para acessar os preços semanais abertos de 10 pares ao mesmo tempo. Não posso usar um único EA ou script para acessar um gráfico semanal, um a um. Alguém pode me aconselhar qual é a melhor maneira de fazer isso? Muito obrigado .....

Hi,

você precisa combinar a função iOpen.

Por exemplo, vamos dizer que você quer mostrar em comentários preços abertos de gbpusd, eurusd e usdjpy

então o trecho de código ficaria assim:

double openPair1 = iOpen("EURUSD",PERÍODO_W1,0);

double openPair2 = iOpen("GBPUSD",PERÍODO_W1,0);

double openPair3 = iOpen("USDJPY",PERÍODO_W1,0);

Comentário("EURUSD semanalmente aberto: "+openPair1+\nGBPUSD aberto semanalmente: "+openPair1+"\nUSDJPY aberto semanalmente: "+openPair1+");

 

Eu prefiro ter os pares como entrada junto com 2 entradas adicionais.

as entradas de prefixo e sufixo evitam o aborrecimento quando os corretores adicionam algo ao nome do par básico.

par_prefixo_de-fio_de-fio externo = "";

par_sufixo de corda externa = ""; // digite m para IBFX mini contas

par de cordas externas1 = "EURUSD";

par de corda externa2 = "GBPUSD";

par de corda externa3 = "USDJPY";

par de corda myPair1, myPair2, myPair3;

int init()

{

myPair1 = par_prefixo + par1 + par_sufixo;

myPair2 = par_prefixo + par2 + par_sufixo;

myPair3 = par_prefixo + par3 + par_sufixo;

return(0);

}

int start()

{

double openPair1 = iOpen(myPair1, PERIOD_W1,0);

double openPair2 = iOpen(myPair2, PERÍODO_W1,0);

double openPair3 = iOpen(myPair3, PERÍODO_W1,0);

Comentário(par1 + "semanalmente aberto": +openPair1+"\n" + par2 + "aberto semanalmente": "+openPair2+"\n" + par3 " semanalmente aberto: "+openPair3");

}

É claro que eu usaria matrizes para isto quando utilizasse 10 pares.

Robert Hill, também conhecido como MrPip