Como codificar? - página 39

 

mish

Tive um momento de tempo livre, e fiz uma tentativa de capturar sua intenção como eu a entendi.

Arquivos anexados:
advicerr.txt  2 kb
 

Obrigado

Obrigado ralph.ronnquist

estas funções são exatamente o que eu preciso e seriam úteis para outros depois de uma mesma função

Eu fui pego de outra forma teria agradecido a você antes, especialmente porque foi preciso esforço

Existe uma maneira simples de mudar a função para trabalhar no testador de estratégias? Sei que o resultado de trabalhar com apenas uma moeda no testador é quase inútil, exceto que imita muito grosso modo o que eu preciso para fazer a matemática correta, qualquer ajuda é apreciada e eu nunca teria trabalhado o código em ordem curta, então mais uma vez obrigado!

 

DT_ZZ.mq4 baseada na EA

Estou tendo um pouco de dificuldade com este aqui.

Eu tenho o indicador DT_ZZ.mq4 e pelo que vejo é muito promissor. Eu sei que este indicador refile e aqui está como eu o vejo funcionando.

Se uma seta e uma seção forem iguais, então espere que a barra feche, então compre/venda de acordo.

Alguém acha que pode ajudar com isso? (O código está afixado abaixo)

//+

//| DT_ZZ.mq4 |

+

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

// otimizado por Rosh

#janela_do_cartão_indicador de propriedade

#property indicator_buffers 3

#indicador de propriedade_color1 Verde

#código de propriedade_color2 Azul

#indicador de propriedade_cores3 Vermelho

//---- parâmetros indicadores

externo int ExtDepth=12;

extern int calculateLevel=2;

//---- buffers indicadores

duplo zzL[];

duplo zzH[];

duplo zz[];

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

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

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

int init()

{

// IndicadorBuffers(3);

//---- definições de desenho

SetIndexStyle(0,DRAW_SECTION);

SetIndexStyle(1,DRAW_ARROW);

SetIndexStyle(2,DRAW_ARROW);

SetIndexArrow(1,159);

SetIndexArrow(2,159);

//---- indicator buffers mapping

SetIndexBuffer(0,zz);

SetIndexBuffer(1,zzH);

SetIndexBuffer(2,zzL);

SetIndexEmptyValue(0,0,0.0);

SetIndexEmptyValue(1,0,0.0);

SetIndexEmptyValue(2,0.0.0);

//---- indicador nome curto

IndicatorShortName("DT_ZZ("+ExtDepth+")");

//---- inicialização feita

retorno(0);

}

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

//| |

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

int start()

{

int i,shift,pos,lasthighpos,lastlowpos,curhighpos,curlowpos;

duplo curlow,curhigh,lasthigh,lasthigh,lastlow;

duplo mínimo, máximo;

int counted_bars=IndicatorCounted();

se (counted_bars==0)

{

ArrayInitialize(zz,0.0);

ArrayInitialize(zzL,0.0.0);

ArrayInitialize(zzH,0.0.0);

lasthighpos=Bars; lastlowpos=Bars;

lastlow=Baixo; lasthigh=Alto;

Print("limit=",Bars-ExtDepth);

for(shift=Bars-ExtDepth; shift>=0; shift--)

{

curlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,shift);

curlow=Low[curlowpos];

curhighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,shift);

curhigh=High[curhighpos];

//------------------------------------------------

if( curlow>=lastlow ) { lastlow=curlow; }

senão

{

//???? ????

if( lasthighpos>curlowpos )

{

zzL[curlowpos]=curlow;

///*

min=100000; pos=lasthighpos;

for(i=lasthighpos; i>=curlowpos; i--)

{

se (zzL==0,0) continuar;

se (zzL<min) { min=zzL; pos=i; }

zz=0,0;

}

zz[pos]=min;

//*/

}

lastlowpos=curlowpos;

lastlow=curlow;

}

//--- alto

if( curhigh<=lasthigh ) { lasthigh=curhigh;}

senão

{

// ???? ?????

if( lastlowpos>curhighpos )

{

zzH[curhighpos]=curhigh;

///*

max=-100000; pos=lastlowpos;

for(i=lastlowpos; i>=curhighpos; i--)

{

se (zzH==0,0) continuar;

se (zzH>max) { max=zzH; pos=i; }

zz=0,0;

}

zz[pos]=max;

//*/

}

lasthighpos=curhighpos;

lasthigh=curhigh;

}

zz[0]=Fechar[0];

}

//----------------------------------------------------------------------

}

senão

{

int pos2;

i=0;

enquanto (pos2<calculateLevel && i<Bars-1)

{

se (zz!=0 && (zzH!=0||zzL!=0)) pos2++;

i++;

}

pos2=i-1;

para (i=pos2-1;i>=0;i--)

{

zzH=0;

zzL=0;

zz=0;

}

se (zzH[pos2]!=0)

{

lasthighpos=pos2;

lasthigh=High[pos2];

lastlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,pos2);

lastlow=Baixo[lastlowpos];

}

