Boa tarde este robô faz exatamente o que eu estava procurando! Estou com uma duvida, como faço para que novas ordens sejam inseridas sempre que for finalizado uma. e não somente no nascimento de um novo bar, estou operando um ativo que repete varias vezes o mesmo preço e dava para fazer mais de um trade por minuto. desde já agradeço
Desculpe, este código só funciona quando a nova barra nasce.
Desculpe, este código só funciona quando a nova barra nasce.
Hi, what on the next bar defines whether it will be buying or selling ? thankful
O EA trabalha com pedidos pendentes: BuyLimit e SellLimit.
Aqui o meu lote é de 1 em 1. Se eu quiser que a cada ordem o lote vá somando +1 (1,2,3,4,5....) é neste trecho que eu tenho que alterar ?
//--- get minimal step of volume changing
double volume_step=m_symbol.LotsStep();
int ratio=(int)MathRound(volume/volume_step);
if(MathAbs(ratio*volume_step-volume)>0.0000001)
Como ficaria ? ...grato
Não Errado Para aumentar o lote atual, você precisa saber qual foi a última transação.
Como eu poderia limitar o número de ordens abertas ?
Grato
Como eu poderia limitar o número de ordens abertas ?
Grato
Para limitar - é necessário contar todas as POSIÇÕES.
De qualquer forma, o autor do Expert Advisor não responderá. Se for possível entender o código, alguém pelo menos responda em que princípio as ordens de limite pendentes são colocadas. Parece que é na defasagem do preço, mas em que princípio e onde no código isso pode ser regulado, se possível. Mesmo sem ajuste, apenas para entender como e sob quais condições elas são colocadas.
Olá, Vladimir!
Nesse bloco, você pode ajustar/alterar o código destacado em amarelo conforme sua necessidade:
//--- MqlRates rates[]; ArraySetAsSeries(rates,true); int copied=CopyRates(m_symbol.Name(),Period(),1,1,rates); if(copied!=1) { PrevBars=0; return; } double H4=((((rates[0].high-rates[0].low)*1.1)/2)+rates[0].close); double H3= ((((rates[0].high-rates[0].low)*1.1)/4)+rates[0].close); double L3= (rates[0].close-((rates[0].high-rates[0].low)*1.1)/4); double L4= (rates[0].close-((rates[0].high-rates[0].low)*1.1)/2); double price=0.0; double sl=0.0; double tp=0.0; price=L4; sl=(InpStopLoss==0.0)?0.0:ExtStopLoss; tp=(InpTakeProfit==0.0)?0.0:ExtTakeProfit; m_trade.BuyLimit(InpLots,m_symbol.NormalizePrice(price),m_symbol.Name(), m_symbol.NormalizePrice(price-sl), m_symbol.NormalizePrice(price+tp)); price=H4; sl=(InpStopLoss==0.0)?0.0:ExtStopLoss; tp=(InpTakeProfit==0.0)?0.0:ExtTakeProfit; m_trade.SellLimit(InpLots,m_symbol.NormalizePrice(price),m_symbol.Name(), m_symbol.NormalizePrice(price+sl), m_symbol.NormalizePrice(price-tp));
Atenciosamente, Vladimir.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Surefirething:
Trabalhando com ordens pendentes Buy Limit e Sell Limit. O trailing das posições é possível.
Autor: Vladimir Karputov