[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 89
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Socorro! Por favor, ajude - há um indicador personalizado que, entre outras coisas, desenha setas de Compra e Venda. Como fazer uma EA com base nela???? Como facilitar - para determinar se uma flecha é retirada de uma EA? Ou, é o código do indicador feito em função do Expert Advisor???? Estou familiarizado com a MQL. Não encontrei lá as respostas para minhas perguntas.
Estou muito interessado nisso.
Socorro! Por favor, ajude - há um indicador personalizado que, entre outras coisas, desenha setas de Compra e Venda. Como fazer uma EA com base nela???? Como facilitar - para determinar se uma flecha é retirada de uma EA? Ou, é o código do indicador feito em função do Expert Advisor???? Estou familiarizado com a MQL. Não encontrei lá as respostas para minhas perguntas.
Ajude-me.
https://www.mql5.com/ru/code/8524
Ótimo, um conselheiro pronto! Vou dar uma olhada nisso, obrigado!
o que diz no registro da tentativa?
não diz nada
https://www.mql5.com/ru/code/8524
Acontece que é um pouco mais complicado que isso. Este Expert Advisor trabalha com indicadores onde as setas são alocadas a duas matrizes de indicadores (buffers de indicadores). No meu indicador, os objetos (setas) são criados usando o método ObjectCreate(). Tanto quanto sei, o objeto (seta) é criado de acordo com as coordenadas tempo-preço. Acho que a maneira mais fácil de fazer um Expert Advisor, onde uma fórmula indicadora é usada em uma função, por assim dizer, e posições abertas em vez de setas nas mesmas condições. Como ser ???? Socorro!
Acontece que é um pouco mais complicado que isso. Este Expert Advisor trabalha com indicadores onde as setas são alocadas a duas matrizes de indicadores (buffers de indicadores). No meu indicador, os objetos (setas) são criados usando o método ObjectCreate(). O que fazer neste caso? Socorro!
Você pode simplesmente mover o código indicador para o Expert Advisor. Lá, ao invés do comando ObjectCreate() para a seta Buy, abra um Buy deal. O mesmo para Vender.
Obrigado! Eu o farei - eu acho que não há nada de difícil.
Olá
Ajude-me aqui. Resumindo. A EA só vende e fecha, trabalha com um pedido. Quando o estocástico está acima de 80, podemos pegar alguma perda, então tenho uma idéia de mudar a condição para vender se a posição tiver fechado em stop loss com a função isCloseLastPosByStop da KimA. Ou seja, é verdade quando a última posição foi fechada em Stop Loss, e falso quando não foi, e estas condições foram inseridas na condição de venda. Quando conectada, uma posição é aberta, que é fechada por meio de um batente ou não fechada de forma alguma. Por favor, me diga o que está errado no código ou como fazer com que fique assim
i
int start()
{
int
cnt=0,
bilhete,
total;
duplo
StochK_0, // Valor da linha K
StochD_1, // valor da linha D
SL=StopLoss;
bool
isCloseLastPosByStop(NULL,OP_SELL, MagicNamber); // function KimA
StochK_0=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 0); // K
StochD_1=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 2); //D
ticket= OrderTicket();
total=OrdensTotal();
se (total<1)
if ( isCloseLastPosByStop(NULL,OP_SELL, MagicNamber) == 0)
{
if ( (StochK_0<StochD_1) && (StochD_1 > 80) ) // the 1st ist sale
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green); // venda
OrderSelect(0, SELECT_BY_POS);
se (OrderSelect(0, SELECT_BY_POS)==verdadeiro )
Imprimir("SELECT_BY_POS");
senão
Print("failed to select error : ",GetLastError()));
if((StochK_0<30)&& (StochD_1 < 30))
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);
}
senão
if ( isCloseLastPosByStop(NULL,OP_SELL, MagicNamber) == 1)
{
if ((StochK_0<StochD_1) && (StochK_0 < 60) && (StochD_1 < 60) ) 2nd asses venda
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*0,0, "My EXP", MagicNamber,0,Green); //
OrderSelect(0, SELECT_BY_POS);
se (OrderSelect(0, SELECT_BY_POS)==verdadeiro )
Imprimir("SELECT_BY_POS");
senão
Print("failed to select2 error : ",GetLastError()));
if((StochK_0<30)&& (StochD_1 < 30)) // condição de fechamento
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);
}
retorno(0);
}
//___ fu ______ isCloseLastPosByStop(NULL,OP_SELLL, MagicNamber)______
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
...............itd..............................