ROBERSON MARIANI:
....
Order é diferente de Position
Se vc quer fazer um BreakEven, vc ja tem uma POSIÇÃO e não mais uma ORDEM
Jonathan Pereira:
Nesse caso eu deveria mudar de ORDER para POSITION na parte do codigo então.
Códigos devem está na caixa de código do editor. Facilita pra gente poder lhe ajudar.
Exemplo:
int OnCalculate ( const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[] )
Tem o botão com o icone assim: </>
No editor do texto que vc escreveu.
Ele rastreia a metade do stop gain, porém, quando alcança o preço não muda o stop.if(liga_breakeven == SIM && OrderSelect(OrderGetTicket(0)) && OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT) { double preco_entrada = OrderGetDouble(ORDER_PRICE_OPEN); double preco_sl = OrderGetDouble(ORDER_SL); double preco_tp = OrderGetDouble(ORDER_TP); double preco_medio = (preco_entrada + preco_tp)/2; desenhaLinhaHorizontal("Compra", preco_medio,clrGreen); if(tick.last >= preco_medio) { trade.OrderModify(OrderGetTicket(0),preco_entrada,preco_medio,preco_tp,ORDER_TIME_DAY,0); } Print("PREÇO DA METADE DA COMPRA: ", preco_medio); }
![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
Estou tentando implementar o breakeven no meu robô, porém, não estou tendo sucesso, estou querendo fazer um breakeven na metade do preço do TAKE PROFIT, ele rastreia o preço médio, mas não executa a lógica. Alguém poderia me explicar se tem um jeito melhor ou o que eu poderia ajeitar no código para dar certo. Fiz o robo para executar uma compra limite ou venda limite, trabalhando com uma ordem por vez. Tentei usar a modificação como POSITION MODIFY e ORDER MODIFY, mas não consegui em nenhuma
if(liga_breakeven == SIM && OrderSelect(OrderGetTicket(0)) && OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT)
{
double preco_entrada = OrderGetDouble(ORDER_PRICE_OPEN);
double preco_sl = OrderGetDouble(ORDER_SL);
double preco_tp = OrderGetDouble(ORDER_TP);
double preco_medio = (preco_entrada + preco_tp)/2;
desenhaLinhaHorizontal("Compra", preco_medio,clrGreen);
if(tick.last >= preco_medio)
{
//trade.OrderModify(OrderGetTicket(0)´,preco_entrada,preco_medio,preco_tp,ORDER_TIME_DAY,ORDER_TIME_EXPIRATION);
trade.PositionModify(OrderGetTicket(0),preco_entrada,preco_tp);
}