[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 591
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
Ajude-me a resolver um problema
Eu recolho amostras de todos os itens fechados
para (int i=0; i<OrdersHistoryTotal(); i++)// Para todas as encomendas
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==verdadeiro)
depois filtrar por número mágico
se (OrderMagicNumber()==12)
O filtro satisfaz 3 posições, mas preciso apenas da última fechada
não consegue descobrir como deixar apenas o último?
Obrigado
Mais uma vez, muito necessário.
Ajude-me a resolver o problema.
Estou selecionando por todas as posições fechadas
para (int i=0; i<OrdersHistoryTotal(); i++)// em todas as ordens do terminal
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)===verdadeiro)
depois filtrar por número mágico
se (OrderMagicNumber()==12)
o filtro corresponde a 3 posições, mas só preciso da última fechada
Não consegue descobrir como deixar apenas o último?
Obrigado
Por favor, ajude! Preciso dele para abrir o pedido imediatamente após fechar o antigo, a preço de Tp ou SL.
#direitos autorais "Copyright © 2010, MetaQuotes Software Corp.
#link da propriedade "http://www.metaquotes.net"
#property show_confirmar
externo int MaxRisk=3;
bool externo Comprar=falso; // para abrir um pedido de compra
bool externo Sell=true; // para abrir uma ordem de venda.
número mágico externo interno=7749;
TP externo=210;
externo inttern SL=420;
{
double point=MarketInfo(Symbol(),MODE_POINT);//ponto de solicitação
duplo Free=AccountFreeMargin();
double One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Step =MarketInfo(Symbol(),MODE_LOTSTEP);
lote duplo =MathFloor(Livre*MaxRisk/100/One_Lot/Step)*Step;
int pos,total=OrdensTotal();
//----
if(Buy===true && OrderTotal()<=1)
{
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-SL*Point,Ask+TP*Point, "777"+ Symbol(), MagicNumber, 0, DarkGreen);
Comprar=falso;
}
if(Sell===true && OrderTotal()<=1)
{
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+SL*Point,Bid-TP*Point, "4949"+ Symbol(), MagicNumber, 0, DarkGreen);
Sell=false;
}
para (pos=0; pos<total; pos+++)
if(OrderSelect(pos,SELECT_BY_POS )==verdadeiro)
if(OrdersTotal()==OP_BUY)
if(PRICE_CLOSE==OrderTakeProfit()) Buy=true;
if(PRICE_CLOSE===OrderStopLoss()) Sell=true;
}
}
if(OrderSelect(pos,SELECT_BY_POS )==verdadeiro)
se (OrderTotal()==OP_SELL)
{
if(PRICE_CLOSE==OrderStopLoss()) Buy=true;
if(PRICE_CLOSE===OrderTakeProfit()) Sell=true;
}
} }
//----
retorno(0);
}
//+------------------------------------------------------------------+
Pessoal, aqui vai uma pergunta, um EA tenta abrir um pedido, mas o preço muda e exibe um preço errado, como posso contorná-lo, então ele tenta comprar até comprar?
Costumava ser.
Acrescentei 30 porque tenho um sinal de 5, mas é inútil.
Mais uma vez, muito necessário.
Ajude-me a resolver o problema.
Estou recolhendo amostras de todos os itens fechados.
Comece no final, depois o primeiro a combinar é o primeiro.
for (int i=OrdersHistoryTotal()-1;i>=0; i--)//
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==verdadeiro)
Ainda há mais um incômodo, há seções onde há apenas um fechamento de uma posição e não uma inversão, embora as condições para uma parada e abertura de uma nova posição sejam as mesmas.
Estas situações podem ocorrer porque as condições de compra e venda no Expert Advisor não são mutuamente exclusivas. Tente rastrear os valores das variáveis requeridas no testador de acordo com
if(Time[0]=='время_нужного_бара') //чтоб не засорять логи берем на конкретном баре - посмотрите на картинке, где именно ошибка { Print("переменная=", значение); }Pessoal, aqui vai uma pergunta, um EA tenta abrir um pedido, mas o preço muda e exibe um preço errado, como posso contorná-lo, então ele tenta comprar até comprar?
Costumava ser.
Acrescentei 30 porque tenho um sinal de 5, mas é inútil.
Isto precisa ser investigado em detalhes, tais situações podem surgir porque as condições de abertura de compra e venda na EA não são mutuamente exclusivas. Tente rastrear os valores das variáveis requeridas no testador de acordo com as linhas de
O que é relevante para sua pergunta é sublinhado.