Referia-me ao preço, não ao SL ou TP? E a que preço deve o servidor abrir uma ordem de mercado para mim, ao preço que me deu ou ao preço que eu queria?
porque não deveria enviar ao servidor o preço com um spread positivo?)
WZZ: USDJPY : 82,49 ; 82,510000000001 ; 82,49 - talvez 82,55 de uma só vez ?
aqui está um exemplo de envio de um pedido com preços normalizados
//+------------------------------------------------------------------+//| Функция открытия ордеров |//+------------------------------------------------------------------+void OpenOpders(string sym,ENUM_ORDER_TYPE type)
{
int n=0;
bool res=true;
while(res)
{
n++;
Alert(n," - Попытка открыть ордер: ",TypeToStr(type)," на ",sym,", Лот - ",Lots);
double Bid=SymbolInfoDouble(sym,SYMBOL_BID);
double Ask=SymbolInfoDouble(sym,SYMBOL_ASK);
int digit=(int)SymbolInfoInteger(sym,SYMBOL_DIGITS);
double price=0.0;
if(type==ORDER_TYPE_BUY)price=NormalizeDouble(Ask,digit);
elseif(type==ORDER_TYPE_SELL)price=NormalizeDouble(Bid,digit);
request.action = TRADE_ACTION_DEAL;
request.symbol = sym;
request.volume = Lots;
request.price = price;
request.deviation = Slip;
request.type = type;
request.type_filling = ORDER_FILLING_AON;
OrderSend(request,result);
switch(Fun_Error(result.retcode))
{
case0:res=false;break;
case1:res=true;break;
case2:res=false;break;
}
}
}
//+------------------------------------------------------------------+//| Функция обработки ошибок |//+------------------------------------------------------------------+int Fun_Error(int Error)
{
switch(Error)
{
case10004: Alert("Реквота");return(1);
case10006: Alert("Запрос отвергнут");Sleep(3000);return(1);
case10007: Alert("Запрос отменен трейдером");Work=false;return(0);
case10008: Alert("Ордер размещен");return(2);
case10009: Alert("Заявка выполнена");return(2);
case10010: Alert("Заявка выполнена частично");return(2);
case10011: Alert("Ошибка обработки запроса");return(1);
case10012: Alert("Запрос отменен по истечению времени");return(1);
case10013: Alert("Неправильный запрос");Work=false;return(0);
case10014: Alert("Неправильный объем в запросе");Work=false;return(0);
case10015: Alert("Неправильная цена в запросе");Work=false;return(0);
case10016: Alert("Неправильные стопы в запросе");Work=false;return(0);
case10017: Alert("Торговля запрещена");Work=false;return(0);
case10018: Alert("Рынок закрыт");Work=false;return(0);
case10019: Alert("Нет достаточных денежных средств для выполнения запроса");Work=false;return(0);
case10020: Alert("Цены изменились");return(1);
case10021: Alert("Отсутствуют котировки для обработки запроса");Sleep(3000);return(1);
case10022: Alert("Неверная дата истечения ордера в запросе");Work=false;return(0);
case10023: Alert("Состояние ордера изменилось");return(2);
case10024: Alert("Слишком частые запросы");Work=false;return(0);
case10025: Alert("В запросе нет изменений");Sleep(3000);return(1);
case10026: Alert("Автотрейдинг запрещен сервером");Work=false;return(0);
case10027: Alert("Автотрейдинг запрещен клиентским терминалом");Work=false;return(0);
case10028: Alert("Запрос заблокирован для обработки");return(2);
case10029: Alert("Ордер или позиция заморожены");return(2);
case10030: Alert("Указан неподдерживаемый тип исполнения ордера по остатку");Work=false;return(0);
case10031: Alert("Нет соединения с торговым сервером");Sleep(3000);return(1);
case10032: Alert("Операция разрешена только для реальных счетов");Work=false;return(0);
case10033: Alert("Достигнут лимит на количество отложенных ордеров");return(2);
case10034: Alert("Достигнут лимит на объем ордеров и позиций для данного символа");return(2);
default: Alert("Ошибка № - ",Error);Work=false;return(0);
}
}
//+------------------------------------------------------------------+//| Функция преоброзования типа ордера в строку |//+------------------------------------------------------------------+string TypeToStr(ENUM_ORDER_TYPE type)
{
switch(type)
{
caseORDER_TYPE_BUY: return("BUY");
caseORDER_TYPE_SELL: return("SELL");
}
return("");
}
Renat: Ou seja, a tese da "humidade da plataforma" não foi confirmada de forma alguma.
Nunca mencionei a humidade da plataforma - reler os meus posts
Fiz os meus comentários sobre o assunto - se pensa que não têm fundamento, deixe-os estar, mas penso que a sua empresa vende software para corretores na plataforma MT5
sergey1294:
aqui está um exemplo de envio de um pedido com preços normalizados
obrigado mas tenho uma ideia ligeiramente diferente de negociação e preço quero abrir uma ordem para tentar normalizar 82,47,82,45999999999999,82,47
Não tenho a certeza se o servidor "inventou" um preço 82,46 porque tal preço não foi registado nos seus logs e se não é o preço de mercado - não preciso dele - deixe-o ficar no servidor e não passar por erros nos meus logs
Nunca mencionei a humidade da plataforma - reler os meus posts
fiz os meus comentários sobre o assunto - se pensa que são infundados, assim seja, mas penso que a sua empresa vende software para corretores na plataforma mt5
sps mas tenho uma ideia ligeiramente diferente de negociação e do preço a que quero abrir uma ordem, tentar normalizar 82,47,82,45999999999999,82,47
Não tenho a certeza se o servidor "inventou" um preço 82,46 porque tal preço não estava nos seus logs e se o preço não é de mercado - não preciso dele - deixá-lo permanecer no servidor e não ir aos meus logs com erros
Infelizmente, não tem conhecimento da aritmética básica dos números reais e da sua representação em computadores. Esta é a raiz do seu mal-entendido de preços "não normalizados".
Nunca mencionei a humidade da plataforma - reler os meus posts
fiz os meus comentários sobre o assunto - se os acha infundados, que assim seja, mas penso que a sua empresa vende software para corretores na plataforma mt5
sps mas tenho uma ideia ligeiramente diferente de negociação e do preço a que quero abrir uma ordem, tentar normalizar 82.47,82.45999999999999,82.47
Não tenho a certeza se o servidor vai "inventar" um preço 82,46 pois não existe tal preço nos seus logs e se não é o preço de mercado não preciso dele - deixe-o ficar no servidor e não vá com erros nos meus logs
Não compreende bem quais são as suas ideias de preço, o preço aceite tem cinco ou quatro casas decimais, pelo que precisa de reduzir o preço até essa casa decimal.
Infelizmente, não tem conhecimento da aritmética básica dos números reais e da sua representação em computadores. Esta é a raiz do seu mal-entendido de preços "não normalizados".
82,45999999(9) é a dupla representação de 82,46
OK, vou encontrar tempo para reler material provavelmente já esquecido, ou seja, tal preço (82,45999999(9)) será aceite pelo servidor de negociação para abrir uma ordem de mercado?
sergey1294 Preste atenção ao que os programadores lhe deram como exemplos e classes prontas, pelo menos os programadores desde que a classe CTrade não tenha funções NormalizeDouble(), bem como os exemplos na MQL5 Reference / Trading Functions / OrderSend
Não vou inventar e escrever inicialmente os programas errados se li os exemplos na fonte original, na Referência MT4 o exemplo OrderSend() também não contém nenhuma normalização de preços
OK, vou encontrar tempo para reler provavelmente já esquecido por mim, ou seja, tal preço (82.45999999(9)) será aceite pelo servidor de negociação para abrir uma ordem de mercado?
Sim, se for o preço correcto/existente no fluxo da carraça.
sergey1294 Preste atenção ao que os programadores lhe deram como exemplos e classes prontas, pelo menos os programadores desde que a classe CTrade não tenha funções NormalizeDouble(), bem como os exemplos na MQL5 Reference / Trading Functions / OrderSend
Não vou inventar e escrever inicialmente os programas errados se tiver lido exemplos concretos na fonte
Se utilizar o regular Bid and Ask para fazer negócios, estes são sempre normalizados. Os preços calculados (por exemplo, paragens) precisam de ser normalizados antes de se enviar uma ordem de comércio.
Os métodos padrão CTrade não normalizam à força os preços de entrada de encomendas, porque é categoricamente inaceitável - não se pode substituir os preços declarados acima do nível.
Renat: Sim, desde que seja o preço correcto/existente no fluxo da carraça.
Se utilizar as ofertas e pedidos regulares, estas são sempre normalizadas. Mas os preços calculados (por exemplo, paragens) já precisam de ser normalizados você mesmo antes de enviar uma ordem de comércio.
Os métodos padrão do CTrade não normalizam os preços de entrada forçada, uma vez que isto é categoricamente inaceitável - não se pode substituir os preços indicados a um nível superior.
cp! não se esqueça de o mencionar várias vezes no manual MT5, para que não haja mal-entendidos e possa imediatamente enviar para ler a ajuda :)
ZS: Eu sei sobre SL e TR, mas não me lembro nem o li na ajuda nem o descobri no fórum
cp! se tiver a gentileza de mencionar isto várias vezes no manual MT5 para que não haja mal-entendidos e possa ser enviado directamente para ler o manual :)
Sim, estamos constantemente a actualizar a documentação e a acrescentar esclarecimentos.
leio este fórum a toda a hora e muitas vezes fico espantado com as vossas mensagens profundas e informativas ;)
Quanto ao assunto, duvido que as cotações das contas demo difiram das contas microreais, mas as contas demo têm frequentemente preços não normalizados, o forte movimento - não se pode abrir ou fechar a encomenda por eles, gostaria de ver alguma encomenda, para que depois não se possa culpar o MT5
Quanto ao gosto e cor, é uma sabedoria popular - o preço não-normalizado incomoda algumas pessoas, embora eu pessoalmente não o considere um grande problema (uma vez que uso encomendas pendentes há muito tempo, e tais preços não são um grande problema para mim). Mas o problema para mim são coisas como uma indisponibilidade do OnTimer() para trabalhar no testador ou outras coisas semelhantes.
Mas mesmo com estes inputs, ao escolher um terminal para negociar em conta de cêntimos (com um depósito de 200 dólares), farei pessoalmente a minha escolha a favor do MT5.
Algumas pessoas são incomodadas por "preços não normalizados", mas eu pessoalmente não penso que seja um grande problema (porque há muito tempo que uso atrasos, e esses preços não são um problema assim tão grande para mim). Mas o problema para mim são coisas como a indisponibilidade do OnTimer() para trabalhar no testador ou outras coisas semelhantes.
Este erro é uma consequência de uma optimização mal sucedida e foi corrigido no 358º edifício.
Referia-me ao preço, não ao SL ou TP? E a que preço deve o servidor abrir uma ordem de mercado para mim, ao preço que me deu ou ao preço que eu queria?
porque não deveria enviar ao servidor o preço com um spread positivo?)
WZZ: USDJPY : 82,49 ; 82,510000000001 ; 82,49 - talvez 82,55 de uma só vez ?
aqui está um exemplo de envio de um pedido com preços normalizados
Ou seja, a tese da "humidade da plataforma" não foi confirmada de forma alguma.
Nunca mencionei a humidade da plataforma - reler os meus posts
Fiz os meus comentários sobre o assunto - se pensa que não têm fundamento, deixe-os estar, mas penso que a sua empresa vende software para corretores na plataforma MT5
aqui está um exemplo de envio de um pedido com preços normalizados
obrigado mas tenho uma ideia ligeiramente diferente de negociação e preço quero abrir uma ordem para tentar normalizar 82,47,82,45999999999999,82,47
Não tenho a certeza se o servidor "inventou" um preço 82,46 porque tal preço não foi registado nos seus logs e se não é o preço de mercado - não preciso dele - deixe-o ficar no servidor e não passar por erros nos meus logs
Nunca mencionei a humidade da plataforma - reler os meus posts
fiz os meus comentários sobre o assunto - se pensa que são infundados, assim seja, mas penso que a sua empresa vende software para corretores na plataforma mt5
sps mas tenho uma ideia ligeiramente diferente de negociação e do preço a que quero abrir uma ordem, tentar normalizar 82,47,82,45999999999999,82,47
Não tenho a certeza se o servidor "inventou" um preço 82,46 porque tal preço não estava nos seus logs e se o preço não é de mercado - não preciso dele - deixá-lo permanecer no servidor e não ir aos meus logs com erros
Infelizmente, não tem conhecimento da aritmética básica dos números reais e da sua representação em computadores. Esta é a raiz do seu mal-entendido de preços "não normalizados".
82,4599999999(9) é a dupla representação de 82,46
Nunca mencionei a humidade da plataforma - reler os meus posts
fiz os meus comentários sobre o assunto - se os acha infundados, que assim seja, mas penso que a sua empresa vende software para corretores na plataforma mt5
sps mas tenho uma ideia ligeiramente diferente de negociação e do preço a que quero abrir uma ordem, tentar normalizar 82.47,82.45999999999999,82.47
Não tenho a certeza se o servidor vai "inventar" um preço 82,46 pois não existe tal preço nos seus logs e se não é o preço de mercado não preciso dele - deixe-o ficar no servidor e não vá com erros nos meus logs
Infelizmente, não tem conhecimento da aritmética básica dos números reais e da sua representação em computadores. Esta é a raiz do seu mal-entendido de preços "não normalizados".
82,45999999(9) é a dupla representação de 82,46
OK, vou encontrar tempo para reler material provavelmente já esquecido, ou seja, tal preço (82,45999999(9)) será aceite pelo servidor de negociação para abrir uma ordem de mercado?
sergey1294 Preste atenção ao que os programadores lhe deram como exemplos e classes prontas, pelo menos os programadores desde que a classe CTrade não tenha funções NormalizeDouble(), bem como os exemplos na MQL5 Reference / Trading Functions / OrderSend
Não vou inventar e escrever inicialmente os programas errados se li os exemplos na fonte original, na Referência MT4 o exemplo OrderSend() também não contém nenhuma normalização de preços
OK, vou encontrar tempo para reler provavelmente já esquecido por mim, ou seja, tal preço (82.45999999(9)) será aceite pelo servidor de negociação para abrir uma ordem de mercado?
sergey1294 Preste atenção ao que os programadores lhe deram como exemplos e classes prontas, pelo menos os programadores desde que a classe CTrade não tenha funções NormalizeDouble(), bem como os exemplos na MQL5 Reference / Trading Functions / OrderSend
Não vou inventar e escrever inicialmente os programas errados se tiver lido exemplos concretos na fonte
Se utilizar o regular Bid and Ask para fazer negócios, estes são sempre normalizados. Os preços calculados (por exemplo, paragens) precisam de ser normalizados antes de se enviar uma ordem de comércio.
Os métodos padrão CTrade não normalizam à força os preços de entrada de encomendas, porque é categoricamente inaceitável - não se pode substituir os preços declarados acima do nível.
Sim, desde que seja o preço correcto/existente no fluxo da carraça.
Se utilizar as ofertas e pedidos regulares, estas são sempre normalizadas. Mas os preços calculados (por exemplo, paragens) já precisam de ser normalizados você mesmo antes de enviar uma ordem de comércio.
Os métodos padrão do CTrade não normalizam os preços de entrada forçada, uma vez que isto é categoricamente inaceitável - não se pode substituir os preços indicados a um nível superior.
cp! não se esqueça de o mencionar várias vezes no manual MT5, para que não haja mal-entendidos e possa imediatamente enviar para ler a ajuda :)
ZS: Eu sei sobre SL e TR, mas não me lembro nem o li na ajuda nem o descobri no fórum
cp! se tiver a gentileza de mencionar isto várias vezes no manual MT5 para que não haja mal-entendidos e possa ser enviado directamente para ler o manual :)
leio este fórum a toda a hora e muitas vezes fico espantado com as vossas mensagens profundas e informativas ;)
Quanto ao assunto, duvido que as cotações das contas demo difiram das contas microreais, mas as contas demo têm frequentemente preços não normalizados, o forte movimento - não se pode abrir ou fechar a encomenda por eles, gostaria de ver alguma encomenda, para que depois não se possa culpar o MT5
Quanto ao gosto e cor, é uma sabedoria popular - o preço não-normalizado incomoda algumas pessoas, embora eu pessoalmente não o considere um grande problema (uma vez que uso encomendas pendentes há muito tempo, e tais preços não são um grande problema para mim). Mas o problema para mim são coisas como uma indisponibilidade do OnTimer() para trabalhar no testador ou outras coisas semelhantes.
Mas mesmo com estes inputs, ao escolher um terminal para negociar em conta de cêntimos (com um depósito de 200 dólares), farei pessoalmente a minha escolha a favor do MT5.
COM TODAS AS SUAS ACTUAIS DESVANTAGENS!
Algumas pessoas são incomodadas por "preços não normalizados", mas eu pessoalmente não penso que seja um grande problema (porque há muito tempo que uso atrasos, e esses preços não são um problema assim tão grande para mim). Mas o problema para mim são coisas como a indisponibilidade do OnTimer() para trabalhar no testador ou outras coisas semelhantes.