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
Muito obrigado!!! cockeyedcowboy, isso foi realmente ótimo!!
Agora a mensagem de erro está fora!!!
Mas o 2º indicador não está desenhado e eu não sei por que
Buffer_Ma=iMAOnArray(Buffer_Ma,0,Periode_MA_Momentum,0,MODE_SMA,i);
Você tem um problema com o segundo buffer, pois ele não tem dados para os calcs.
tente calcinar TODOS os elementos em Buffer_Mom , depois Buffer_Ma.
Exemplo:
{
int counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
if(counted_bars>0) limit++;
for(int i=0; i<limit; i++)
{
Buffer_Mom=iMomentum(NULL,Timeframe_Momentum,Periode_Momentum,PRICE_CLOSE,i);
}
for( i=0; i<limit; i++)
{
Buffer_Ma=iMAOnArray(Buffer_Mom,0,Periode_MA_Momentum,0,MODE_SMA,i);
}
return(0);
}Boa sorte.
Encontrar a OHLC de um bar específico
Alguém pode me dizer como eu descubro o preço de fechamento de uma barra específica usando o código MQL? Posso fazer referência a uma barra pelo seu tempo?
Ou seja: preço_de_fecho_de_bar = Fechar("04:59:00 AM") ... se ao menos fosse assim tão fácil!
Obrigado
hy folks !
ok, tenho outro grande problema...
como codificar esta condição :
digite longo ou curto apenas na primeira vez
(por isso, se eu tiver muitos sinais longos seguintes e entrar apenas na primeira vez)
pagarei a todos para que me ajudem nisto
este é meu código simples para a condição de compra:
//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}Alguém pode me dizer como eu descubro o preço de fechamento de uma barra específica usando o código MQL? Posso fazer referência a uma barra pelo seu tempo?
ie: closing_price_of_bar = Close("04:59:00 AM") ... se ao menos fosse assim tão fácil!
Obrigado.Experimente isto:
closing_price_of_bar = iClose(Symbol(),PERIOD_M1,iBarShift(Symbol(),PERIOD_M1,StrToTime("04:59"));
Comprar ou Vender
Olá a todos,
Tenho a Buy EA e Sell EA que estão sempre abertas mais de uma posição. Gostaria de obter alguma ajuda sobre como alterar ou modificar o código que permite apenas 1(uma) posição de compra e 1(uma) posição de venda e em 1(uma) conta.
O SL e TP estarão usando o Preço Alvo, ou seja, se o preço de compra tiver alcançado o Preço Alvo, fechará a posição. O mesmo com o Preço de Venda.
Eu peço a ajuda dos especialistas em código neste fórum.
Obrigado.
=s21=
Compra e Venda
Oooops...
Aqui está a Buy EA.
Olá, se você precisar ter apenas um pedido aberto, você pode simplesmente acrescentar a condição seguinte: Se (OrderTotal()==0).
Portanto, as regras para pedidos de COMPRA serão algo parecido com isso:
if (Order == SIGNAL_BUY && (OrdersTotal==0) && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))
[/CODE]
So you will not get second-third-... orders opened until you current order open.
hy folks !
ok i have another big problem...
how to code this condition :
enter long or short only first time
(so if i have many following long signal ea enter only at first time)
i'll pay everyone could help me on this
this is my simple code for buy condition:
[CODE]
//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}Tente isto: closing_price_of_bar = iClose(Symbol(),PERIOD_M1,iBarShift(Symbol(),PERIOD_M1,StrToTime("04:59"));
Fab! Tive que acrescentar 1 parêntese de fechamento extra para evitar que o intérprete reclamasse de um erro, mas funcionou muito bem.
Obrigado, Roger09
Olá, se você precisar ter apenas um pedido aberto, você pode simplesmente acrescentar a condição seguinte: Se (OrdensTotal()==0).
Portanto, as regras para pedidos de COMPRA serão algo assim:
if (Order == SIGNAL_BUY && (OrdersTotal==0) && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))
obrigado Avalanche,
mas não é uma solução para mim, porque eu tenho um TP, não espero até a condição oposta
Outras idéias ? Primeiro eu te pago