Pergunte! - página 105

 

Qestion para Codificadores

Hi

Escrevi Alerta, mas só funciona quando abro a janela com meu indicador. Funciona também somente quando pulo as janelas dos gráficos, em outras palavras, quando pulo entre os níveis de tempo dos gráficos. Parece que o indicador não pode contar quando funciona. Como posso resolver meu problema ? Preciso de ajuda. Está relacionado com o Indicatorcounted? Devo fazer algo no parâmetro de Alerta. Como fazer isso ?

Devo usar algo do tipo:

duplo

? = ObjectGetValueByShift(string name, int shift));

se (???????????)

Alerta("Padrão em " + Símbolo() + " " " + Período());

Pucio

 

Pergunta boba...

Alguém? Tentando criar o que deve ser o mais simples de todos os tempos e estragando tudo...

Entrada: Valor do último Tic de (1)Par X e (2) Par Y.

(ambos os "pares" CDF ...ou seja, símbolos de 3 letras))

Saída 1: Impressão na tela X-Y

Saída 2: Janela do Indicador Plot In MA de X-Y.

...Não perguntar...LoL

 

Alerta uma vez

Hi,

Por favor, você poderia escrever um exemplo do código onde o Alerta é apenas uma vez.

Quando um objeto aparece no gráfico e você quer ter Alerta uma vez.

Pucio

 
Pucio:
Hi,

Por favor, você poderia escrever um exemplo do código onde o Alerta é apenas uma vez.

Quando um objeto aparece no gráfico e você quer ter Alerta uma vez.

Pucio

Talvez você possa usar este pedaço de código: https://www.mql5.com/en/forum/general

 

Eu tenho um indicador semelhante a este. Alguém sabe como passar os seus valores para a EA? Eu tentei usar o buffer, desta forma

dupla tendência[];

...

SetIndexBuffer(0,Tendência);

...

Tendência[0]=UpRating;

return(0);

}

Não sei se funciona, mas sei que toda a inscrição do indicador desapareceu. Alguma idéia sobre isso?

 

precisam de ajuda para modificar

Olá colega comerciante

Eu preciso de ajuda com este código.

A função atual é fechar as primeiras ordens abertas por tempo e qualquer ordem seguinte, o que significa que pode ser mais de 2 ordens fechadas no mesmo tempo.

Pergunta: como posso alterá-lo para que feche as PRIMEIRAS 2 ordens abertas por tempo SOMENTE.

aqui o código.

obrigado pela ajuda

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

//| Close Condition Type 2 |

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

vazio CheckCloseConditionType2()

{

int Ordens[];

int i, j;

ArrayResize(Ordens, 0);

int cnt = OrdensTotal();

for (i=0; i < cnt; i++)

{

se (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continuar;

se (OrderSymbol() != Symbol()) continuar;

se (OrderMagicNumber() != Magic) continuar;

int type = OrderType();

if (type == OP_BUY || type == OP_SELL)

{

int size = ArraySize(Ordens);

ArrayResize(Ordens, tamanho+1);

Ordens = OrderTicket();

}

}

//-----

tamanho = ArraySize(Ordens);

para (i=0; i < tamanho; i++)

{

se (!OrderSelect(Ordens, SELECT_BY_TICKET)) continuar;

se (!OrderCloseTime() > 0) continuar;

datetime tm1 = OrderOpenTime();

for (j=i+1; j < tamanho; j+++)

{

se (!OrderSelect(Ordens[j], SELECT_BY_TICKET)) continuar;

se (!OrderCloseTime() > 0) continuar;

datetime tm2 = OrderOpenTime();

se (tm1 > tm2)

{

int ticket = Encomendas;

Ordens = Encomendas[j];

Ordens[j] = bilhete;

}

}

}

//-----

para (i = tamanho 1; i >= 1; i--)

{

lucro duplo = ArrayGetOrdersProfit(Ordens);

if ((Lucro >= TotalTakeProfit && TotalTakeProfit > 0) ||| (Lucro >= Profit2Exit && Profit2Exit > 0))

{

Print("[Enter] Close by condition Type2");

string msg1 = "";

corda msg2 = "";

duplo P;

duplo T.P = 0;

para (j=0; j < tamanho; j++)

{

se (Ordens[j] == -1) continuar;

se (!OrderSelect(Ordens[j], SELECT_BY_TICKET)) continuar;

se (OrderCloseTime() > 0) continuar;

if (StringLen(msg1) > 0) msg1 = msg1 + " + ";

msg1 = msg1 + "ordem" + Encomendas[j];

GetOrderProfit(Ordens[j], P);

se (StringLen(msg2) > 0) msg2 = msg2 + " + ";

msg2 = msg2 +DoubleToStr(P, 2);

T.P += P;

}

Imprimir("Fechar: " + msg1);

Imprimir("Lucro: " + msg2 + " = " + DoubleToStr(T.P, 2));

ArrayCloseOrders(Ordens);

Print("[Exit] Close by condition Type2");

retornar;

}

Ordens = -1;

}

}

 

Como contar os números de pips

Hi,

Percebi que, depois que o mercado se moveu para um grande movimento (tendência para cima ou para baixo). O mercado restante é de alguma forma arriscado para o comércio. Estou tentando programar um EA para evitar entrar em qualquer negociação depois de uma grande movimentação de cerca de 90pips.

Preciso saber como calcular o número de pips desde o primeiro bar às 8h (mercado londrino aberto) até o bar atual. Se o mercado já foi movimentado por mais de 90pips eu não aceitarei nenhuma troca.

Alguém pode codificar algumas linhas para me dar algumas pistas? Muito obrigado e muito apreciado.

Shek

 
yyc196:
Hi,

Percebi que, depois que o mercado se moveu para um grande movimento (tendência para cima ou para baixo). O mercado restante é de alguma forma arriscado para o comércio. Estou tentando programar um EA para evitar entrar em qualquer negociação depois de uma grande movimentação de cerca de 90pips.

Preciso saber como calcular o número de pips desde o primeiro bar às 8h (mercado londrino aberto) até o bar atual. Se o mercado já foi movimentado por mais de 90pips eu não aceitarei nenhuma troca.

Alguém pode codificar algumas linhas para me dar algumas pistas? Muito obrigado e muito apreciado.

Shek

Se necessário, verifique primeiro se você tem mais de 8 horas da manhã:

if(Hour() < 8) return;[/PHP]

Then, find the max and min of the current day. (if its ok for you, its easier than from 8 am): [PHP]double Max = iHigh(Symbol(), PERIOD_D1, 0);

double Min = iLow(Symbol(), PERIOD_D1, 0);

int Range = (Max - Min) / Point;

if(Range > 90) return;

...

 

Tento adicionar uma nova característica a este indicador High_Low (Zigzag) V2 para que para cada vez que ele for formado um novo high-low o ZZ me alerte. Não sei onde isso vai dar errado. O indi, ao invés disso, não aparece na minha tela. Alguém? Ajude-me, por favor... Sou novo em codificação, por favor, refine o que eu fiz para que o índio faça exatamente como eu quero no acima. Aqui está o código.

high_low_v2_zigzag_with_alert.mq4

Arquivos anexados:
 

Hi,

Como desenhar um fundo retangular? Quero dizer, através do condimento. Eu sei que usa ObjectCreate() mas não sei como escrevê-lo da maneira que suponho.

Razão: