[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 1124
![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
Boa tarde. Voltando à minha pergunta. A transação inversa não funciona. Procurei no site, mas não encontrei nada sobre o assunto. Você pode aconselhar o que estou fazendo de errado (ainda aprendendo a língua)? É necessário acionar em uma única vela.
duplo TP externo = 70; //takeprofit
duplo SL externo = 0; //stoploss
duplo Lote externo = 0,1;
duplo AltoLivre;
duplo BaixoLivre;
int resBuy=0;
int resSell=0;
//+
+
//| função de inicialização de especialista |
//+
+ int init()
{
AltoLivre=Alto[1];
BaixoLivre=Baixo[1]; retorno;
}
//+
+
//| função especialista | //+------------------------------------------------------------------+
void start()
{
if(Bars<100 && IsTradeAllowed()==false) return;
if(resBuy==0 && resSell==0 && CheckBreak()==-1)
{
resSell=OrderSend(Symbol(),OP_SELL,Lot,Bid,2,0,Bid -TP,"",MAGICMA,0,Red);
HighLevel=LowLevel;
LowLevel=Close[1];
return;
}
if(resBuy==0 && resSell==0 && CheckBreak()==1)
{
resBuy=OrderSend(Symbol(),OP_BUY,Lot,Ask,2,0,Ask + TP,"",MAGICMA,0,Blue);
LowLevel=HighLevel;
HighLevel=Close[1];
return;
}
if(resBuy!=0 && resSell==0 && Close[1]<LowLevel) //
interessado nesta parte: fechamento e abertura em um bar
{ bool closeBuy=OrderClose(resBuy, Lot, Bid, 2, Blue);
// while(!IsTradeAllowed()) Sleep(100);
resSell=OrderSend(Symbol(),OP_SELL,Lot,Bid,2,0,Bid -TP,"",MAGICMA,0,Red);
HighLevel=LowLevel;
LowLevel=Close[1];
return;
}
if(resSell!=0 && resBuy==0 && Close[1]>HighLevel) //------------------------------------- interessado nesta parte: fechamento e abertura em um bar
{
bool closeSell=OrderClose(resSell, Lot, Ask, 0.0002, Red);
// while(!IsTradeAllowed()) Sleep(100);
resBuy=OrderSend(Symbol(),OP_BUY,Lot,Ask,2,0,Ask + TP,"",MAGICMA,0,Blue);
LowLevel=HighLevel;
HighLevel=Close[1];
return;
}
}
///
Check Low&High break (Func)
double CheckBreak()
{ double candle=Open[1]-Close[1];
if(candle>0 && Low[1]<LowLevel) return(-1);
if(candle<0 && High[1]>HighLevel) return(1);
}
Há um problema com arrays:
Suponha
int start (){ // Function start
int OrdSen_1=OrderSend(Symbol(), OP_BUY, 0.10, Ask,1, Ask-70*Point, Ask+70*Point); // Buy order
if(OrdSen_1==-1){ Alert("OrdSen_1 ",GetLastError());} // Verificação de um erro ao fazer um pedido
double mas1[]={}; // Array
}
A questão é como colocar os valores "Symbol(), OP_BUY, 0.10, Ask,1, Ask-70*Point, Ask+70*Point" que pertencem à OrdSen_1 no array mas1[]={}, para que possam ser usados, retirados do array ou equacionar esses valores com variáveis para seu uso posterior. Pode haver mais ordens desse tipo, assim como matrizes. O principal é compreender o princípio.
MUITO grato pela ajuda e explicações, de preferência em detalhes :)
Lá fora será apagado porque você não o usa, ou seja, você não o chama de nenhum lugar, está claro agora?
O que você acha desta amostra? :)))))
Saudações. Como o editor pode acompanhar todos os lugares em código onde a mesma variável é usada. função?
Saudações. Como o editor pode acompanhar todos os lugares em código onde a mesma variável é usada. função?
Para isso, uso o Notepad++. Tudo o que você precisa fazer é destacar uma variável uma vez, assim ela é destacada em todo o seu código.
Mas para o Notepad++ destacar a sintaxe, você precisa afiná-la para a linguagem MQL4. Digite Notepad+++ na busca deste fórum e você encontrará um link para um editor já configurado - eu o coloquei aqui mais de uma vez.
Obrigado. Instalado, ele se acende, é mais divertido))
Obrigado. Instalado, ele se acende, é mais divertido))
Há uma função muito interessante para marcar variáveis encontradas. Pressione Ctrl+F, insira o nome da variável, marque "Bookmark" e "Mark found". Em seguida, pressione o botão "Find all" (Encontrar tudo). Para remover isso, pressione o botão "Remover tudo".
Há uma função muito interessante para marcar as variáveis encontradas. Pressione Ctrl+F, digite um nome variável, marque as caixas "Bookmark" e "Mark found". Em seguida, pressione o botão "Find all" (Encontrar tudo). Para remover isso, clique em "Remover tudo".
E clique duplo vai para o código snippet)))) Exatamente o que eu preciso, obrigado)