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
Oi Wolfe
Sei que isto já foi coberto antes, mas alguém pode me mostrar algum código para permitir apenas 1 comércio por barra? Obrigado.
Isto funciona para mim
data/hora LastOpenTime=0;
//////////////////////////////////////////
int Ordem;
for(int t=0;t<OrdensTotal();t++)
{
if(OrderSelect(t, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumbers && OrderType() == OP_SELLL)
{
if(OrderOpenTime()>LastOpenTime)LastOpenTime=OrderOpenTime();
}
}
}
Então eu apenas o enfiei em meu código
if(LastOpenTime0)
{ EncomendarEnviar(blá blá blá
Sendo o tempo[0] o início da vela de seu período de tempo, então certifique-se de escolher o período de tempo certo
Isto funciona para mim.
data/hora LastOpenTime=0;
//////////////////////////////////////////
....................
Sendo o tempo[0] o início da vela de seu período de tempo, então certifique-se de escolher o período de tempo certoIsto pode ser um pouco mais simples:
datetime LastOpenTime; //Global var
[/CODE]
[CODE]
int init()
{
LastOpenTime=Time[0];
}
int start()
{
................
if(LastOpenTime!=Time[0])
{
// do your trade code
LastOpenTime=Time[0];
}
..............
return(0);
}Seu "código comercial" será executado uma única vez apenas em qualquer vela. Não haverá mais nenhuma troca nessa vela, mesmo que você feche seu MT4 e o ligue novamente. Mas observe, digamos que você ative a EA em uma vela das 17h, não haverá mais nenhuma troca nessa vela, você terá que esperar pela próxima vela.
Sei que isto já foi coberto antes, mas alguém pode me mostrar algum código para permitir apenas 1 comércio por barra? Obrigado.
Global, coloque isto antes de init()
In the order placement and/or order close stuff, wrap it in this:
{
if blah blah blah, gimme pips // not actual functions but you get the idea
if blah blah blah, close orders // um
}Common function outside main loop:
[CODE]//--- returns true if current bar just formed
bool NewBar()
{
if(PreviousBar<Time[0])
{
PreviousBar = Time[0];
return(true);
}
else
{
return(false);
}
return(false);
}Ajuda na programação
Hi,
Tenho feito o meu melhor para tentar programar algumas coisas, mas bati numa parede de tijolos. Por isso, tentei algo muito simples. Se eu descomentar "Imprimir("Cinco");" e testar o programa, ele só imprimirá "Yahooooooo". (Bem, ele também imprime "Um"). Agora com "Print("Five");" comentou, mesmo o "Yahooooooooo" não imprime. O que estou perdendo?
Fechar todos os pedidos pendentes e abertos quando 1 comércio atingir TP
Hi,
Estou tentando escrever um código em minha EA que fechará todas as ordens pendentes e abertas uma vez que houver 1 negociação que atinja a TP. Abaixo estão os códigos que eu usei, parece não funcionar. Alguém pode dar uma olhada e avisar o que está faltando. Obrigado.
if( Encomendas Abertas Anteriores > Encomendas Abertas )
{
for( cnt = OrderTotal()-1; cnt >= 0; cnt-- )
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
modo = OrderType();
if( OrderSymbol() == Symbol() &&
OrderMagicNumber()==Magic)
{
if( modo == OP_BUY ) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue);
if( mode == OP_SELL ) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),OrderClosePrice(),slippage,Red);
if (mode == OP_SELLLIMIT) OrderDelete(OrderTicket());
if (mode == OP_BUYLIMIT) OrderDelete(OrderTicket());
}
}
}
}
Use Bid e Ask respectivamente em vez de OrderClosePrice()...
Use Bid e Ask respectivamente em vez de OrderClosePrice()...
Olá ralph,
você pode ajudar a dar um exemplo. Obrigado pela ajuda.
Olá, tenho feito o meu melhor para tentar programar algumas coisas, mas bati numa parede de tijolos. Por isso, tentei algo muito simples. Se eu descomentar "Imprimir("Cinco");" e testar o programa, ele só imprimirá "Yahooooooo". (Bem, ele também imprime "Um"). Agora com "Print("Five");" comentou, mesmo o "Yahooooooooo" não imprime. O que estou perdendo?
Se você não usar parênteses, apenas uma linha é executada. Depende do que você quer fazer, mas você deve fazer assim:
{
Print("Five");
Print("Yahoooooooooooooooooooooooo");
}if( mode == OP_BUY ) OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Blue);
if( mode == OP_SELL ) OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Red);
Parada de movimento uma vez
Aqui está minha parte de código para movimentar o stoploss para obter um certo lucro. Há algo de errado com ele?
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(Bid - OrderOpenPrice() == Point * MoveStopWhenPrice) {
OrderModify(OrderTicket(),OrderOpenPrice(), Bid - Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}