Ajuda na codificação - página 178

 

Precisa de ajuda para codificar EA - >10% de lucro/mês

Olá a todos, eu tenho uma estratégia muito simples que parece ser bastante segura e dar um bom rendimento, mas é horrivelmente cansativa à mão. É por isso que eu gostaria que alguém me ajudasse a codificá-la, a fim de economizar o esforço e poder negociar 24 horas. A estratégia é realmente simples: colocar Comprar STOPS e Vender STOPS 400 pips acima e abaixo do preço atual. A distância entre linhas deve poder ser escolhida externamente, assim como o TP em pips e os Lots (a partir de 0,01). O SL é opcional e também externo. O sistema é deixado para funcionar até que um lucro alvo global seja alcançado (também externo). Nesse momento, o programa vende tudo, cancela todos os pedidos pendentes e começa a funcionar novamente a partir do zero. Como eu disse, é muito simples. Pura matemática, sem laggards (indicadores). Com esta estratégia, tenho obtido cerca de 10% de lucro por mês, dependendo das condições do mercado e da gestão do dinheiro. A longo prazo, é uma aposta muito segura, mas realmente cansativa de executar manualmente. Eu uso EURUSD, mas se possível seria uma vantagem poder negociar vários pares ao mesmo tempo, apenas para diversificar (embora não haja real necessidade disso, considerando os resultados que tive até agora).

 

há alguém que possa me ajudar, eu fiz um código como este:

double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERÍODO_H1,14,PREÇO_CLOSE,1);

Tendência int;

if (ccia>ccib&&ccia<=-150) Tendência=0;

if (ccia=150) Tendência=1;

do código que eu queria Tendência valor só mudará quando a condição. assim quando as condições Tendência valor = 0 só será mudado pelo segundo IF. embora o valor de cci esteja entre -150 e 150.

mas por que sempre recebo um valor 0 (zero) para o valor da Tendência.

 
Q_Mouze:
há alguém que possa me ajudar, eu fiz um código como este:

ccia dupla = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

duplo ccib = iCCI(Symbol(),PERÍODO_H1,14,PREÇO_CLOSE,1);

Tendência int;

if (ccia>ccib&&ccia<=-150) Tendência=0;

if (ccia=150) Tendência=1;

por que sempre obtenho o valor 0 (zero) ao valor da Trend.

Mude para este (para evitar ter o mesmo valor quando não houver condições) :

double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

int Trend=-1;

if (ccia>ccib&&ccia<=-150) Trend=0;

if (ccia=150) Trend=1;

Em um momento o CADCHF está mostrando um valor diferente do valor padrão -1

 
mladen:
Mude-o para este (para evitar ter o mesmo valor quando não houver condições) :
double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

int Trend=-1;

if (ccia>ccib&&ccia<=-150) Trend=0;

if (ccia=150) Trend=1;
Em um momento o CADCHF está mostrando um valor diferente do padrão -1

Obrigado mladen, mas

duplo CCIA = ICCI (Símbolo (), PERÍODO_H1, 14, PREÇO_CLOSE, 0);

duplo CCIB = ICCI (Símbolo (), PERÍODO_H1, 14, PREÇO_CLOSE, 1);

Tendência int;