senão

{

lastlowpos=pos2;

lastlow=Low[pos2];

lasthighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,pos2);

lasthigh=High[lasthighpos];

}

//------------------------- ????????? ??????

Imprimir("limite=",pos2-1);

for(shift=pos2-1; shift>=0; shift--)

{

curlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,shift);

curlow=Low[curlowpos];

curhighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,shift);

curhigh=High[curhighpos];

//------------------------------------------------

if( curlow>=lastlow ) { lastlow=curlow; }

senão

{

//???? ????

if( lasthighpos>curlowpos )

{

zzL[curlowpos]=curlow;

///*

min=100000; pos=lasthighpos;

for(i=lasthighpos; i>=curlowpos; i--)

{

se (zzL==0,0) continuar;

se (zzL<min) { min=zzL; pos=i; }

zz=0,0;

}

zz[pos]=min;

//*/

}

lastlowpos=curlowpos;

lastlow=curlow;

}

//--- alto

if( curhigh<=lasthigh ) { lasthigh=curhigh;}

senão

{

// ???? ?????

if( lastlowpos>curhighpos )

{

zzH[curhighpos]=curhigh;

///*

max=-100000; pos=lastlowpos;

for(i=lastlowpos; i>=curhighpos; i--)

{

se (zzH==0,0) continuar;

se (zzH>max) { max=zzH; pos=i; }

zz=0,0;

}

zz[pos]=max;

//*/

}

lasthighpos=curhighpos;

lasthigh=curhigh;

}

}

//------------------------- ????????? ??????

zz[0]=Fechar[0];

}

retorno(0);

}

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

isto pode ser alterado 4 testador de estratégia?

ralph.ronnquist

tem me proporcionado generosamente uma grande função da qual muitos podem se beneficiar, que requer seu uso.

Meu problema é que estou tão mal na programação que parece que não consigo alterá-la o suficiente 4 testador de estratégia.

Para fins de teste, apenas uma moeda é satisfatória apenas para trabalhar a matemática dos negócios sob diferentes circunstâncias com diferentes moedas.

É possível alterar o trabalho do ralph para atender a esta necessidade?

Obrigado

Arquivos anexados:
ralph.txt  2 kb
 

Em princípio, você só precisaria mudar a string "EURCHF" para ser "EURUSD". Isto é, trabalhar com "EURUSD" longo versus "EURUSD" curto.

 

Eu tentei isso

Obrigado por sua resposta, mas eu tentei não ter sucesso. O código que você forneceu ensinou muito a mim e à minha namorada sobre o pouco que sabemos sobre programação!

Muito obrigado!

 

Hmm. A única "maldade" que posso ver à partida é o teste "v == corte", que compara dois números duplos para igualdade. Talvez funcione melhor olhar apenas para os valores totais de $, e assim mudar "euprofit", "ecprofit", "cut" e "v" para ser do tipo "int"?

 
NTrader:
Pergunta trivial: Estou escrevendo um novo Indicador Pessoal pela primeira vez. Não consigo visualizar meus logs que faço com o comando Print ("...") no método start{}. Onde eu posso visualizá-los no MetaTrader 4?

Ok, eu uso o comando Comentário().

 

Dumbo aqui

Olá a todos

Este é um grande fio condutor para alguém como eu, que não sabe nada de programação. Tem muitas informações úteis e muitos pequenos pedacinhos de código que eu poderia copiar e brincar.

Espero que alguém possa me ajudar com este peice. Quero fazer um EA baseado no preço. O que devo inserir no código para dizer o seguinte:

1) Quero que a EA olhe o preço às 20:00 no gráfico de horas e veja qual é a sua relação com os 100sma.

2) Se o preço estiver acima dos 100sma, quero que ele abra 2 ordens de compra em determinado nível.

3) Estes níveis são baseados no preço de fechamento da vela de 16:00, então se a vela de 16:00 for 1,2000, quero que ela abra uma compra em 1,1120 e 1,2080

Eu tenho as paradas e as paradas de arrasto e os níveis de lucro todos trabalhados e coisas assim, todos os códigos tirados deste thred. Portanto, agradeço àqueles que os postaram. I

Ficarei eternamente debatendo se alguém pudesse me ajudar aqui.

Cordiais cumprimentos

Susan

 

Ajuda

Oi, a todos

Tentei criar uma EA e recebi a seguinte mensagem de erro:

Fim_do_programa' - parêntese final '} esperado C:\...Minha_Primeira_EA.mq4(96,1)

Eu cliquei duas vezes, cheguei à linha, depois verifiquei com parênteses de abertura antes dela, e ainda não sei onde cometi um erro.

Esta foi a segunda EA que tentei, com a mesma mensagem de erro, com base no mesmo indicador.

Obrigado.

Razão: