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
Pessoal, estou fazendo um pequeno robô, que quando o preço do candle atu é maior que a máxima do cancle anterior, ele emite uma ordem de compra 'trade.buy'
nesta ordem eu configuro o stop loss e take profit, que aparecem no gráfico de teste, só que quando o preço chega no st ou tp, as ordens não são executadas.
alguém pode me ajudar?
segue código:
#include <Trade/Trade.mqh>
CTrade trade;
void OnTick()
{
double smaArray[], last, stopc, alvoc, ask;
int smaHandle;
MqlRates rates[];
ArraySetAsSeries(smaArray, true);
ArraySetAsSeries(rates, true);
// recupera ultimo preço
last = SymbolInfoDouble(_Symbol,SYMBOL_LAST);
ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK);
// calcula media movel de 20 periodos
smaHandle = iMA(_Symbol,_Period,20,0,MODE_SMA,PRICE_CLOSE);
CopyBuffer(smaHandle,0,0,3,smaArray);
// recupera informaçoes dos ultimos 4 candles
CopyRates(_Symbol,_Period,0,4,rates);
if (last > rates[1].high && PositionsTotal()==0)
{
stopc = rates[1].low;
alvoc = (rates[1].high + (rates[1].high - rates[1].low));
trade.Buy(5,_Symbol,0, stopc, alvoc, "");
}
}