Ajuda na codificação - página 54

 

Precisa de ajuda com a diversão do sono

Oi mladen

Minha exigência é que, se o comércio anterior bater em uma parada, a EA deve dormir por 24 horas. Você poderia me ajudar a codificá-lo?

 
mladen:
annbeeaAs da primeira parte de seu post : sim, essa versão será repintada (é devido a como o cálculo T3 é feito e tem um erro, por isso eu disse que é melhor usar a outra)

oi mladen, além de usar o outro que você mencionou, você poderia recodificar essa parte do indicador anexado como eu prefiro seu estilo de cruzamento, para que ele não volte a pintar passado e com o código de alerta correto?

Muito obrigado pela ajuda.

Arquivos anexados:
 

Marcas comerciais na tabela, como posso limpá-las

Eu recebo estes pontos vermelhos em meus gráficos sempre que ele coloca uma ordem. como posso desligá-los ou limpá-los. Não sei o que os está causando.

Arquivos anexados:
dots.jpg  71 kb
 

Você pode usar uma função como esta :

bool lastOrderStopLossHit(int magicNumber, string symbol, datetime& lastTime)

{

double lastClosePrice = -1;

double lastStopLoss = -1;

//

//

// reset the time of the last order

//

//

lastTime = -1;

//

//

// find the last order

//

//

for (int i=OrdersHistoryTotal()-1; i>=0; i--)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) continue;

if (OrderMagicNumber()!=magicNumber) continue;

if (OrderSymbol() !=symbol) continue;

if (OrderCloseTime()>lastTime)

{

lastTime = OrderCloseTime();

lastClosePrice = OrderClosePrice();

lastStopLoss = OrderStopLoss();

}

}

int digits = MarketInfo(symbol,MODE_DIGITS);

return (lastTime!=-1 && NormalizeDouble(lastClosePrice,digits)==NormalizeDouble(lastStopLoss,digits));

}[/PHP]

and then at the beginning of the start procedure place a code that could look like this :

[PHP] datetime lastClosedTime;

if (lastOrderStopLossHit(1,Symbol(),lastClosedTime) && (lastClosedTime+24*60*60)>TimeCurrent()) return(0);

Se você deseja uma pausa diferente de 1 dia, mude o "24*60*60" para o que você deseja

PS: Eu usei "1" para o número mágico na chamada. Substitua-o por seu número mágico real

uk_kara:
Oi mladenMeu requerimento é que, se o comércio anterior atingir a perda de carga, a EA deverá dormir por 24 horas. Você poderia me ajudar a codificá-lo?
 

Oi mladen,

você poderia me ajudar a emendar o código no interior, para que ele possa (normalizar) ter escala vertical: mínimo como zero, máximo como 100, ponto médio como 50 em vez de zero agora, mas ainda assim manter os mesmos sinais de antes? Muito obrigado pela ajuda.

Arquivos anexados:
 

annbeea

Você não pode fazer isso. A normalização de qualquer tipo mudará os sinais (eles não podem ficar exatamente iguais - especialmente porque você tem 3 valores lá, há ainda menos chances de manter os sinais nos mesmos lugares)

annbeea:
Oi mladen, você poderia me ajudar a emendar o código dentro, para que ele possa (normalizar) ter escala vertical: mínimo como zero, máximo como 100, ponto médio a 50 em vez de zero agora, mas ainda manter os mesmos sinais de antes? Muito obrigado pela ajuda.
 
mladen:
Você pode usar uma função como esta :

.............................

Se você deseja uma pausa diferente de 1 dia, mude o "24*60*60" para o que você deseja

PS: Eu usei "1" para o número mágico na chamada. Substitua-o por seu número mágico real

Obrigado, Mladen. Vou verificar

 
mladen:
annbeea Você não pode fazer isso. A normalização de qualquer tipo mudará os sinais (eles não podem permanecer exatamente os mesmos - especialmente porque você tem 3 valores lá, há ainda menos chances de manter os sinais nos mesmos lugares)

oi mladen

pode ser que eu usei mal ou entendi mal a palavra "normalizar", é possível escalar o teste osc trial como comumente aparece escala, mínimo 0, máximo 100, meio 50 ?

Btw, é possível deixar meu teste de teste rsi anterior emendar para não repintar? posso saber se é o t3 ou os componentes rsi repintar ou ambos repintar? Muito obrigado pela ajuda.

 

annbeea

Estamos falando da mesma coisa: converter valores para ter mínimo e máximo é sempre "deformar" os valores originais. Podemos chamar isso de normalização ou padronização ou o que quisermos, mas o preço que pagamos é uma perda da correlação dos valores originais. E quando eles estiverem "deformados" os sinais acontecerão em lugares completamente diferentes

A partir do indicador de teste rsi : a parte t3 será repintada. É devido à forma como as etapas anteriores do cálculo t3 são tratadas. A primeira vez que for calculado (quando você colocá-lo no gráfico, mudar o período de tempo ou símbolo, ...) ele calculará OK. mas no próximo tick, as variáveis e1 até e6 terão valores da barra atual (zero-th) quando você calcular no próximo tick e devem ter pelo menos os valores da 1ª barra (dependendo da variável "limite"). É um erro como o cálculo do próximo tick herda valores de cálculo de passos anteriores que causarão erros cada vez maiores em cada novo tick, e é por isso que recomendei que você usasse esse outro indicador como base, uma vez que, nesse caso, esses problemas são resolvidos

annbeea:
oi mladen

pode ser que eu usei mal ou entendi mal a palavra "normalizar", é possível escalar o teste osc trial como comumente aparece escala, mínimo 0, máximo 100, meio 50 ?

Btw, é possível deixar meu teste de rsi anterior testar a emenda para não repintar? posso saber se é o t3 ou o rsi componentes repintar ou ambos repintar? Muito obrigado pela ajuda.
 
uk_kara:
Obrigado, Mladen. Vou conferir

Funciona como um encanto como sempre, obrigado Mladen, você é uma estrela