if (CCIA> CCIB CCIA && condição 1

se (CCIA = 150) Tendência = 1; =====> condição 2

do código que eu quero se a condição 1 Valor da tendência for alterada para 0, esta condição permanecerá até que ocorram as 2 condições que mudarão o valor da tendência sendo 1.

mas isso acontece O valor da tendência é sempre 0 apenas quando na condição 2, quando o valor de cci passou ou está abaixo de 100 a tendência de valor é alterada novamente para 0.

 
Q_Mouze:
Obrigado mladen, mas

duplo CCIA = ICCI (Símbolo (), PERÍODO_H1, 14, PREÇO_CLOSE, 0);

duplo CCIB = ICCI (Símbolo (), PERÍODO_H1, 14, PREÇO_CLOSE, 1);

Tendência int;

if (CCIA> CCIB CCIA && condição 1

se (CCIA = 150) Tendência = 1; =====> condição 2

do código que eu quero se a condição 1 Valor da tendência for alterada para 0, esta condição permanecerá até que ocorram as 2 condições que mudarão o valor da tendência sendo 1.

mas isso acontece O valor da tendência é sempre 0 somente quando na condição 2, quando o valor de cci passou ou está abaixo de 100 a tendência de valor mudou novamente para 0.

Q_Mouze

Para fazer isso, uma solução seria usar uma variável estática para tendências, em vez

Então o código seria o seguinte :

double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

static int Trend=-1;

if (ccia>ccib&&ccia<=-150) Trend=0;

if (ccia=150) Trend=1;

Neste caso, a atribuição a -1 aconteceria somente na primeira vez em que o código fosse executado. Depois disso, quando novos tiquetaques chegassem, o valor da Tendência seria "herdado" de um tique anterior e isso é o que você está procurando

_____________________

Se você deseja fazer isso em valores históricos (como um indicador), então você precisaria declarar Tendência como um buffer e então você poderia fazer isso também para valores passados

 

Todos os dias bons.

Ajude, por favor.

Além disso, os sinais do indicador DSS Bressert + ahtf_ (FILTRO)??

... fazendo isso:

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

aTrend[2];

aTrend[0] =iCustom(NULL, 0, "DSS Bressert + ahtf_(FILTER)", 6, 0);

aTrend[1] =iCustom(NULL, 0, "DSS Bressert + ahtf_(FILTER)", 6, 1);

se (aTrend[1] < aTrend[0]) // comprar

{

Agora a linha vertical azul

}

se (aTrend[1] > aTrend[0]) // vender

{

Agora a linha vertical vermelha

}

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

grande dificuldade em receber sinal. Por favor, ajude.

Sinto muito pelo meu inglês ...

Obrigado.

Imagine e anexe o indicador.

Arquivos anexados:
 
shtopr:
Todos os dias bons.

Ajude, por favor.

Além disso, os sinais do indicador DSS Bressert + ahtf_ (FILTRO)??

fazendo isso:

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

aTrend[2];

aTrend[0] =iCustom(NULL, 0, "DSS Bressert + ahtf_(FILTER)", 6, 0);

aTrend[1] =iCustom(NULL, 0, "DSS Bressert + ahtf_(FILTER)", 6, 1);

se (aTrend[1] < aTrend[0]) // comprar

{

Agora a linha vertical azul

}

se (aTrend[1] > aTrend[0]) // vender

{

Agora a linha vertical vermelha

}

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

grande dificuldade em receber sinal. Por favor, ajude.

Sinto muito pelo meu inglês ...

Obrigado.

Imagine e anexe o indicador.

Para ver quando os sinais estão ligados, desligue a interpolação

Além disso, utilize o buffer 6 para isso. Quando é 1 é tendência para cima, quando é -1 é tendência para baixo e quando é tendência atual != tendência anterior há uma mudança na tendência e há um sinal

 
mladen:
Para ver quando os sinais estão ligados, desligue a interpolação também, use o buffer 6 para isso. Quando é 1 é tendência para cima, quando é -1 é tendência para baixo e quando é tendência atual != tendência anterior há uma mudança na tendência e há um sinal

Eu não consegui ((.

Por favor.

Se isto for possível ...

Mostrar código.

Obrigado.

P.S.

desculpe pela tradução

 
shtopr:
Eu não consegui ((.

Por favor.

Se isto for possível ...

Mostrar código.

Obrigado.

P.S.

desculpe pela tradução

Em sua foto você está mostrando um gráfico de 1 hora e o valor do indicador diário

Na chamada iCustom() você está usando o cronograma atual. Se você quiser usar o período de tempo diário, você deve especificá-lo na chamada iCustom() (caso contrário, nunca será o mesmo)

Além disso, você está usando uma chamada de bar aberto. Se você planeja usar uma chamada de bar aberto da EA, então você deve saber que o uso de uma barra de bar aberto no back-teste dará resultados inválidos (sempre "conhecerá o futuro"), então você não deve usar uma chamada de bar aberto se você planeja usar um bar aberto

 

Oi mladen,

você poderia gentilmente ajudar a converter essas duas versões para a versão rsi separadamente? Tento mas não sei como fazê-lo, ou seja, rsi de kairi, rsi de cci? muito obrigado pela ajuda.

Arquivos anexados:
cci.mq4  4 kb
kairi.mq4  8 kb
Razão: