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
matrixebiz o que você quer dizer com rem'ing out these two lines; and how do it, i can;t get in to the code of the AC indicator i have tried,
Você abre o Accelerator.mq4 no MetaEditor (está em sua pasta Indicadores) e coloca // na frente dessas duas linhas e depois salva como um novo nome AcceleratorMod.mq4 e depois clica em compilar.
Não, isso não é correto.
No loop for, você está começando em 6 e diminuindo para 1. Isto significa que no loop final, o para loop executa a verificação "se (i == 1) qqeacross = True;". O resultado final é que a saída será verdadeira se o qqeacross tiver ocorrido.
O único problema que isto pode apresentar é se o qqeacross foi definido como verdadeiro em um looop anterior. Para superar isto, você deve ter qqeacross = falso; antes do for loop. Desta forma, você pode assegurar que se qqeacross = verdadeiro, então ele foi definido pelo laço que acabou de ser completado.
Abraço,
hiachieverEntão, mesmo que diga "se (i ==1) qqeacross = Verdadeiro"; e então i=4 (por causa da contagem regressiva) , qqeacross ainda assim = Verdadeiro?
Obrigado hiachiever!
A maneira de fazer isso é criar um vriable no escopo global (ou seja, antes do init).
eg
no BarCount;
int init ()
Então, em seu código de stop loss use o seguinte:
se (BarCount<Bars)
{
SL=iLow(Symbol(),Period(),iLowest(Symbol(),Period(),MODE_LOW,StopLossBars,0)));
StopLossBars++;
BarCount=Bars;
}
Isto incrementará o StopLossBars em 1 em cada nova barra.
A única outra adição ao seu código seria redefinir 'StopLossBars' de volta seu valor padrão original quando uma nova negociação é aberta.
Abraço,
HiachieverObrigado, hiachiever, foi muito gentil de sua parte em ajudar, embora eu gostaria de pedir um outro pequeno favor, por favor.
Acho que entendo como funciona seu código e estou certo de que posso copiá-lo para minha EA . No entanto, não tenho certeza de como reiniciar as StopLossBars de volta ao seu padrão. Este é o código no final da EA para ir longo ou curto:
{
int ticket = OrderSend(Symbol(),OP_BUY,GetLots(100),Ask,maxSlippage,0,0,"Long",MagicNumber,0,Green);
if (screenshots) WindowScreenShot(Symbol()+Period()+"_"+Hour()+Minute()+"_.gif",1024,768);
if (showAlerts) Alert(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Long");
Print(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Long");
}
void goShort()
{
int ticket = OrderSend(Symbol(),OP_SELL,GetLots(100),Bid,maxSlippage,0,0,"Short",MagicNumber,0,Red);
if (screenshots) WindowScreenShot(Symbol()+Period()+"_"+Hour()+Minute()+"_.gif",1024,768);
if (showAlerts) Alert(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Short");
Print(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Short");
}
double stopLoss(int ordertype)Você poderia ter a gentileza de ajudar com algum código para reiniciar as StopLossBars, por favor?
Mais uma vez, obrigado.
matrixebiz fiz isso agora não posso compilar minha ea quando adicionei as seguintes linhas à minha ea
duplo ac1 = iCustom(NULL, 0, "AcceleratorMod", 1, 1);
duplo ac2 = iCustom(NULL, 0, "AcceleratorMod", 2, 1);
duplo ac11 = iCustom(NULL, 0, "AcceleratorMod", 1, 2);
duplo ac22 = iCustom(NULL, 0, "AcceleratorMod", 2, 2);
bool acbuy = ac2==0 && ac11==0; // mudanças vermelhas para Lime
bool acsell = ac1==0 && ac22==0; // Mudanças de cal para vermelho
eu recebo 12 erros: variável AC não definida :
e eu gostaria de agradecer a ajuda
Presumo que StopLossBars é uma variável global que é definida através das entradas do usuário, certo?
Bem, o que eu faria é algo como isto.
Faça com que a variável de entrada do usuário seja algo como gStopLossBars e então, em sua função init, atribua-a a sua variável local como...
StopLossBars = gStopLossBars;
Em seguida, simplesmente use a mesma atribuição em suas funções de compra e venda para reiniciar o StopLossBars.
Faz sentido?
Espero que isso ajude.
Lux
Ac+ao+psar
Olá a todos,
Qualquer pessoa pode combinar AC+AO+PSAR para se tornar um novo indicador com alerta/email? Por favor, me pergunte. Obrigado.
Presumo que o StopLossBars é uma variável global que é definida através das entradas do usuário, certo?
Bem, o que eu faria é algo como isto.
Faça com que a variável de entrada do usuário seja algo como gStopLossBars e então em sua função init a atribua a sua variável local como...
StopLossBars = gStopLossBars;
Em seguida, simplesmente use a mesma atribuição em suas funções de compra e venda para reiniciar o StopLossBars.
Faz sentido?
Espero que isso ajude.
LuxIsso faz todo o sentido. Muito obrigado sempre.
Como posso detectar quando a nova vela está acesa?
por favor alguém me dê alguns conselhos sobre como posso criar uma EA que faça uma ordem pendente quando a nova barra começar (TF diária) ?
obrigado
por favor alguém me dê alguns conselhos sobre como posso criar uma EA que faça um pedido pendente quando o novo bar começar (TF diário) ?obrigado
Alguém pode impedir isso de fazer looping e looping?
void BEM ()
{
int pips;
para (int k=0; k<OrdersTotal ();k++)
{
OrderSelect(k, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && OrderSymbol()== Symbol () && OrderMagicNumber()== Magic)
{
pips = (Bid - OrderOpenPrice())/Ponto;
if ((pips >= BE) && (OrderStopLoss() < OrderOpenPrice()))
{
OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice ()+ 12*Point, OrderTakeProfit (), 0, LightBlue);
}
}
if(OrderType()==OP_SELL && OrderSymbol()== Symbol () && OrderMagicNumber()== Magic)
{
pips = (OrderOpenPrice() - Ask)/Point;
if ((pips >= BE) && (OrderStopLoss() > OrderOpenPrice()))
{
OrderModify (OrderTicket (), OrderOpenPrice (),OrderOpenPrice ()- 12*Point, OrderTakeProfit (), 0, Pink);
}
}
}
}