Boa tarde, usuários do fórum. Por favor, avise-me, estou lutando com a validação do mt5 para a segunda semana. Isso me dá um erro
teste em EURUSD,H1 (hedging) 2019.04.16 22:00:00 falhou cancelamento do pedido #73 venda stop 0,6 EURUSD a 1,12685 sl: 1,12851 tp: 1,11503 [Paradas inválidas]
2019.05.02 12:00:00 falha no cancelamento do pedido #136 vender stop 0.55 EURUSD a 1.11636 sl: 1.11814 tp: 1.10367 [Paradas inválidas]
2019.05.06 03:00:00 falhou no cancelamento do pedido #147 stop de venda 0.45 EURUSD a 1.11359 sl: 1.11578 tp: 1.09797 [Paradas inválidas]
2019.05.06 08:00:00 falhou no cancelamento do pedido #148 vender paragem 0.5 EURUSD a 1.11447 sl: 1.11645 tp: 1.10036 [Paragens inválidas]
2019.05.06 18:00:00 falhou no cancelamento do pedido nº 151 de venda stop 0.5 EURUSD a 1.11585 sl: 1.11783 tp: 1.10175 [Paradas inválidas]
2019.05.08 14:00:00 falha no cancelamento do pedido #167 vender parada 0.6 EURUSD a 1.11772 sl: 1.11938 tp: 1.10593 [Paradas inválidas]
2019.05.09 21:00:00 falhou cancelamento do pedido #175 stop de venda 0.45 EURUSD a 1.11921 sl: 1.12138 tp: 1.10377 [Paradas inválidas]
2019.05.13 16:00:00 falha no cancelamento da ordem #181 stop de venda 0.6 EURUSD a 1.12225 sl: 1.12390 tp: 1.11054 [paradas inválidas] relatório do testador de estratégia 5 total de negócios
Eu fiz todos os cheques. O estranho é que somente no pedido Sell Stop a eliminação do pedido. Eu simplesmente removo do código a colocação do pedido Sell Stop.
Funciona. Qual pode ser o problema?
bool sqDeletePendingOrder(ulong ticket) {
Verbose(" Deleting pending order, ticket: " + IntegerToString(ticket));
if(!OrderSelect(ticket)) returnfalse;
double order_price = OrderGetDouble(ORDER_PRICE_OPEN);
ENUM_ORDER_TYPE orderType = (ENUM_ORDER_TYPE) OrderGetInteger(ORDER_TYPE);
if(orderType == ORDER_TYPE_BUY || orderType == ORDER_TYPE_SELL) {
Verbose("Trying to delete non-pending order");
return(false);
}
MqlTick tick;
GetLastError(); // clear the global variable.int error = 0;
int retries = 0;
bool result;
double stops_level = (double)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_FREEZE_LEVEL);
double freeze_level = (double)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL);
double level = MathMax(stops_level,freeze_level);
while (true) {
if (!SymbolInfoTick(_Symbol,tick)) return(false);
double spread = ((tick.ask-tick.bid)/_Point);
if (level<=0) level = spread*3;
bool del = true;
if(orderType == ORDER_TYPE_BUY_LIMIT){ //Ask-Open OrderGetDouble(ORDER_PRICE_CURRENT)if((tick.ask-order_price)/_Point <= level){
VerboseLog("Cannot delete of order with Ticket#:", IntegerToString(ticket));
del = false;
}
}
elseif(orderType == ORDER_TYPE_SELL_LIMIT){ //Open - Bidif((order_price-tick.bid)/_Point <= level) {
VerboseLog("Cannot delete of order with Ticket#:", IntegerToString(ticket));
del = false;
}
}
elseif(orderType == ORDER_TYPE_BUY_STOP){ //Open - Askif((order_price-tick.ask)/_Point <= level) {
VerboseLog("Cannot delete of order with Ticket#:", IntegerToString(ticket));
del = false;
}
}
elseif(orderType == ORDER_TYPE_SELL_STOP){ //Bid - Open//Print("SELLSTOP: ",(tick.bid-order_price)/_Point," ; ",level);if((tick.bid-order_price) <= level*_Point) {
VerboseLog("Cannot delete of order with Ticket#:", IntegerToString(ticket));
del = false;
}
}
if (IsTradeAllowed() && del == true) {
result = OrderDelete(ticket); // Удаление отложки Trade.Delete(ticket) if(result) {
Verbose("Order deleted successfuly");
return(true);
}
}
retries++;
if(!sqProcessErrors(retries, GetLastError())) {
return(false);
}
}
return(false);
}
Problema resolvido, mas eu acho que é um bug validador. Levou o preço em tick.bid e o preço OrderGetDouble(ORDER_PRICE_CURRENT).
E este erro só se aplica aos pedidos SellStop
Não trabalho com níveis de parada há muito tempo, mas lembro-me sempre de acrescentar 1 pip só por causa das paradas inválidas. Tente aumentar os níveis de parada em um ponto.
Aqui estou eu, comprando 1 libra com meu dinheiro - e esperando que ele suba.
Eu gostei, comprei 1 libra emprestada, esperando que caísse.
Tenho a impressão de que nem todos entendem isso.
Para responder ao assunto: não há ofícios. Bem, não, de forma alguma.
há um delta entre a compra e a venda
movimenta o preço, é essencialmente o preço de mercado, deixe-o se tornar um interesse aberto
o resto chamamos o ativo subjacente, está no estoque e está fora do mercado e formado pelo procedimento de compensação
É encorajador.
Você é tão esperto até você mesmo enfrentar o problema...
Este código será rejeitado pelo validador
O validador diz 131 erro, volume errado...
Boa tarde, usuários do fórum. Por favor, avise-me, estou lutando com a validação do mt5 para a segunda semana. Isso me dá um erro
teste em EURUSD,H1 (hedging) 2019.04.16 22:00:00 falhou cancelamento do pedido #73 venda stop 0,6 EURUSD a 1,12685 sl: 1,12851 tp: 1,11503 [Paradas inválidas]
2019.05.02 12:00:00 falha no cancelamento do pedido #136 vender stop 0.55 EURUSD a 1.11636 sl: 1.11814 tp: 1.10367 [Paradas inválidas]
2019.05.06 03:00:00 falhou no cancelamento do pedido #147 stop de venda 0.45 EURUSD a 1.11359 sl: 1.11578 tp: 1.09797 [Paradas inválidas]
2019.05.06 08:00:00 falhou no cancelamento do pedido #148 vender paragem 0.5 EURUSD a 1.11447 sl: 1.11645 tp: 1.10036 [Paragens inválidas]
2019.05.06 18:00:00 falhou no cancelamento do pedido nº 151 de venda stop 0.5 EURUSD a 1.11585 sl: 1.11783 tp: 1.10175 [Paradas inválidas]
2019.05.08 14:00:00 falha no cancelamento do pedido #167 vender parada 0.6 EURUSD a 1.11772 sl: 1.11938 tp: 1.10593 [Paradas inválidas]
2019.05.09 21:00:00 falhou cancelamento do pedido #175 stop de venda 0.45 EURUSD a 1.11921 sl: 1.12138 tp: 1.10377 [Paradas inválidas]
2019.05.13 16:00:00 falha no cancelamento da ordem #181 stop de venda 0.6 EURUSD a 1.12225 sl: 1.12390 tp: 1.11054 [paradas inválidas] relatório do testador de estratégia 5 total de negócios
Eu fiz todos os cheques. O estranho é que somente no pedido Sell Stop a eliminação do pedido. Eu simplesmente removo do código a colocação do pedido Sell Stop.
Funciona. Qual pode ser o problema?
Problema resolvido, mas eu acho que é um bug validador. Levou o preço em tick.bid e o preço OrderGetDouble(ORDER_PRICE_CURRENT).
E este erro só se aplica aos pedidos SellStop
Problema resolvido, mas eu acho que é um bug validador. Levou o preço em tick.bid e o preço OrderGetDouble(ORDER_PRICE_CURRENT).
E este erro só se aplica aos pedidos SellStop
Nova dificuldade:
Ao publicar o Utilitário, o testador dá
O utilitário não tem nenhuma função comercial.
Como passar essa validação?
Nova dificuldade:
Ao publicar o Utilitário, o testador produz
O utilitário não tem nenhuma função comercial.
Como passar essa validação?
Este é um bug validador, aguarde que seja corrigido...