Qual é o projeto correto? - página 6 12345678 Novo comentário Vladyslav Goshkov 2010.06.16 12:35 #51 valenok2003: No código de enquanto , apenas para atrasar enquanto o fio está ocupado. Depois é preciso atualizar as tarifas: RefreshRates(). Caso contrário, você usará os antigos valores asc e bid. Ou peça asc\i1 pelo MarketInfo. Sergey Guliaev 2010.06.16 12:44 #52 VladislavVG: Depois é preciso atualizar as tarifas: RefreshRates(). Caso contrário, você usará os antigos valores Ask e Bid. Ou pergunte no MarketInfo. Então é aí que o cão está trabalhando. Este projeto funcionou: //+------------------------------------------------------------------+ //| CloseThisSymbolAll.mq4 | //+------------------------------------------------------------------+ int start() { //---- for (int trade = OrdersTotal()-1; trade >= 0; trade--) { OrderSelect(trade, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol()) { while (!IsTradeAllowed()) Sleep(1000); RefreshRates(); if(OrderType() == OP_BUY ) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid,Digits), 5, CLR_NONE); if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask,Digits), 5, CLR_NONE); } } //---- return(0); } //+------------------------------------------------------------------+ Ao menos funcionou bem na primeira vez. Obrigado! [Deleted] 2010.06.16 12:48 #53 VladislavVG: Depois é preciso atualizar as tarifas: RefreshRates(). Caso contrário, você usará os antigos valores asc e bid. Ou solicite asc\iTo no MarketInfo. Obrigado! Vou corrigir isso também no meu EA. Vladyslav Goshkov 2010.06.16 12:54 #54 valenok2003: Então é aí que o cachorro está. Este é o projeto que o faz funcionar. Ao menos funcionou bem na primeira vez. Quase - uma condição a mais precisa ser corrigida : for (int trade = OrdersTotal()-1; trade >= 0; trade--) { if(!OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)) break; ........................... Se a ordem não saiu, não há nada a fazer. Boa sorte com isso. Sergey Guliaev 2010.06.16 12:59 #55 VladislavVG: Quase - uma condição a mais precisa ser corrigida : Se o mandado não for emitido, não há nada a fazer. Sim, isso faz sentido. Esta é uma supervisão do loop while(OrdersTotal()>0) khorosh 2010.06.16 12:59 #56 valenok2003: cinco Aí você tinha escorregamento = 5, e isso não é suficiente para citações de cinco dígitos. Sergey Guliaev 2010.06.16 13:07 #57 Portanto, em resumo: //+------------------------------------------------------------------+ //| CloseThisSymbolAll.mq4 | //+------------------------------------------------------------------+ int start() { //---- for (int trade = OrdersTotal()-1; trade >= 0; trade--) { if(!OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)) break; if (OrderSymbol() == Symbol()) { while (!IsTradeAllowed()) Sleep(1000); RefreshRates(); if(OrderType() == OP_BUY ) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid,Digits), slippage, CLR_NONE); if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask,Digits), slippage, CLR_NONE); } } //---- return(0); } //+------------------------------------------------------------------+ ou haverá algum outro comentário? Sergey Guliaev 2010.06.16 13:08 #58 khorosh: Aí você tinha escorregamento = 5, e isso não é suficiente para citações de cinco dígitos. Em um mercado relativamente calmo, 5 é bastante IMHO. Vladislav Andruschenko 2010.06.16 13:16 #59 Em uma ocasião, a base de código publicou seu próprio conjunto para fechar diferentes tipos. Arquivos anexados: expo-ucloseupacknv3.rar 40 kb Vladislav Andruschenko 2010.06.16 13:17 #60 https://www.mql5.com/ru/code/mt4 12345678 Novo comentário
No código de enquanto , apenas para atrasar enquanto o fio está ocupado.
Depois é preciso atualizar as tarifas: RefreshRates(). Caso contrário, você usará os antigos valores asc e bid. Ou peça asc\i1 pelo MarketInfo.
Depois é preciso atualizar as tarifas: RefreshRates(). Caso contrário, você usará os antigos valores Ask e Bid. Ou pergunte no MarketInfo.
Então é aí que o cão está trabalhando.
Este projeto funcionou:
Ao menos funcionou bem na primeira vez.
Obrigado!
Depois é preciso atualizar as tarifas: RefreshRates(). Caso contrário, você usará os antigos valores asc e bid. Ou solicite asc\iTo no MarketInfo.
Obrigado!
Vou corrigir isso também no meu EA.
Então é aí que o cachorro está.
Este é o projeto que o faz funcionar.
Ao menos funcionou bem na primeira vez.
Se a ordem não saiu, não há nada a fazer.Quase - uma condição a mais precisa ser corrigida :
Boa sorte com isso.
Se o mandado não for emitido, não há nada a fazer.Quase - uma condição a mais precisa ser corrigida :
cinco
Portanto, em resumo:
ou haverá algum outro comentário?
Aí você tinha escorregamento = 5, e isso não é suficiente para citações de cinco dígitos.