Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 306
![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
É verdade?
Onde está a idéia?
Nesse caso, não uma IDEA, mas uma ABORDAGEM.
Por que esperar? Verifique o código no testador! Você deve adicionar a variável Spread com espaço em condições de modificação!
se (preço zero>Ask+(Spread+gap)*Ponto)
//-------------------------------------------// se o preço zero for pré-multiplicado, remova *Ponto!
se (preço zero<Bid-(Spread+gap)*Ponto)
Eu tentei, e assim OrderModify(OrderTicket(),OrderOpenPrice(), OrderStopLoss(),zeroprice+Spread,0,Blue); // definir o take in b/y para a Buy, se a posição for negativa também, mas ainda assim TP=SL, embora eu não entenda com a lacuna, ela também é necessária como variável?
TP está no topo e SL está no fundo. O que isso tem a ver com o fato de eles serem iguais? E a lacuna é necessária para a reserva, para que o servidor aceite o preço declarado e não o rejeite. Sim, que haja uma variável para os casos em que o preço possa estar inaceitavelmente próximo do ponto de modificação.
Eu já disse que é uma falha no roteiro (TP=SL), porque a parada pode ser tomada e TP não pode, se o preço não chegar a ela. Vamos colocar o SL dentro - e Deus proíba que o preço mude e vamos perder nos outros também.
De qualquer forma, ainda não sei o que mudar, vou tentar pela manhã sóbrio.
Ainda não sei o que mudar, vou tentar pela manhã quando estiver sóbrio.
Por favor, informe.
Todas as 43 ordens de venda com volume de 0,1 lote ($1) fecharam com lucro, com cada parada de 231 pips.
Havia apenas 1 ordem de mercado de cada vez.
Isso significa que o preço não poderia ser inferior em mais de 230 pips em nenhuma das posições.
Por que o testador mostra uma retirada de 244 pip em Equidade?
Se o preço descesse para 244 pips em alguma posição, uma parada de perda seria acionada.
http://clip2net.com/s/6im1rj
Por favor, informe.
Todas as 43 ordens de venda com volume de 0,1 lote ($1) fecharam com lucro, com cada parada de 231 pips.
Havia apenas 1 ordem de mercado de cada vez.
Isso significa que o preço não poderia ser inferior em mais de 230 pips em nenhuma das posições.
Por que o testador mostra uma retirada de 244 pip em Equidade?
Se o preço descesse para 244 pips em alguma posição, uma parada de perda seria acionada.
http://clip2net.com/s/6im1rj
Talvez o teste não tenha sido em euros e o valor do ponto não tenha sido de 10 dólares. Talvez uma ordem perdida tivesse que ser mantida por um longo tempo e houvesse uma troca negativa.
Talvez o teste não fosse sobre o EUR e o valor do ponto não fosse de $10. Talvez a ordem de perda tivesse que ser mantida por um longo tempo e houvesse uma troca negativa.
Euro-dólar. Portanto, é a segunda opção.
Obrigado.
Pessoal, por favor, ajudem com o trailing stop!!!!!!!!!! Parece compilar tudo, mas no testador não liga as trailing stops!!! Urgente, por favor))
//+------------------------------------------------------------------+
//| Nevalyashka_BOT.mq4 |
//| Copyright 2013, MetaQuotes Software Corp. |
//| https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#direitos autorais de propriedade intelectual "Copyright 2013, MetaQuotes Software Corp.
#link da propriedade "https://www.metaquotes.net/"
#property indicator_buffers 2
#indicador de propriedade_color1 Verde
#indicador de propriedade_color2 Vermelho
#largura_do_indicador de propriedade1 2
#largura_do_indicador de propriedade2 2
Barras internas externas_Para_Conta = 400;
Exterior int int Seta_dis_de_can = 2;// pontos
jogo_sound_sound externo = verdadeiro;
nome_som da corda externa = "Alerta Vermelho";
lotes duplos externos =0,1;
SlipPage externo int =30;
StopLoss int externo =250;
TrailingStop externo int =220;
TrailingStep externo int =1;
comentário de corda externa = "NaVaLyaShka vence;
magia int externa =777;
buf_up duplo[];
buf_down duplo[];
dobrar para cima;
dobro para baixo;
duplo h;
int bars_cheked;
int ticket;
int Sl;
int i;
//+------------------------------------------------------------------+
//| função de inicialização especializada |
//+------------------------------------------------------------------+
init() vazio
{
SetIndexBuffer(0,buf_up);
SetIndexArrow(0,233);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(1.234);
SetIndexBuffer(1,buf_down);
SetIndexStyle(1,DRAW_ARROW);
se (Dígitos ==3 || Dígitos ==5)
{
StopLoss*=10;
SlipPage*=10;
TrailingStop*=10;
TrailingStep *=10;
}
}
//+------------------------------------------------------------------+
//| função de desinicialização de especialistas |
//+------------------------------------------------------------------+
deinit() vazio
{
}
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
início nulo()
{
for(int h=1;h<Bars_To_Count-bars_cheked;h++)
{
/////////up
if(Abrir[h]<Fechar[h])
{
for(int u=h+1;u<Bars_To_Count+1;u++)
{
if(Abrir[u]!=Fechar[u])
pausa;
}
if(Abrir[u]>Fechar[u])
{
Sl=NormalizeDouble(Ask-StopLoss*Point,Dígitos);
ticket=OrderSend(Symbol(),OP_BUY,Ask,SlipPage,0,0,comment,Magic,0,indicator_color1);
se (bilhete>0)
{
se (OrderSelect(ticket,SELECT_BY_TICKET, MODE_TRADES) ==verdadeiro)
{
OrderModify(ticket,OrderOpenPrice(),Sl,0,0,0);
}
}
buf_up[h]=Low[h]-Arrow_dis_from_can*Point;
}
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
////////down
if(Abrir[h]>Fechar[h])
{
for(int e=h+1; e < Bars_To_Count+1; e++)
{
if(Open[e]!=Close[e])
{
pausa;
if(Abrir[e]<Fechar[e])
{
Sl=NormalizeDouble(Bid+StopLoss*Point,Dígitos);
ticket=OrderSend(Symbol(),OP_SELL,Bid,Bid,SlipPage,0,0,comment,Magic,0,indicator_color2);
se (bilhete>0)
{
se (OrderSelect(ticket,SELECT_BY_TICKET, MODE_TRADES) ==verdadeiro)
{
OrderModify(ticket,OrderOpenPrice(),Sl,0,0,0);
}
buf_down[h]=High[h]+Arrow_dis_from_can*Point;
}
}
}
}
}
Rastreamento();
}
nulo Trailing()
{
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==Symbol()||OrderMagicNumber()==Magic)
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>TrailingStop)
{
if(OrderStopLoss()<Bid-TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop,OrderTakeProfit(),0,Green);
}
}
}
}
if(OrderType()==OP_SELL)
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>TrailingStop)
{
if((OrderStopLoss()>(Ask+TrailingStop)) ||| (OrderStopLoss()==0)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop,OrderTakeProfit(),0,Red);
}
}
}
}
}
}
//+------------------------------------------------------------------