[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

 

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);
}


 
Bom dia a todos,

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 :)
 
Techno:

Lá fora será apagado porque você não o usa, ou seja, você não o chama de nenhum lugar, está claro agora?

Entendi, obrigado :)
 
artmedia70:

O que você acha desta amostra? :)))))

Com wifi, está tudo bem.
 

Saudações. Como o editor pode acompanhar todos os lugares em código onde a mesma variável é usada. função?

 
Galion:

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.
 
drknn:
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))
 
Galion:

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".
 
drknn:

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)